0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / BiTgte / BiTgte_CurveOnEdge.cdl
1 -- Created on: 1997-01-10
2 -- Created by: Bruno DUMORTIER
3 -- Copyright (c) 1997-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 private class CurveOnEdge from BiTgte inherits Curve from Adaptor3d
18
19         ---Purpose: private class used  to create a filler rolling  on
20         --          an edge.
21
22 uses
23     Array1OfReal    from TColStd,
24     Shape           from GeomAbs,
25     CurveType       from GeomAbs,
26     Vec             from gp,
27     Pnt             from gp,
28     Circ            from gp,
29     Elips           from gp,
30     Hypr            from gp,
31     Parab           from gp,
32     Lin             from gp,
33     Curve           from Geom,
34     BezierCurve     from Geom,
35     BSplineCurve    from Geom,
36     HCurve          from Adaptor3d,
37     Curve           from Adaptor3d,
38     Edge            from TopoDS
39
40 raises
41     OutOfRange       from Standard,
42     NoSuchObject     from Standard,
43     DomainError      from Standard
44
45 is
46
47     Create
48     returns CurveOnEdge from BiTgte;
49     
50     Create( EonF   : Edge  from TopoDS;
51             Edge   : Edge  from TopoDS);
52
53     Init( me     : in out;
54           EonF   : Edge  from TopoDS;
55           Edge   : Edge  from TopoDS)
56     is static;
57
58     --------------------------------
59     -- Methodes from Adaptor3d_Curve --
60     --------------------------------
61     
62     FirstParameter(me) returns Real
63     is redefined static;
64
65     LastParameter(me) returns Real
66     is redefined static;
67
68     Continuity(me) returns Shape from GeomAbs
69         ---Purpose: 
70     is redefined static;
71     
72     NbIntervals(me; S : Shape from GeomAbs) returns Integer
73         ---Purpose: Returns  the number  of  intervals for  continuity
74         --          <S>. May be one if Continuity(me) >= <S>
75     is redefined static;
76     
77     Intervals(me; T : in out Array1OfReal from TColStd; 
78                   S : Shape from GeomAbs)
79         ---Purpose: Stores in <T> the  parameters bounding the intervals
80         --          of continuity <S>.
81         --          
82         --          The array must provide  enough room to  accomodate
83         --          for the parameters. i.e. T.Length() > NbIntervals()
84     raises
85         OutOfRange from Standard 
86     is redefined static;
87     
88     Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d
89         ---Purpose: Returns    a  curve equivalent   of  <me>  between
90         --          parameters <First>  and <Last>. <Tol>  is used  to
91         --          test for 3d points confusion.
92     raises
93         OutOfRange from Standard
94         ---Purpose: If <First> >= <Last> 
95     is redefined static;
96     
97
98     IsClosed(me) returns Boolean
99     is redefined static;
100      
101     IsPeriodic(me) returns Boolean
102     is redefined static;
103     
104     Period(me) returns Real
105     raises
106         DomainError from Standard -- if the curve is not periodic
107     is redefined static;
108      
109     Value(me; U : Real) returns Pnt from gp
110          --- Purpose : Computes the point of parameter U on the curve.
111     is redefined static;
112     
113     D0 (me; U : Real; P : out Pnt from gp)
114          --- Purpose : Computes the point of parameter U on the curve.
115     is redefined static;
116     
117     D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp)
118          --- Purpose : Computes the point of parameter U on the curve with its
119          --  first derivative.
120      raises 
121         DomainError from Standard
122         --- Purpose : Raised if the continuity of the current interval
123         --  is not C1.
124     is redefined static;
125     
126     D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp)
127         --- Purpose :
128         --  Returns the point P of parameter U, the first and second
129         --  derivatives V1 and V2.
130      raises 
131         DomainError from Standard
132         --- Purpose : Raised if the continuity of the current interval
133         --  is not C2.
134      is redefined static;
135
136     D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp)
137         --- Purpose :
138         --  Returns the point P of parameter U, the first, the second 
139         --  and the third derivative.
140      raises 
141         DomainError from Standard
142         --- Purpose : Raised if the continuity of the current interval
143         --  is not C3.
144      is redefined static;
145         
146     DN (me; U : Real; N : Integer)   returns Vec from gp
147         --- Purpose :
148         --  The returned vector gives the value of the derivative for the 
149         --  order of derivation N.
150      raises  
151         DomainError from Standard,
152         --- Purpose : Raised if the continuity of the current interval
153         --  is not CN.
154         OutOfRange from Standard
155         --- Purpose : Raised if N < 1.            
156      is redefined static;
157
158     Resolution(me; R3d : Real) returns Real
159          ---Purpose :  Returns the parametric  resolution corresponding
160          --         to the real space resolution <R3d>.
161     is redefined static;   
162         
163     GetType(me) returns CurveType from GeomAbs
164         ---Purpose: Returns  the  type of the   curve  in the  current
165         --          interval :   Line,   Circle,   Ellipse, Hyperbola,
166         --          Parabola, BezierCurve, BSplineCurve, OtherCurve.
167     is redefined static;
168
169     --
170     --     The following methods must  be called when GetType returned
171     --     the corresponding type.
172     --     
173
174      Line(me) returns Lin from gp
175      raises 
176         NoSuchObject from Standard
177      is redefined static;
178      
179      Circle(me) returns Circ from gp
180      raises 
181         NoSuchObject from Standard
182      is redefined static;
183      
184      Ellipse(me) returns Elips from gp
185      raises 
186         NoSuchObject from Standard
187      is redefined static;
188      
189      Hyperbola(me) returns  Hypr from gp
190      raises 
191         NoSuchObject from Standard
192      is redefined static;
193      
194      Parabola(me) returns Parab from gp
195      raises 
196         NoSuchObject from Standard
197      is redefined static;
198
199      
200      Degree(me) returns Integer
201      raises 
202         NoSuchObject from Standard
203      is redefined static;
204      
205      IsRational(me) returns Boolean
206      raises 
207         NoSuchObject from Standard
208      is redefined static;
209      
210      NbPoles(me) returns Integer
211      raises 
212         NoSuchObject from Standard
213      is redefined static;
214
215   
216      NbKnots(me) returns Integer
217      raises 
218         NoSuchObject from Standard
219      is redefined static;     
220           
221      Bezier(me) returns BezierCurve from Geom
222      raises 
223         NoSuchObject from Standard
224      is redefined static;
225     
226      BSpline(me) returns BSplineCurve from Geom
227      raises 
228         NoSuchObject from Standard
229      is redefined static;
230
231 fields
232
233     myEdge   : Edge      from TopoDS;
234     myEonF   : Edge      from TopoDS;
235     myCurv   : Curve     from Geom;
236     myConF   : Curve     from Geom;
237     
238     myType   : CurveType from GeomAbs;
239     myCirc   : Circ      from gp;
240     
241 end CurveOnEdge from BiTgte;