0022627: Change OCCT memory management defaults
[occt.git] / src / BRepBlend / BRepBlend_HCurve2dToolGen.cdl
CommitLineData
7fd59977 1-- File: BRepBlend_HCurve2dToolGen.cdl
2-- Created: Mon Jul 17 16:25:23 1995
3-- Author: Laurent BUCHARD
4-- <lbr@mastox>
5---Copyright: Matra Datavision 1995
6
7
8generic class HCurve2dToolGen from BRepBlend (
9 CurveGen as any)
10
11uses
12 Array1OfReal from TColStd,
13 Shape from GeomAbs,
14 CurveType from GeomAbs,
15 Vec2d from gp,
16 Pnt2d from gp,
17 Circ2d from gp,
18 Elips2d from gp,
19 Hypr2d from gp,
20 Parab2d from gp,
21 Lin2d from gp,
22 BezierCurve from Geom2d,
23 BSplineCurve from Geom2d
24
25raises
26
27 OutOfRange from Standard,
28 NoSuchObject from Standard,
29 DomainError from Standard
30
31is
32
33 --
34 -- Global methods - Apply to the whole curve.
35 --
36
37 FirstParameter(myclass; C: CurveGen) returns Real
38 ---C++: inline
39 ;
40
41
42 LastParameter(myclass; C: CurveGen) returns Real
43 ---C++: inline
44 ;
45
46 --
47 -- Services to break the curves to the expected continuity
48 --
49 -- If for example you need the curve to be C2 and the method
50 -- Continuity returns you something lower than C2 (say C1 for
51 -- example).
52 --
53 -- First compute the number of intervals with the requested
54 -- continuity with the method NbIntervals(). Note that if the
55 -- continuity is higher than the one you need NbIntervals will
56 -- return 1.
57 --
58 -- Then you get the parameters bounding the intervals with the
59 -- method Intervals, using an array of length at least
60 -- NbIntervals()+1.
61 --
62 -- If you need to create a curve with a restricted span you can
63 -- use the method Trim().
64
65
66 Continuity(myclass; C: CurveGen) returns Shape from GeomAbs
67 ---Purpose:
68 ---C++: inline
69 ;
70
71 NbIntervals(myclass; C: CurveGen; S : Shape from GeomAbs) returns Integer
72 ---Purpose: Returns the number of intervals for continuity
73 -- <S>. May be one if Continuity(myclass) >= <S>
74 ---C++: inline
75 ;
76
77 Intervals(myclass; C: CurveGen; 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 ---C++: inline
87 ;
88
89 IsClosed(myclass; C: CurveGen) returns Boolean
90 ---C++: inline
91 ;
92
93 IsPeriodic(myclass; C: CurveGen) returns Boolean
94 ---C++: inline
95 ;
96
97 Period(myclass; C: CurveGen) returns Real
98 raises
99 DomainError from Standard -- if the curve is not periodic
100 ---C++: inline
101 ;
102
103 Value(myclass; C: CurveGen; U : Real) returns Pnt2d from gp
104 --- Purpose : Computes the point of parameter U on the curve.
105 ---C++: inline
106 ;
107
108 D0 (myclass; C: CurveGen; U : Real; P : out Pnt2d from gp)
109 --- Purpose : Computes the point of parameter U on the curve.
110 ---C++: inline
111 ;
112
113 D1 (myclass; C: CurveGen; U : Real; P : out Pnt2d from gp ; V : out Vec2d from gp)
114 --- Purpose : Computes the point of parameter U on the curve with its
115 -- first derivative.
116 raises
117 DomainError from Standard
118 --- Purpose : Raised if the continuity of the current interval
119 -- is not C1.
120 ---C++: inline
121 ;
122
123 D2 (myclass; C: CurveGen; U : Real; P : out Pnt2d from gp; V1, V2 : out Vec2d from gp)
124 --- Purpose :
125 -- Returns the point P of parameter U, the first and second
126 -- derivatives V1 and V2.
127 raises
128 DomainError from Standard
129 --- Purpose : Raised if the continuity of the current interval
130 -- is not C2.
131 ---C++: inline
132 ;
133
134 D3 (myclass; C: CurveGen; U : Real; P : out Pnt2d from gp; V1, V2, V3 : out Vec2d from gp)
135 --- Purpose :
136 -- Returns the point P of parameter U, the first, the second
137 -- and the third derivative.
138 raises
139 DomainError from Standard
140 --- Purpose : Raised if the continuity of the current interval
141 -- is not C3.
142 ---C++: inline
143 ;
144
145 DN (myclass; C: CurveGen; U : Real; N : Integer) returns Vec2d from gp
146 --- Purpose :
147 -- The returned vector gives the value of the derivative for the
148 -- order of derivation N.
149 raises
150 DomainError from Standard,
151 --- Purpose : Raised if the continuity of the current interval
152 -- is not CN.
153 OutOfRange from Standard
154 --- Purpose : Raised if N < 1.
155 ---C++: inline
156 ;
157
158 Resolution(myclass; C: CurveGen; R3d : Real) returns Real
159 ---Purpose : Returns the parametric resolution corresponding
160 -- to the real space resolution <R3d>.
161 ---C++: inline
162 ;
163
164 GetType(myclass; C: CurveGen) returns CurveType from GeomAbs
165 ---Purpose: Returns the type of the curve in the current
166 -- interval : Line, Circle, Ellipse, Hyperbola,
167 -- Parabola, BezierCurve, BSplineCurve, OtherCurve.
168 ---C++: inline
169 ;
170
171 --
172 -- The following methods must be called when GetType returned
173 -- the corresponding type.
174 --
175
176 Line(myclass; C: CurveGen) returns Lin2d from gp
177 raises
178 NoSuchObject from Standard
179 ---C++: inline
180 ;
181
182 Circle(myclass; C: CurveGen) returns Circ2d from gp
183 raises
184 NoSuchObject from Standard
185 ---C++: inline
186 ;
187
188 Ellipse(myclass; C: CurveGen) returns Elips2d from gp
189 raises
190 NoSuchObject from Standard
191 ---C++: inline
192 ;
193
194 Hyperbola(myclass; C: CurveGen) returns Hypr2d from gp
195 raises
196 NoSuchObject from Standard
197 ---C++: inline
198 ;
199
200 Parabola(myclass; C: CurveGen) returns Parab2d from gp
201 raises
202 NoSuchObject from Standard
203 ---C++: inline
204 ;
205
206 Bezier(myclass; C: CurveGen) returns BezierCurve from Geom2d
207 raises
208 NoSuchObject from Standard
209 ---C++: inline
210 ;
211
212 BSpline(myclass; C: CurveGen) returns BSplineCurve from Geom2d
213 raises
214 NoSuchObject from Standard
215 ---C++: inline
216 ;
217
218
219
220
221
222 NbSamples(myclass; C: CurveGen; U0,U1: Real from Standard)
223 returns Integer from Standard;
224
225end HCurve2dToolGen;
226
227