c34f0120822e4b613f337aa9c234c2b3bd9961b7
[occt.git] / src / Geom2dAdaptor / Geom2dAdaptor_Curve.cdl
1 -- Created on: 1993-06-03
2 -- Created by: Bruno DUMORTIER
3 -- Copyright (c) 1993-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 Curve from Geom2dAdaptor inherits Curve2d from Adaptor2d
18
19         ---Purpose: An interface between the services provided by any
20         -- curve from the package Geom2d and those required
21         -- of the curve by algorithms which use it.
22         
23 uses Vec2d                  from gp,
24      Pnt2d                  from gp,
25      Circ2d                 from gp,
26      Elips2d                from gp,
27      Hypr2d                 from gp,
28      Parab2d                from gp,
29      Lin2d                  from gp,
30      Array1OfReal           from TColStd,
31      Curve                  from Geom2d,
32      BezierCurve            from Geom2d,
33      BSplineCurve           from Geom2d,
34      CurveType              from GeomAbs,
35      Shape                  from GeomAbs,
36      HCurve2d               from Adaptor2d
37      
38      
39 raises NoSuchObject from Standard,
40        ConstructionError from Standard,
41        OutOfRange  from Standard,
42        DomainError from Standard
43
44
45 is
46
47     Create returns Curve from Geom2dAdaptor;
48
49     Create(C : Curve from Geom2d) returns Curve from Geom2dAdaptor;
50
51     Create(C : Curve from Geom2d; UFirst,ULast : Real)
52     returns Curve from Geom2dAdaptor
53     raises 
54         ConstructionError from Standard;
55         ---Purpose: ConstructionError is raised if Ufirst>Ulast
56    
57     Load(me : in out; C : Curve from Geom2d);
58         ---C++: inline
59    
60     Load(me : in out; C : Curve from Geom2d; UFirst,ULast : Real)
61     raises 
62         ConstructionError from Standard;
63         ---C++: inline
64         ---Purpose: ConstructionError is raised if Ufirst>Ulast
65
66     Curve(me) returns Curve from Geom2d
67         ---C++: return const& 
68         ---C++: inline
69     is static;
70
71
72
73     FirstParameter(me) returns Real
74         ---C++: inline
75     is redefined static;
76
77     LastParameter(me) returns Real
78         ---C++: inline
79     is redefined static;     
80
81     Continuity(me) returns Shape from GeomAbs
82     is redefined static;
83
84     NbIntervals(me; S : Shape from GeomAbs) returns Integer
85         ---Purpose: If necessary,  breaks the  curve in  intervals  of
86         --          continuity  <S>.    And  returns   the number   of
87         --          intervals.
88     is redefined static;
89
90     Intervals(me; T : in out Array1OfReal from TColStd; 
91                   S : Shape from GeomAbs)
92         ---Purpose: Stores in <T> the  parameters bounding the intervals
93         --          of continuity <S>.
94         --          
95         --          The array must provide  enough room to  accomodate
96         --          for the parameters. i.e. T.Length() > NbIntervals()
97     raises
98         OutOfRange from Standard 
99     is redefined static;
100     
101     Trim(me; First, Last, Tol : Real) returns HCurve2d from Adaptor2d
102         ---Purpose: Returns    a  curve equivalent   of  <me>  between
103         --          parameters <First>  and <Last>. <Tol>  is used  to
104         --          test for 3d points confusion.
105     raises
106         OutOfRange from Standard
107         ---Purpose: If <First> >= <Last> 
108     is redefined static;
109     
110     IsClosed(me) returns Boolean
111     is redefined static;
112     
113     IsPeriodic(me) returns Boolean
114     is redefined static;
115
116     Period(me) returns Real
117     raises
118         DomainError from Standard -- if the curve is not periodic
119     is redefined static;
120
121     
122     Value(me; U : Real) returns Pnt2d from gp
123         --- Purpose : Computes the point of parameter U on the curve 
124     is redefined static;
125
126     D0 (me; U : Real; P : out Pnt2d from gp)
127         --- Purpose : Computes the point of parameter U.
128     is redefined static;
129
130     D1 (me; U : Real; P : out Pnt2d from gp ; V : out Vec2d from gp)
131         --- Purpose : Computes the point of parameter U on the curve with its
132         --  first derivative.
133
134     raises 
135        DomainError from Standard
136         --- Purpose : Raised if the continuity of the current interval
137         --  is not C1.
138     is redefined static;
139     
140     D2 (me; U : Real; P : out Pnt2d from gp; V1, V2 : out Vec2d from gp)
141         --- Purpose :
142         --  Returns the point P of parameter U, the first and second
143         --  derivatives V1 and V2.
144     raises 
145        DomainError from Standard
146         --- Purpose : Raised if the continuity of the current interval
147         --  is not C2.
148     is redefined static;
149
150     D3 (me; U : Real; P : out Pnt2d from gp; V1, V2, V3 : out Vec2d from gp)
151         --- Purpose :
152         --  Returns the point P of parameter U, the first, the second 
153         --  and the third derivative.
154     raises 
155         DomainError from Standard
156         --- Purpose : Raised if the continuity of the current interval
157         --  is not C3.
158     is redefined static;
159         
160     DN (me; U : Real; N : Integer)   returns Vec2d from gp
161         --- Purpose :
162         --  The returned vector gives the value of the derivative for the 
163         --  order of derivation N.
164     raises  
165         DomainError from Standard,
166         --- Purpose : Raised if the continuity of the current interval
167         --  is not CN.
168         OutOfRange from Standard
169         --- Purpose : Raised if N < 1.            
170     is redefined static;
171
172
173     Resolution(me; Ruv :Real) returns Real
174         ---Purpose : returns the parametric resolution
175     is redefined static;   
176    
177
178     GetType(me) returns CurveType from GeomAbs
179         ---C++: inline
180     is redefined static;
181
182     Line(me) returns Lin2d from gp
183     raises 
184         NoSuchObject from Standard
185     is redefined static;
186    
187     Circle(me) returns Circ2d from gp
188     raises 
189         NoSuchObject from Standard
190     is redefined static;
191
192     Ellipse(me) returns Elips2d from gp
193     raises 
194         NoSuchObject from Standard
195     is redefined static;
196
197     Hyperbola(me) returns  Hypr2d from gp
198     raises 
199         NoSuchObject from Standard
200     is redefined static;
201
202     Parabola(me) returns Parab2d from gp
203     raises 
204         NoSuchObject from Standard
205     is redefined static;
206
207      
208      Degree(me) returns Integer
209      raises 
210         NoSuchObject from Standard
211      is redefined static;
212      
213      IsRational(me) returns Boolean
214      raises 
215         NoSuchObject from Standard
216      is redefined static;
217      
218      NbPoles(me) returns Integer
219      raises 
220         NoSuchObject from Standard
221      is redefined static;
222
223   
224      NbKnots(me) returns Integer
225      raises 
226         NoSuchObject from Standard
227      is redefined static;     
228           
229
230
231     Bezier(me) returns BezierCurve from Geom2d
232     raises 
233         NoSuchObject from Standard
234     is redefined static;
235     
236     BSpline(me) returns BSplineCurve from Geom2d
237     raises 
238         NoSuchObject from Standard
239     is redefined static;
240     
241     LocalContinuity(me; U1, U2 : Real) returns Shape from GeomAbs 
242     is static private;
243
244     load(me : in out; C : Curve from Geom2d; UFirst,ULast : Real)
245     is private;
246    
247 fields 
248
249   myCurve             : Curve            from Geom2d ;
250   myTypeCurve         : CurveType        from GeomAbs ;
251   myFirst             : Real             from Standard ;
252   myLast              : Real             from Standard;
253   
254 end Curve;
255