0024624: Lost word in license statement in source files
[occt.git] / src / BRepAdaptor / BRepAdaptor_CompCurve.cdl
1 -- Created on: 1998-08-20
2 -- Created by: Philippe MANGIN
3 -- Copyright (c) 1998-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 CompCurve from BRepAdaptor
18     
19 inherits Curve from Adaptor3d
20
21         ---Purpose: The Curve from BRepAdaptor allows to use a Wire
22         --          of the BRep topology like a 3D curve.
23         --  Warning: With this  class of curve,  C0 and C1 continuities
24         --          are not assumed. So be carful with some algorithm!
25           
26 uses 
27     Wire               from TopoDS, 
28     Edge               from TopoDS,
29     CurveType          from GeomAbs,
30     Shape              from GeomAbs,
31     HCurve             from Adaptor3d,
32     HArray1OfCurve     from  BRepAdaptor,
33     BezierCurve        from Geom,
34     BSplineCurve       from Geom,
35     Array1OfReal       from TColStd, 
36     HArray1OfReal      from TColStd,
37     Pnt                from gp,
38     Vec                from gp,
39     Circ               from gp,
40     Elips              from gp,
41     Hypr               from gp,
42     Parab              from gp,
43     Lin                from gp 
44
45 raises
46     NullObject   from Standard,
47     DomainError  from Standard,
48     OutOfRange   from Standard,
49     NoSuchObject from Standard
50
51 is
52     Create returns CompCurve from BRepAdaptor;
53         ---Purpose: Creates an undefined Curve with no Wire loaded.
54         
55     Create(W : Wire from TopoDS; 
56            KnotByCurvilinearAbcissa  :  Boolean  =  Standard_False)  
57     returns CompCurve from BRepAdaptor;
58         
59     Create(W : Wire from TopoDS; 
60            KnotByCurvilinearAbcissa  :  Boolean; 
61            First,  Last,  Tol  :  Real)  
62     returns CompCurve from BRepAdaptor;
63         ---Purpose: Creates a Curve  to  acces to the geometry of edge
64         --          <W>.  
65         --          
66
67     Initialize(me : in out; W : Wire from TopoDS; 
68                KnotByCurvilinearAbcissa  :  Boolean)
69         ---Purpose: Sets the  wire <W>.
70          
71     is static;  
72      
73     Initialize(me : in out; W : Wire from TopoDS; 
74                KnotByCurvilinearAbcissa  :  Boolean; 
75                First,  Last,  Tol  :  Real )
76         ---Purpose: Sets wire <W> and trimmed  parameter.  
77     is static; 
78       
79     SetPeriodic(me:  in  out;  Periodic  :  Boolean) 
80        ---Purpose: Set the flag Periodic.           
81        --  Warning: This method has no effect if the wire is not closed        
82     is  static;
83      
84     Wire(me) returns Wire from TopoDS
85         ---Purpose: Returns the wire.
86         --          
87         ---C++: return const &
88     is static; 
89      
90     Edge(me; U  :  Real;   
91          E  :  out  Edge;   
92          UonE  :  out  Real) 
93       ---Purpose: returns an  edge  and   one  parameter on them
94       --           corresponding to the parameter U.         
95     is  static; 
96       
97     --
98     --     Methods of  Curve  from GeomAdaptor.
99     --     
100
101    FirstParameter(me) returns Real
102    is redefined static;
103
104    LastParameter(me) returns Real
105    is redefined static;     
106
107    Continuity(me) returns Shape from GeomAbs
108    is redefined static;
109
110    NbIntervals(me: in out; S : Shape from GeomAbs) returns Integer
111         ---Purpose: Returns  the number  of  intervals for  continuity
112         --          <S>. May be one if Continuity(me) >= <S>
113    is redefined static;
114
115    Intervals(me: in out; T : in out Array1OfReal from TColStd; 
116                  S : Shape from GeomAbs)
117         ---Purpose: Stores in <T> the  parameters bounding the intervals
118         --          of continuity <S>.
119         --          
120         --          The array must provide  enough room to  accomodate
121         --          for the parameters. i.e. T.Length() > NbIntervals()
122    raises
123         OutOfRange from Standard 
124    is redefined static;
125     
126    Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d
127         ---Purpose: Returns    a  curve equivalent   of  <me>  between
128         --          parameters <First>  and <Last>. <Tol>  is used  to
129         --          test for 3d points confusion.
130    raises
131         OutOfRange from Standard
132         ---Purpose: If <First> >= <Last> 
133    is redefined static;
134     
135    IsClosed(me) returns Boolean
136    is redefined static;
137     
138    IsPeriodic(me) returns Boolean
139    is redefined static;
140
141    Period(me) returns Real
142     raises
143         DomainError from Standard -- if the curve is not periodic
144     is redefined static;
145
146     
147    Value(me; U : Real) returns Pnt from gp
148         --- Purpose : Computes the point of parameter U on the curve 
149    is redefined static;
150
151    D0 (me; U : Real; P : out Pnt from gp)
152         --- Purpose : Computes the point of parameter U.
153    is redefined static;
154
155    D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp)
156         --- Purpose : Computes the point of parameter U on the curve
157         --  with its first derivative.
158
159      raises 
160        DomainError from Standard
161         --- Purpose : Raised if the continuity of the current interval
162         --  is not C1.
163    is redefined static;
164     
165    D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp)
166         --- Purpose :
167         --  Returns the point P of parameter U, the first and second
168         --  derivatives V1 and V2.
169      raises 
170        DomainError from Standard
171         --- Purpose : Raised if the continuity of the current interval
172         --  is not C2.
173      is redefined static;
174
175    D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp)
176         --- Purpose :
177         --  Returns the point P of parameter U, the first, the second 
178         --  and the third derivative.
179      raises 
180         DomainError from Standard
181         --- Purpose : Raised if the continuity of the current interval
182         --  is not C3.
183     is redefined static;
184         
185    DN (me; U : Real; N : Integer)   returns Vec from gp
186         --- Purpose :
187         --  The returned vector gives the value of the derivative for the 
188         --  order of derivation N.
189      raises  
190         DomainError from Standard,
191         --- Purpose : Raised if the continuity of the current interval
192         --  is not CN.
193         OutOfRange from Standard
194         --- Purpose : Raised if N < 1.            
195     is redefined static;
196
197
198    Resolution(me; R3d :Real) returns Real
199         ---Purpose : returns the parametric resolution
200    is redefined static;   
201    
202
203    GetType(me) returns CurveType from GeomAbs
204    is redefined static;
205
206    Line(me) returns Lin from gp
207     raises NoSuchObject from Standard
208    is redefined static;
209    
210    Circle(me) returns Circ from gp
211     raises NoSuchObject from Standard
212    is redefined static;
213
214    Ellipse(me) returns Elips from gp
215     raises NoSuchObject from Standard
216    is redefined static;
217
218    Hyperbola(me) returns  Hypr from gp
219     raises NoSuchObject from Standard
220    is redefined static;
221
222    Parabola(me) returns Parab from gp
223     raises NoSuchObject from Standard
224    is redefined static;
225
226
227    Degree(me) returns Integer
228     raises NoSuchObject from Standard
229    is redefined static;
230
231    IsRational(me) returns Boolean
232      raises 
233         NoSuchObject from Standard
234    is redefined static;
235
236    NbPoles(me) returns Integer
237     raises NoSuchObject from Standard
238    is redefined static;
239     
240    NbKnots(me) returns Integer
241      raises 
242         NoSuchObject from Standard
243    is redefined static;
244
245
246    Bezier(me) returns BezierCurve from Geom
247         ---Warning : 
248         --         This  will    make a copy of the Bezier Curve .
249         --          Be carefull when  using this method
250    raises 
251         NoSuchObject from Standard
252    is redefined static;
253    
254    BSpline(me) returns BSplineCurve from Geom
255         ---Warning : This will  make a copy  of the BSpline Curve.  Be
256         --         carefull when using this method
257
258    raises 
259         NoSuchObject from Standard
260    is redefined static;
261          
262    Prepare(me;  W,  D: in  out  Real;  ind  : in  out Integer) 
263    is  private;  
264     
265    InvPrepare(me; ind :  Integer; F, D: in  out  Real) 
266    is  private; 
267
268 fields 
269   myWire    :  Wire  from  TopoDS; 
270   TFirst, TLast,  PTol, myPeriod : Real;
271   myCurves  :  HArray1OfCurve  from  BRepAdaptor; 
272   myKnots   :  HArray1OfReal   from  TColStd;   
273   CurIndex  :  Integer; 
274   Forward   :  Boolean;   
275   IsbyAC    :  Boolean; 
276   Periodic  :  Boolean; 
277   end CompCurve;