0024927: Getting rid of "Persistent" functionality -- Storable
[occt.git] / src / IntRes2d / IntRes2d_Transition.cdl
1 -- Created on: 1992-04-03
2 -- Created by: Laurent BUCHARD
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class Transition from IntRes2d
18
19     ---Purpose: Definition of    the  type  of   transition    near an
20     --          intersection point between  two curves. The transition
21     --          is either a "true transition", which means that one of
22     --          the curves goes inside or outside  the area defined by
23     --          the other curve  near  the intersection, or  a  "touch
24     --          transition" which means that the  first curve does not
25     --          cross  the  other one,  or an  "undecided" transition,
26     --          which means that the curves are superposed.
27
28
29 uses Position  from IntRes2d,
30      Situation from IntRes2d,
31      TypeTrans from IntRes2d
32
33
34 raises DomainError from Standard
35
36 is
37
38     Create
39
40         ---Purpose: Empty constructor.
41     
42         returns Transition from IntRes2d;
43
44
45     Create(Tangent: Boolean    from Standard; 
46            Pos    : Position   from IntRes2d;
47            Type   : TypeTrans  from IntRes2d)
48     
49         ---Purpose: Creates an IN or OUT transition.
50
51         ---C++: inline
52
53         returns Transition from IntRes2d;
54
55
56     Create(Tangent: Boolean    from Standard; 
57            Pos    : Position   from IntRes2d;
58            Situ   : Situation  from IntRes2d; 
59            Oppos  : Boolean    from Standard)
60     
61         ---Purpose: Creates a TOUCH transition.
62
63         ---C++: inline
64     
65         returns Transition from IntRes2d;
66
67
68     Create(Pos: Position from IntRes2d)
69     
70         ---Purpose: Creates an UNDECIDED transition.
71
72         ---C++: inline
73
74         returns Transition from IntRes2d;
75
76
77     SetValue(me: in out; Tangent: Boolean   from Standard; 
78                          Pos    : Position  from IntRes2d;
79                          Type   : TypeTrans from IntRes2d)
80
81         ---Purpose: Sets the values of an IN or OUT transition.
82
83         ---C++: inline
84
85         is static;
86
87
88     SetValue(me: in out; Tangent: Boolean    from Standard; 
89                          Pos    : Position   from IntRes2d;
90                          Situ   : Situation  from IntRes2d;
91                          Oppos  : Boolean    from Standard)
92
93         ---Purpose: Sets the values of a TOUCH transition.
94
95         ---C++: inline
96     
97         is static;
98
99
100     SetValue(me: in out; Pos: Position from IntRes2d)
101
102         ---Purpose: Sets the values of an UNDECIDED transition.
103
104         ---C++: inline
105
106         is static;
107
108
109     SetPosition(me: in out; Pos: Position from IntRes2d)
110     
111         ---Purpose: Sets the value of the position.
112
113         ---C++: inline
114
115         is static;
116
117
118     PositionOnCurve(me)
119
120         ---Purpose: Indicates if the  intersection is at the beginning
121         --          (IntRes2d_Head),  at the end (IntRes2d_End), or in
122         --          the middle (IntRes2d_Middle) of the curve.
123
124         ---C++: inline
125        
126         returns Position from IntRes2d
127         is static;
128
129
130     TransitionType(me)
131     
132         ---Purpose: Returns the type of transition at the intersection.
133         --          It may be IN or OUT or TOUCH, or UNDECIDED if the
134         --          two first derivatives are not enough to give
135         --          the tangent to one of the two curves.
136
137         ---C++: inline
138     
139         returns TypeTrans from IntRes2d
140         is static;
141
142
143     IsTangent(me)
144     
145         ---Purpose: Returns TRUE when the 2 curves are tangent at the
146         --          intersection point.
147         --          Theexception DomainError is raised if the type of
148         --          transition is UNDECIDED.
149
150         ---C++: inline
151
152         returns Boolean     from Standard
153         raises  DomainError from Standard
154         is static;
155
156
157     Situation(me)
158     
159         ---Purpose: returns a significant value if TransitionType returns
160         --          TOUCH. In this case, the function returns :
161         --          INSIDE when the curve remains inside the other one,
162         --          OUTSIDE when it remains outside the other one,
163         --          UNKNOWN when the calculus, based on the second derivatives
164         --          cannot give the result.
165         --          If TransitionType returns IN or OUT or UNDECIDED, the
166         --          exception DomainError is raised.
167
168         ---C++: inline
169
170         returns Situation   from IntRes2d
171         raises  DomainError from Standard
172         is static;
173
174
175     IsOpposite(me)
176     
177         ---Purpose: returns a  significant value   if   TransitionType
178         --          returns TOUCH. In this  case, the function returns
179         --          true   when  the  2   curves   locally define  two
180         --          different  parts of the  space.  If TransitionType
181         --          returns  IN or   OUT or UNDECIDED,  the  exception
182         --          DomainError is raised.
183
184         ---C++: inline
185
186         returns Boolean     from Standard
187         raises  DomainError from Standard
188         is static;
189
190
191 fields
192
193     tangent     : Boolean   from Standard;
194     posit       : Position  from IntRes2d;
195     typetra     : TypeTrans from IntRes2d;
196     situat      : Situation from IntRes2d;
197     oppos       : Boolean   from Standard;
198     
199 end Transition;