0022792: Globally defined symbol PI conflicts with VTK definition (Intel compiler)
[occt.git] / src / Bisector / Bisector_BisecCC.cdl
1 -- File:        Bisector_BisecCC.cdl
2 -- Created:     Mon Jan 10 11:49:47 1994
3 -- Author:      Yves FRICAUD
4 --              <yfr@phylox>
5 ---Copyright:    Matra Datavision 1994
6
7
8 class BisecCC from Bisector 
9
10 inherits
11
12      Curve from Bisector
13     
14         ---Purpose: Construct the bisector between two curves.
15         --          The curves can intersect only in their extremities.
16
17 uses
18     PolyBis           from Bisector,
19     Shape             from GeomAbs,
20     CurveType         from GeomAbs,
21     Curve             from Geom2d,    
22     Geometry          from Geom2d,
23     Pnt2d             from gp,
24     Vec2d             from gp,
25     SequenceOfReal    from TColStd,
26     Trsf2d            from gp
27
28 raises DomainError    from Standard,
29        RangeError     from Standard
30 is
31     
32     Create returns mutable BisecCC;
33
34     Create  (Cu1     : Curve from Geom2d;
35              Cu2     : Curve from Geom2d;
36              Side1   : Real             ;
37              Side2   : Real             ;
38              Origin  : Pnt2d from gp    ;
39              DistMax : Real = 500        )
40         ---Purpose: Constructs  the bisector  between the  curves <Cu1>
41         --          and <Cu2>.    
42         --          
43         --          <Side1>  (resp <Side2>) = 1   if the
44         --          bisector curve is on the left of <Cu1> (resp <Cu2>)
45         --          else <Side1> (resp <Side2>) = -1.
46         --          
47         --          the Bisector is trimmed by the Point <Origin>.
48         --          <DistMax> is used to trim the bisector.The distance
49         --          between the points of the bisector and <Cu> is smaller
50         --          than <DistMax>.
51         --          
52     returns mutable BisecCC from Bisector;           
53
54     Perform (me      : mutable          ;
55              Cu1     : Curve from Geom2d;
56              Cu2     : Curve from Geom2d;
57              Side1   : Real             ;
58              Side2   : Real             ;
59              Origin  : Pnt2d from gp    ;
60              DistMax : Real = 500       )
61         ---Purpose: Computes the bisector  between the  curves <Cu1>
62         --          and <Cu2>.    
63         --          
64         --          <Side1>  (resp <Side2>) = 1   if the
65         --          bisector curve is on the left of <Cu1> (resp <Cu2>)
66         --          else <Side1> (resp <Side2>) = -1.
67         --          
68         --          the Bisector is trimmed by the Point <Origin>.
69         --          
70         --          <DistMax> is used to trim the bisector.The distance
71         --          between the points of the bisector and <Cu> is smaller
72         --          than <DistMax>.
73         --          
74              
75     is static;
76         
77     IsExtendAtStart (me) returns Boolean from Standard
78     is static;
79     
80     IsExtendAtEnd   (me) returns Boolean from Standard
81     is static;
82 --    
83     Reverse (me : mutable)
84     is static;
85     
86     ReversedParameter(me; U : Real) returns Real
87     is static;
88     
89     IsCN (me; N : Integer)  returns Boolean
90         --- Purpose : Returns the order of continuity of the curve. 
91      raises RangeError
92         --- Purpose : Raised if N < 0. 
93     is static;
94     
95     ChangeGuide (me) returns mutable like me
96         ---Purpose: The parameter  on <me> is linked to  the parameter
97         --          on the first curve. This method creates the same bisector
98         --          where the curves are inversed.
99     is static;
100
101     Copy (me)  returns mutable like me   
102     is static;
103     
104     Transform (me : mutable; T : Trsf2d) 
105         --- Purpose :
106         --  Transformation of a geometric object. This tansformation 
107         --  can be a translation, a rotation, a symmetry, a scaling
108         --  or a complex transformation obtained by combination of
109         --  the previous elementaries transformations.
110     is static;  
111     
112             
113 --    
114     FirstParameter(me) returns Real
115     is static;
116
117     LastParameter(me) returns Real
118     is static;     
119
120     Continuity(me) returns Shape from GeomAbs
121     is static;
122     
123     NbIntervals (me) returns Integer
124         ---Purpose: If necessary,  breaks the  curve in  intervals  of
125         --          continuity  <C1>.    And  returns   the number   of
126         --          intervals.
127     is static;
128
129     IntervalFirst(me ; Index : Integer from Standard) returns Real
130        ---Purpose: Returns  the  first  parameter    of  the  current
131        --          interval. 
132     is static; 
133     
134     IntervalLast(me ; Index : Integer from Standard) returns Real
135        ---Purpose: Returns  the  last  parameter    of  the  current
136        --          interval. 
137     is static;
138     
139     IntervalContinuity(me) returns Shape from GeomAbs
140     is static;
141     
142     IsClosed(me) returns Boolean
143     is static;
144     
145     IsPeriodic(me) returns Boolean
146     is static;
147
148     ValueAndDist (me; U : Real; U1, U2, Distance : in out Real)
149         ---Purpose: Returns the point of parameter U.
150         --          Computes the distance between the current point and
151         --          the two curves I separate.
152         --          Computes the parameters on each curve corresponding
153         --          of the projection of the current point.
154     returns Pnt2d from gp
155     is static;
156
157  
158     ValueByInt (me; U : Real; U1, U2, Distance : in out Real) 
159     returns Pnt2d from gp
160         ---Purpose: Returns the point of parameter U.
161         --          Computes the distance between the current point and
162         --          the two curves I separate.
163         --          Computes the parameters on each curve corresponding
164         --          of the projection of the current point.
165     is static;
166
167         
168     D0 (me; U : Real; P : out Pnt2d)
169     is static;
170     
171     D1 (me; U : Real; P : out Pnt2d from gp ; V : out Vec2d from gp)
172     is static ;
173     
174     D2 (me; U : Real; P : out Pnt2d from gp; V1, V2 : out Vec2d from gp) 
175     is static;
176
177     D3 (me; U : Real; P : out Pnt2d from gp; V1, V2, V3 : out Vec2d from gp) 
178     is static;
179
180     DN (me; U : Real; N : Integer)
181     returns Vec2d from gp
182     is static;
183     
184     Values (me                  ; 
185             U   : Real          ; 
186             N   : Integer       ; 
187             P   : in out Pnt2d  ;
188             V1  : in out Vec2d  ;
189             V2  : in out Vec2d  ;           
190             V3  : in out Vec2d  )
191     is static private;              
192
193
194     IsEmpty (me) returns Boolean from Standard
195     is static;
196     
197     LinkBisCurve (me ; U : Real) returns Real from Standard
198         ---Purpose: Returns the parameter on the curve1 of the projection
199         --          of the point of parameter U on <me>.
200     is static;
201     
202     LinkCurveBis (me ; U : Real) returns Real from Standard
203         ---Purpose: Returns the reciproque of LinkBisCurve.
204     is static;
205     
206     Parameter ( me ; P : Pnt2d from gp) returns Real
207     is static;
208
209     Curve (me ; IndCurve : Integer)  returns Curve from Geom2d
210     is static;
211     
212     Polygon (me) returns PolyBis from Bisector
213     ---C++: return const&
214     is static;
215
216     Dump (me; Deep : Integer = 0; Offset : Integer = 0) is static;
217     
218     SupLastParameter (me : mutable)
219     is static private;  
220             
221     Extension(me                                 ; 
222               U            : Real                ; 
223               U1, U2, Dist : in out Real         ;
224               T1           : in out Vec2d from gp ) 
225     returns Pnt2d from gp 
226     is static private;     
227     
228     SearchBound (me ; U1,U2 : Real from Standard)
229     returns Real from Standard
230     is static private;
231     
232     ComputePointEnd (me : mutable)
233     is static private;
234     
235     Curve (me : mutable; Index : Integer; C : Curve from Geom2d)
236     is static private;
237     
238     Sign  (me : mutable; Index : Integer; Sign : Real from Standard)
239     is static private;
240     
241     Polygon (me : mutable; Poly : PolyBis from Bisector)
242     is static private;
243     
244     DistMax  (me : mutable; DistMax : Real from Standard)
245     is static private;     
246     
247     IsConvex  (me : mutable; Index : Integer; IsConvex : Boolean from Standard)
248     is static private;
249     
250     IsEmpty  (me : mutable; IsEmpty : Boolean from Standard)
251     is static private;
252         
253     ExtensionStart (me : mutable; ExtensionStart : Boolean from Standard)
254     is static private;
255         
256     ExtensionEnd   (me : mutable; ExtensionEnd : Boolean from Standard)
257     is static private;
258     
259     PointStart (me : mutable; Point : Pnt2d from gp)
260     is static private;
261     
262     PointEnd (me : mutable; Point : Pnt2d from gp)
263     is static private;
264     
265     StartIntervals (me : mutable; StartIntervals : SequenceOfReal from TColStd) 
266     is static private;
267     
268     EndIntervals (me : mutable; EndIntervals : SequenceOfReal from TColStd) 
269     is static private;
270     
271     FirstParameter (me : mutable; U1 : Real from Standard)
272     is static private;
273     
274     LastParameter  (me : mutable; U1 : Real from Standard)
275     is static private;
276     
277     
278     
279 fields
280
281     curve1         : Curve             from Geom2d;
282     curve2         : Curve             from Geom2d;
283     sign1          : Real              from Standard;
284     sign2          : Real              from Standard;
285     startIntervals : SequenceOfReal    from TColStd;
286     endIntervals   : SequenceOfReal    from TColStd;
287     currentInterval: Integer           from Standard;
288     myPolygon      : PolyBis           from Bisector;
289     shiftParameter : Real              from Standard;
290     distMax        : Real              from Standard;
291     isEmpty        : Boolean           from Standard;
292     isConvex1      : Boolean           from Standard;
293     isConvex2      : Boolean           from Standard;
294     extensionStart : Boolean           from Standard;
295     extensionEnd   : Boolean           from Standard;
296     pointStart     : Pnt2d             from gp;
297     pointEnd       : Pnt2d             from gp;
298     
299 end BisecCC;