0024428: Implementation of LGPL license
[occt.git] / src / Adaptor3d / Adaptor3d_HCurve.cdl
1 -- Created on: 1994-02-23
2 -- Created by: model
3 -- Copyright (c) 1994-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
9 -- under the terms of the GNU Lesser General Public 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 deferred class HCurve from Adaptor3d inherits TShared from MMgt
18
19         ---Purpose: Root class for 3D curves manipulated by handles, on
20         -- which geometric algorithms work.
21         -- An adapted curve is an interface between the
22         -- services provided by a curve and those required of
23         -- the curve by algorithms which use it.
24         -- Two derived concrete classes are provided:
25         -- - GeomAdaptor_HCurve for a curve from the Geom package
26         -- - Adaptor3d_HCurveOnSurface for a curve lying
27         --   on a surface from the Geom package.
28   
29
30 uses 
31      Array1OfReal    from TColStd,
32      Shape           from GeomAbs,
33      CurveType       from GeomAbs,
34      Vec             from gp,
35      Pnt             from gp,
36      Circ            from gp,
37      Elips           from gp,
38      Hypr            from gp,
39      Parab           from gp,
40      Lin             from gp,
41      BezierCurve     from Geom,
42      BSplineCurve    from Geom,
43      Curve           from Adaptor3d
44      
45 raises
46     
47     OutOfRange          from Standard,
48     NoSuchObject        from Standard,
49     DomainError         from Standard
50  
51 is
52
53
54     --
55     --  Access to the curve
56     --  
57     
58     Curve(me) returns Curve from Adaptor3d
59         ---Purpose: Returns a pointer to the Curve inside the HCurve.
60         --          
61         ---C++: return const &
62     is deferred;
63     
64     GetCurve(me:mutable) returns Curve from Adaptor3d
65         ---Purpose: Returns a pointer to the Curve inside the HCurve.
66         --          
67         ---C++: return &
68     is deferred;
69
70     --
71     --     Curve  methods,  they are  provided  for convenience.  Each
72     --     method M() is defined inline as :
73     --     
74     --     Adaptor3d_HCurve::M() { Curve().M(); }
75     --     
76     --     See the class Curve for comments on the methods.
77     --     
78     
79     FirstParameter(me) returns Real;
80         ---C++: inline
81
82     LastParameter(me) returns Real;
83         ---C++: inline
84     
85     Continuity(me) returns Shape from GeomAbs ;
86         ---C++: inline
87     
88     NbIntervals(me: mutable; S : Shape from GeomAbs) returns Integer;
89         ---C++: inline
90     
91     Intervals(me: mutable; T : in out Array1OfReal from TColStd; 
92                   S : Shape from GeomAbs)
93         ---Purpose: Stores in <T> the  parameters bounding the intervals
94         --          of continuity <S>.
95         --          
96         --          The array must provide  enough room to  accomodate
97         --          for the parameters. i.e. T.Length() > NbIntervals()
98         --          
99         ---C++: inline
100     raises
101         OutOfRange from Standard 
102     is static;
103     
104     Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d
105         ---Purpose: Returns    a  curve equivalent   of  <me>  between
106         --          parameters <First>  and <Last>. <Tol>  is used  to
107         --          test for 3d points confusion.
108         --          
109         ---C++: inline
110     raises
111         OutOfRange from Standard
112         ---Purpose: If <First> >= <Last> 
113     is static;
114
115
116     IsClosed(me) returns Boolean;
117         ---C++: inline
118      
119     IsPeriodic(me) returns Boolean;
120         ---C++: inline
121     
122     Period(me) returns Real
123             ---C++: inline
124     raises
125         DomainError from Standard;
126      
127     Value(me; U : Real) returns Pnt from gp;
128         ---C++: inline
129     
130     D0 (me; U : Real; P : out Pnt from gp);
131         ---C++: inline
132     
133     D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp)
134             ---C++: inline
135      raises 
136         DomainError from Standard;
137     
138     D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp)
139             ---C++: inline
140      raises 
141         DomainError from Standard;
142
143     D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp)
144             ---C++: inline
145      raises 
146         DomainError from Standard;
147         
148     DN (me; U : Real; N : Integer)   returns Vec from gp
149             ---C++: inline
150      raises  
151         DomainError from Standard,
152         OutOfRange from Standard;
153
154     Resolution(me; R3d : Real) returns Real;
155         ---C++: inline
156         
157     GetType(me) returns CurveType from GeomAbs;
158         ---C++: inline
159
160      Line(me) returns Lin from gp
161             ---C++: inline
162      raises 
163         NoSuchObject from Standard;
164      
165      Circle(me) returns Circ from gp
166             ---C++: inline
167      raises 
168         NoSuchObject from Standard;
169      
170      Ellipse(me) returns Elips from gp
171             ---C++: inline
172      raises 
173         NoSuchObject from Standard;
174      
175      Hyperbola(me) returns  Hypr from gp
176             ---C++: inline
177      raises 
178         NoSuchObject from Standard;
179      
180      Parabola(me) returns Parab from gp
181             ---C++: inline
182      raises 
183         NoSuchObject from Standard;
184      
185      Degree(me) returns Integer
186             ---C++: inline
187      raises 
188         NoSuchObject from Standard ;
189
190      
191      IsRational(me) returns Boolean
192             ---C++: inline
193      raises 
194         NoSuchObject from Standard ;
195
196      
197      NbPoles(me) returns Integer
198             ---C++: inline
199      raises 
200         NoSuchObject from Standard ;
201
202     
203      NbKnots(me) returns Integer
204             ---C++: inline
205      raises 
206         NoSuchObject from Standard ;
207      
208
209      Bezier(me) returns BezierCurve from Geom
210             ---C++: inline
211      raises 
212         NoSuchObject from Standard;
213     
214      BSpline(me) returns BSplineCurve from Geom
215             ---C++: inline
216      raises 
217         NoSuchObject from Standard;
218          
219
220 end HCurve;
221
222
223