b311480e |
1 | -- Created on: 1992-09-01 |
2 | -- Created by: Modelistation |
3 | -- Copyright (c) 1992-1999 Matra Datavision |
973c2be1 |
4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
5 | -- |
973c2be1 |
6 | -- This file is part of Open CASCADE Technology software library. |
b311480e |
7 | -- |
d5f74e42 |
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 |
973c2be1 |
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. |
b311480e |
13 | -- |
973c2be1 |
14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. |
7fd59977 |
16 | |
17 | class Curve from GeomAdaptor inherits Curve from Adaptor3d |
18 | |
19 | ---Purpose: This class provides an interface between the services provided by any |
20 | -- curve from the package Geom and those required of the curve by algorithms which use it. |
ff8178ef |
21 | -- Creation of the loaded curve the curve is C1 by piece. |
22 | |
7fd59977 |
23 | uses Vec from gp, |
24 | Pnt from gp, |
25 | Circ from gp, |
26 | Elips from gp, |
27 | Hypr from gp, |
28 | Parab from gp, |
29 | Lin from gp, |
30 | Array1OfReal from TColStd, |
31 | Curve from Geom, |
32 | BezierCurve from Geom, |
33 | BSplineCurve from Geom, |
34 | CurveType from GeomAbs, |
35 | Shape from GeomAbs, |
36 | HCurve from Adaptor3d |
37 | |
38 | raises NoSuchObject from Standard, |
39 | ConstructionError from Standard, |
40 | OutOfRange from Standard, |
41 | DomainError from Standard |
42 | |
43 | |
44 | is |
45 | |
46 | Create |
47 | returns Curve from GeomAdaptor; |
48 | ---C++: inline |
49 | |
50 | Create(C : Curve from Geom) |
51 | returns Curve from GeomAdaptor; |
52 | ---C++: inline |
53 | |
54 | Create(C : Curve from Geom; UFirst,ULast : Real) |
55 | returns Curve from GeomAdaptor |
56 | raises |
57 | ConstructionError from Standard; |
58 | ---Purpose: ConstructionError is raised if Ufirst>Ulast |
59 | ---C++: inline |
60 | |
61 | Load(me : in out; C : Curve from Geom); |
62 | ---C++: inline |
63 | |
64 | Load(me : in out; C : Curve from Geom; UFirst,ULast : Real) |
65 | raises |
66 | ConstructionError from Standard; |
041bfce9 |
67 | ---C++: inline |
7fd59977 |
68 | ---Purpose: ConstructionError is raised if Ufirst>Ulast |
69 | |
70 | Curve(me) returns Curve from Geom |
71 | ---Purpose: |
72 | -- Provides a curve inherited from Hcurve from Adaptor. |
73 | -- This is inherited to provide easy to use constructors. |
74 | ---C++: return const& |
75 | ---C++: inline |
76 | is static; |
77 | |
78 | |
79 | |
80 | FirstParameter(me) returns Real |
81 | ---C++: inline |
82 | is redefined static; |
83 | |
84 | LastParameter(me) returns Real |
85 | ---C++: inline |
86 | is redefined static; |
87 | |
88 | Continuity(me) returns Shape from GeomAbs |
89 | is redefined static; |
90 | |
91 | NbIntervals(me:in out; S : Shape from GeomAbs) returns Integer |
92 | ---Purpose: Returns the number of intervals for continuity |
93 | -- <S>. May be one if Continuity(me) >= <S> |
94 | is redefined static; |
95 | |
96 | Intervals(me: in out; T : in out Array1OfReal from TColStd; |
97 | S : Shape from GeomAbs) |
98 | ---Purpose: Stores in <T> the parameters bounding the intervals |
99 | -- of continuity <S>. |
100 | -- |
101 | -- The array must provide enough room to accomodate |
102 | -- for the parameters. i.e. T.Length() > NbIntervals() |
103 | raises |
104 | OutOfRange from Standard |
105 | is redefined static; |
106 | |
107 | Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d |
108 | ---Purpose: Returns a curve equivalent of <me> between |
109 | -- parameters <First> and <Last>. <Tol> is used to |
110 | -- test for 3d points confusion. |
111 | raises |
112 | OutOfRange from Standard |
113 | ---Purpose: If <First> >= <Last> |
114 | is redefined static; |
115 | |
116 | IsClosed(me) returns Boolean |
117 | is redefined static; |
118 | |
119 | IsPeriodic(me) returns Boolean |
120 | is redefined static; |
121 | |
122 | Period(me) returns Real |
123 | raises |
124 | DomainError from Standard -- if the curve is not periodic |
125 | is redefined static; |
126 | |
127 | |
128 | Value(me; U : Real) returns Pnt from gp |
129 | --- Purpose : Computes the point of parameter U on the curve |
130 | is redefined static; |
131 | |
132 | D0 (me; U : Real; P : out Pnt from gp) |
133 | --- Purpose : Computes the point of parameter U. |
134 | is redefined static; |
135 | |
136 | D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp) |
137 | --- Purpose : Computes the point of parameter U on the curve |
138 | -- with its first derivative. |
139 | -- |
140 | -- Warning : On the specific case of BSplineCurve: |
141 | -- if the curve is cut in interval of continuity at least C1, the |
142 | -- derivatives are computed on the current interval. |
143 | -- else the derivatives are computed on the basis curve. |
144 | is redefined static; |
145 | |
146 | D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp) |
147 | --- Purpose : |
148 | -- Returns the point P of parameter U, the first and second |
149 | -- derivatives V1 and V2. |
150 | -- |
151 | -- Warning : On the specific case of BSplineCurve: |
152 | -- if the curve is cut in interval of continuity at least C2, the |
153 | -- derivatives are computed on the current interval. |
154 | -- else the derivatives are computed on the basis curve. |
155 | is redefined static; |
156 | |
157 | D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp) |
158 | --- Purpose : |
159 | -- Returns the point P of parameter U, the first, the second |
160 | -- and the third derivative. |
161 | -- |
162 | -- Warning : On the specific case of BSplineCurve: |
163 | -- if the curve is cut in interval of continuity at least C3, the |
164 | -- derivatives are computed on the current interval. |
165 | -- else the derivatives are computed on the basis curve. |
166 | is redefined static; |
167 | |
168 | DN (me; U : Real; N : Integer) returns Vec from gp |
169 | --- Purpose : |
170 | -- The returned vector gives the value of the derivative for the |
171 | -- order of derivation N. |
172 | -- Warning : On the specific case of BSplineCurve: |
173 | -- if the curve is cut in interval of continuity CN, the |
174 | -- derivatives are computed on the current interval. |
175 | -- else the derivatives are computed on the basis curve. |
176 | raises |
177 | OutOfRange from Standard |
178 | --- Purpose : Raised if N < 1. |
179 | is redefined static; |
180 | |
181 | |
182 | Resolution(me; R3d :Real) returns Real |
183 | ---Purpose : returns the parametric resolution |
184 | is redefined static; |
185 | |
186 | |
187 | GetType(me) returns CurveType from GeomAbs |
188 | ---C++: inline |
189 | is redefined static; |
190 | |
191 | Line(me) returns Lin from gp |
192 | raises |
193 | NoSuchObject from Standard |
194 | is redefined static; |
195 | |
196 | Circle(me) returns Circ from gp |
197 | raises |
198 | NoSuchObject from Standard |
199 | is redefined static; |
200 | |
201 | Ellipse(me) returns Elips from gp |
202 | raises |
203 | NoSuchObject from Standard |
204 | is redefined static; |
205 | |
206 | Hyperbola(me) returns Hypr from gp |
207 | raises |
208 | NoSuchObject from Standard |
209 | is redefined static; |
210 | |
211 | Parabola(me) returns Parab from gp |
212 | raises |
213 | NoSuchObject from Standard |
214 | is redefined static; |
215 | |
216 | |
217 | Degree(me) returns Integer |
218 | raises |
219 | NoSuchObject from Standard |
220 | is redefined static; |
221 | ---Purpose: |
222 | -- this should NEVER make a copy |
223 | -- of the underlying curve to read |
224 | -- the relevant information |
225 | -- |
226 | IsRational(me) returns Boolean |
227 | raises |
228 | NoSuchObject from Standard |
229 | is redefined static; |
230 | |
231 | ---Purpose: |
232 | -- this should NEVER make a copy |
233 | -- of the underlying curve to read |
234 | -- the relevant information |
235 | -- |
236 | NbPoles(me) returns Integer |
237 | raises |
238 | NoSuchObject from Standard |
239 | is redefined static; |
240 | |
241 | ---Purpose: |
242 | -- this should NEVER make a copy |
243 | -- of the underlying curve to read |
244 | -- the relevant information |
245 | -- |
246 | NbKnots(me) returns Integer |
247 | raises |
248 | NoSuchObject from Standard |
249 | is redefined static; |
250 | ---Purpose: |
251 | -- this should NEVER make a copy |
252 | -- of the underlying curve to read |
253 | -- the relevant information |
254 | -- |
255 | |
256 | Bezier(me) returns BezierCurve from Geom |
257 | raises |
258 | NoSuchObject from Standard |
259 | is redefined static; |
260 | ---Purpose : this will NOT make a copy of the |
261 | -- Bezier Curve : If you want to modify |
262 | -- the Curve please make a copy yourself |
263 | -- Also it will NOT trim the surface to |
264 | -- myFirst/Last. |
265 | |
266 | BSpline(me) returns BSplineCurve from Geom |
267 | raises |
268 | NoSuchObject from Standard |
269 | is redefined static; |
270 | ---Purpose : this will NOT make a copy of the |
271 | -- BSpline Curve : If you want to modify |
272 | -- the Curve please make a copy yourself |
273 | -- Also it will NOT trim the surface to |
274 | -- myFirst/Last. |
275 | |
276 | |
277 | LocalContinuity(me; U1, U2 : Real) returns Shape from GeomAbs |
278 | is static private; |
041bfce9 |
279 | |
280 | load(me : in out; C : Curve from Geom; UFirst,ULast : Real) |
281 | is private; |
7fd59977 |
282 | |
283 | fields |
284 | |
285 | myCurve : Curve from Geom ; |
286 | myTypeCurve : CurveType from GeomAbs ; |
287 | myFirst : Real from Standard ; |
288 | myLast : Real from Standard; |
289 | |
290 | friends |
291 | class Surface from GeomAdaptor |
292 | |
293 | end Curve; |
294 | |