0023024: Update headers of OCCT files
[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-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22
23 deferred class HCurve from Adaptor3d inherits TShared from MMgt
24
25         ---Purpose: Root class for 3D curves manipulated by handles, on
26         -- which geometric algorithms work.
27         -- An adapted curve is an interface between the
28         -- services provided by a curve and those required of
29         -- the curve by algorithms which use it.
30         -- Two derived concrete classes are provided:
31         -- - GeomAdaptor_HCurve for a curve from the Geom package
32         -- - Adaptor3d_HCurveOnSurface for a curve lying
33         --   on a surface from the Geom package.
34   
35
36 uses 
37      Array1OfReal    from TColStd,
38      Shape           from GeomAbs,
39      CurveType       from GeomAbs,
40      Vec             from gp,
41      Pnt             from gp,
42      Circ            from gp,
43      Elips           from gp,
44      Hypr            from gp,
45      Parab           from gp,
46      Lin             from gp,
47      BezierCurve     from Geom,
48      BSplineCurve    from Geom,
49      Curve           from Adaptor3d
50      
51 raises
52     
53     OutOfRange          from Standard,
54     NoSuchObject        from Standard,
55     DomainError         from Standard
56  
57 is
58
59
60     --
61     --  Access to the curve
62     --  
63     
64     Curve(me) returns Curve from Adaptor3d
65         ---Purpose: Returns a pointer to the Curve inside the HCurve.
66         --          
67         ---C++: return const &
68     is deferred;
69     
70     GetCurve(me:mutable) returns Curve from Adaptor3d
71         ---Purpose: Returns a pointer to the Curve inside the HCurve.
72         --          
73         ---C++: return &
74     is deferred;
75
76     --
77     --     Curve  methods,  they are  provided  for convenience.  Each
78     --     method M() is defined inline as :
79     --     
80     --     Adaptor3d_HCurve::M() { Curve().M(); }
81     --     
82     --     See the class Curve for comments on the methods.
83     --     
84     
85     FirstParameter(me) returns Real;
86         ---C++: inline
87
88     LastParameter(me) returns Real;
89         ---C++: inline
90     
91     Continuity(me) returns Shape from GeomAbs ;
92         ---C++: inline
93     
94     NbIntervals(me: mutable; S : Shape from GeomAbs) returns Integer;
95         ---C++: inline
96     
97     Intervals(me: mutable; T : in out Array1OfReal from TColStd; 
98                   S : Shape from GeomAbs)
99         ---Purpose: Stores in <T> the  parameters bounding the intervals
100         --          of continuity <S>.
101         --          
102         --          The array must provide  enough room to  accomodate
103         --          for the parameters. i.e. T.Length() > NbIntervals()
104         --          
105         ---C++: inline
106     raises
107         OutOfRange from Standard 
108     is static;
109     
110     Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d
111         ---Purpose: Returns    a  curve equivalent   of  <me>  between
112         --          parameters <First>  and <Last>. <Tol>  is used  to
113         --          test for 3d points confusion.
114         --          
115         ---C++: inline
116     raises
117         OutOfRange from Standard
118         ---Purpose: If <First> >= <Last> 
119     is static;
120
121
122     IsClosed(me) returns Boolean;
123         ---C++: inline
124      
125     IsPeriodic(me) returns Boolean;
126         ---C++: inline
127     
128     Period(me) returns Real
129             ---C++: inline
130     raises
131         DomainError from Standard;
132      
133     Value(me; U : Real) returns Pnt from gp;
134         ---C++: inline
135     
136     D0 (me; U : Real; P : out Pnt from gp);
137         ---C++: inline
138     
139     D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp)
140             ---C++: inline
141      raises 
142         DomainError from Standard;
143     
144     D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp)
145             ---C++: inline
146      raises 
147         DomainError from Standard;
148
149     D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp)
150             ---C++: inline
151      raises 
152         DomainError from Standard;
153         
154     DN (me; U : Real; N : Integer)   returns Vec from gp
155             ---C++: inline
156      raises  
157         DomainError from Standard,
158         OutOfRange from Standard;
159
160     Resolution(me; R3d : Real) returns Real;
161         ---C++: inline
162         
163     GetType(me) returns CurveType from GeomAbs;
164         ---C++: inline
165
166      Line(me) returns Lin from gp
167             ---C++: inline
168      raises 
169         NoSuchObject from Standard;
170      
171      Circle(me) returns Circ from gp
172             ---C++: inline
173      raises 
174         NoSuchObject from Standard;
175      
176      Ellipse(me) returns Elips from gp
177             ---C++: inline
178      raises 
179         NoSuchObject from Standard;
180      
181      Hyperbola(me) returns  Hypr from gp
182             ---C++: inline
183      raises 
184         NoSuchObject from Standard;
185      
186      Parabola(me) returns Parab from gp
187             ---C++: inline
188      raises 
189         NoSuchObject from Standard;
190      
191      Degree(me) returns Integer
192             ---C++: inline
193      raises 
194         NoSuchObject from Standard ;
195
196      
197      IsRational(me) returns Boolean
198             ---C++: inline
199      raises 
200         NoSuchObject from Standard ;
201
202      
203      NbPoles(me) returns Integer
204             ---C++: inline
205      raises 
206         NoSuchObject from Standard ;
207
208     
209      NbKnots(me) returns Integer
210             ---C++: inline
211      raises 
212         NoSuchObject from Standard ;
213      
214
215      Bezier(me) returns BezierCurve from Geom
216             ---C++: inline
217      raises 
218         NoSuchObject from Standard;
219     
220      BSpline(me) returns BSplineCurve from Geom
221             ---C++: inline
222      raises 
223         NoSuchObject from Standard;
224          
225
226 end HCurve;
227
228
229