1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
-- File: Transition.cdl
-- Created: Fri Apr 3 14:49:41 1992
-- Author: Laurent BUCHARD
-- <lbr@topsn2>
---Copyright: Matra Datavision 1992
class Transition from IntRes2d
inherits Storable from Standard
---Purpose: Definition of the type of transition near an
-- intersection point between two curves. The transition
-- is either a "true transition", which means that one of
-- the curves goes inside or outside the area defined by
-- the other curve near the intersection, or a "touch
-- transition" which means that the first curve does not
-- cross the other one, or an "undecided" transition,
-- which means that the curves are superposed.
uses Position from IntRes2d,
Situation from IntRes2d,
TypeTrans from IntRes2d
raises DomainError from Standard
is
Create
---Purpose: Empty constructor.
returns Transition from IntRes2d;
Create(Tangent: Boolean from Standard;
Pos : Position from IntRes2d;
Type : TypeTrans from IntRes2d)
---Purpose: Creates an IN or OUT transition.
---C++: inline
returns Transition from IntRes2d;
Create(Tangent: Boolean from Standard;
Pos : Position from IntRes2d;
Situ : Situation from IntRes2d;
Oppos : Boolean from Standard)
---Purpose: Creates a TOUCH transition.
---C++: inline
returns Transition from IntRes2d;
Create(Pos: Position from IntRes2d)
---Purpose: Creates an UNDECIDED transition.
---C++: inline
returns Transition from IntRes2d;
SetValue(me: in out; Tangent: Boolean from Standard;
Pos : Position from IntRes2d;
Type : TypeTrans from IntRes2d)
---Purpose: Sets the values of an IN or OUT transition.
---C++: inline
is static;
SetValue(me: in out; Tangent: Boolean from Standard;
Pos : Position from IntRes2d;
Situ : Situation from IntRes2d;
Oppos : Boolean from Standard)
---Purpose: Sets the values of a TOUCH transition.
---C++: inline
is static;
SetValue(me: in out; Pos: Position from IntRes2d)
---Purpose: Sets the values of an UNDECIDED transition.
---C++: inline
is static;
SetPosition(me: in out; Pos: Position from IntRes2d)
---Purpose: Sets the value of the position.
---C++: inline
is static;
PositionOnCurve(me)
---Purpose: Indicates if the intersection is at the beginning
-- (IntRes2d_Head), at the end (IntRes2d_End), or in
-- the middle (IntRes2d_Middle) of the curve.
---C++: inline
returns Position from IntRes2d
is static;
TransitionType(me)
---Purpose: Returns the type of transition at the intersection.
-- It may be IN or OUT or TOUCH, or UNDECIDED if the
-- two first derivatives are not enough to give
-- the tangent to one of the two curves.
---C++: inline
returns TypeTrans from IntRes2d
is static;
IsTangent(me)
---Purpose: Returns TRUE when the 2 curves are tangent at the
-- intersection point.
-- Theexception DomainError is raised if the type of
-- transition is UNDECIDED.
---C++: inline
returns Boolean from Standard
raises DomainError from Standard
is static;
Situation(me)
---Purpose: returns a significant value if TransitionType returns
-- TOUCH. In this case, the function returns :
-- INSIDE when the curve remains inside the other one,
-- OUTSIDE when it remains outside the other one,
-- UNKNOWN when the calculus, based on the second derivatives
-- cannot give the result.
-- If TransitionType returns IN or OUT or UNDECIDED, the
-- exception DomainError is raised.
---C++: inline
returns Situation from IntRes2d
raises DomainError from Standard
is static;
IsOpposite(me)
---Purpose: returns a significant value if TransitionType
-- returns TOUCH. In this case, the function returns
-- true when the 2 curves locally define two
-- different parts of the space. If TransitionType
-- returns IN or OUT or UNDECIDED, the exception
-- DomainError is raised.
---C++: inline
returns Boolean from Standard
raises DomainError from Standard
is static;
fields
tangent : Boolean from Standard;
posit : Position from IntRes2d;
typetra : TypeTrans from IntRes2d;
situat : Situation from IntRes2d;
oppos : Boolean from Standard;
end Transition;
|