0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / AppParCurves / AppParCurves_MultiCurve.cdl
CommitLineData
b311480e 1-- Created on: 1991-12-02
2-- Created by: Laurent PAINNOT
3-- Copyright (c) 1991-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
17class MultiCurve from AppParCurves
18
19 ---Purpose: This class describes a MultiCurve approximating a Multiline.
20 -- As a Multiline is a set of n lines, a MultiCurve is a set
21 -- of n curves. These curves are Bezier curves.
22 -- A MultiCurve is composed of m MultiPoint.
23 -- The approximating degree of these n curves is the same for
24 -- each one.
25 --
26 --
27 -- Example of a MultiCurve composed of MultiPoints:
28 --
29 -- P1______P2_____P3______P4________........_____PNbMPoints
30 --
31 -- Q1______Q2_____Q3______Q4________........_____QNbMPoints
32 -- . .
33 -- . .
34 -- . .
35 -- R1______R2_____R3______R4________........_____RNbMPoints
36 --
37 --
38 -- Pi, Qi, ..., Ri are points of dimension 2 or 3.
39 --
40 -- (Pi, Qi, ...Ri), i= 1,...NbPoles are MultiPoints.
41 -- each MultiPoint has got NbPol Poles.
42
43
44uses MultiPoint from AppParCurves,
45 HArray1OfMultiPoint from AppParCurves,
46 Array1OfMultiPoint from AppParCurves,
47 Array1OfPnt from TColgp,
48 Array1OfPnt2d from TColgp,
49 Pnt from gp,
50 Pnt2d from gp,
51 Vec from gp,
52 Vec2d from gp,
53 OStream from Standard
54
55
56raises OutOfRange from Standard,
57 DimensionError from Standard,
58 ConstructionError from Standard
59
60is
61
62 Create returns MultiCurve;
63 ---Purpose: returns an indefinite MultiCurve.
64
65
66 Create(NbPol: Integer)
67 ---Purpose: creates a MultiCurve, describing Bezier curves all
68 -- containing the same number of MultiPoint.
69 -- An exception is raised if Degree < 0.
70
71
72 returns MultiCurve from AppParCurves
73 raises OutOfRange from Standard;
74
75
76 Create(tabMU: Array1OfMultiPoint)
77 ---Purpose: creates a MultiCurve, describing Bezier curves all
78 -- containing the same number of MultiPoint.
79 -- Each MultiPoint must have NbCurves Poles.
80
81 returns MultiCurve from AppParCurves
82 raises ConstructionError from Standard;
6da30ff1 83
84 ---C++: alias " Standard_EXPORT virtual ~AppParCurves_MultiCurve();"
85
7fd59977 86 SetNbPoles(me: in out; nbPoles: Integer)
87 ---Purpose: The number of poles of the MultiCurve
88 -- will be set to <nbPoles>.
89
90 is static;
91
92
93
94 SetValue(me: in out; Index: Integer;
95 MPoint: MultiPoint from AppParCurves)
96 ---Purpose: sets the MultiPoint of range Index to the value
97 -- <MPoint>.
98 -- An exception is raised if Index <0 or Index >NbMPoint.
99
100 raises OutOfRange from Standard,
101 DimensionError from Standard
102 is static;
103
104
105
106 NbCurves(me)
107 ---Purpose: Returns the number of curves resulting from the
108 -- approximation of a MultiLine.
109
110 returns Integer
111 is static;
112
113
114 NbPoles(me)
115 ---Purpose: Returns the number of poles on curves resulting from the approximation of a MultiLine.
116
117 returns Integer
118 is virtual;
119
120
121 Degree(me)
122 ---Purpose: returns the degree of the curves.
123
124 returns Integer
125 is virtual;
126
127
128 Dimension(me; CuIndex: Integer)
129 ---Purpose: returns the dimension of the CuIndex curve.
130 -- An exception is raised if CuIndex<0 or CuIndex>NbCurves.
131 returns Integer
132 raises OutOfRange from Standard
133 is static;
134
135
136 Curve(me; CuIndex: Integer; TabPnt: in out Array1OfPnt)
137 ---Purpose: returns the Pole array of the curve of range CuIndex.
138 -- An exception is raised if the dimension of the curve
139 -- is 2d.
140
141 raises OutOfRange from Standard,
142 DimensionError from Standard
143 is static;
144
145
146 Curve(me; CuIndex: Integer; TabPnt: in out Array1OfPnt2d)
147 ---Purpose: returns the Pole array of the curve of range CuIndex.
148 -- An exception is raised if the dimension of the curve
149 -- is 3d.
150
151 raises OutOfRange from Standard,
152 DimensionError from Standard
153 is static;
154
155
156 Value(me; Index: Integer)
157 ---Purpose: returns the Index MultiPoint.
158 -- An exception is raised if Index <0 or Index >Degree+1.
159 ---C++: return const&
160
161 returns MultiPoint from AppParCurves
162 raises OutOfRange from Standard
163 is static;
164
165
166 Pole(me; CuIndex, Nieme: Integer)
167 ---Purpose: returns the Nieme pole of the CuIndex curve.
168 -- the curve must be a 3D curve.
169 ---C++: return const&
170
171 returns Pnt from gp
172 raises OutOfRange from Standard
173 is static;
174
175
176 Pole2d(me; CuIndex, Nieme: Integer)
177 ---Purpose: returns the Nieme pole of the CuIndex curve.
178 -- the curve must be a 2D curve.
179 ---C++: return const&
180
181 returns Pnt2d from gp
182 raises OutOfRange from Standard
183 is static;
184
185
186 Transform(me: in out; CuIndex: Integer; x, dx, y, dy, z, dz: Real)
187 ---Purpose: Applies a transformation to the curve of range
188 -- <CuIndex>.
189 -- newx = x + dx*oldx
190 -- newy = y + dy*oldy for all points of the curve.
191 -- newz = z + dz*oldz
192
193 raises OutOfRange from Standard
194 is static;
195
196
197 Transform2d(me: in out; CuIndex: Integer; x, dx, y, dy: Real)
198 ---Purpose: Applies a transformation to the Curve of range
199 -- <CuIndex>.
200 -- newx = x + dx*oldx
201 -- newy = y + dy*oldy for all points of the curve.
202
203 raises OutOfRange from Standard
204 is static;
205
206
207 Value(me; CuIndex: Integer; U: Real; Pt: out Pnt)
208 ---Purpose: returns the value of the point with a parameter U
209 -- on the Bezier curve number CuIndex.
210 -- An exception is raised if CuIndex <0 or > NbCurves.
211 -- An exception is raised if the curve dimension is 2d.
212
213 raises OutOfRange from Standard,
214 DimensionError from Standard
215 is virtual;
216
217
218 Value(me; CuIndex: Integer; U: Real; Pt: out Pnt2d)
219 ---Purpose: returns the value of the point with a parameter U
220 -- on the Bezier curve number CuIndex.
221 -- An exception is raised if CuIndex <0 or > NbCurves.
222 -- An exception is raised if the curve dimension is 3d.
223
224 raises OutOfRange from Standard,
225 DimensionError from Standard
226 is virtual;
227
228
229 D1(me; CuIndex: Integer; U: Real; Pt: out Pnt; V1: out Vec)
230 ---Purpose: returns the value of the point with a parameter U
231 -- on the Bezier curve number CuIndex.
232 -- An exception is raised if CuIndex <0 or > NbCurves.
233 -- An exception is raised if the curve dimension is 3d.
234
235 raises OutOfRange from Standard,
236 DimensionError from Standard
237 is virtual;
238
239
240 D1(me; CuIndex: Integer; U: Real; Pt: out Pnt2d; V1: out Vec2d)
241 ---Purpose: returns the value of the point with a parameter U
242 -- on the Bezier curve number CuIndex.
243 -- An exception is raised if CuIndex <0 or > NbCurves.
244 -- An exception is raised if the curve dimension is 2d.
245
246 raises OutOfRange from Standard,
247 DimensionError from Standard
248 is virtual;
249
250 D2(me; CuIndex: Integer; U: Real; Pt: out Pnt; V1: out Vec; V2: out Vec)
251 ---Purpose: returns the value of the point with a parameter U
252 -- on the Bezier curve number CuIndex.
253 -- An exception is raised if CuIndex <0 or > NbCurves.
254 -- An exception is raised if the curve dimension is 3d.
255
256 raises OutOfRange from Standard,
257 DimensionError from Standard
258 is virtual;
259
260
261 D2(me; CuIndex: Integer; U: Real; Pt: out Pnt2d;
262 V1: out Vec2d; V2: out Vec2d)
263 ---Purpose: returns the value of the point with a parameter U
264 -- on the Bezier curve number CuIndex.
265 -- An exception is raised if CuIndex <0 or > NbCurves.
266 -- An exception is raised if the curve dimension is 2d.
267
268 raises OutOfRange from Standard,
269 DimensionError from Standard
270 is virtual;
271
272
273 Dump(me; o: in out OStream)
274 ---Purpose: Prints on the stream o information on the current
275 -- state of the object.
276 -- Is used to redefine the operator <<.
277
278 is virtual;
279
280
281fields
282
283tabPoint: HArray1OfMultiPoint from AppParCurves is protected;
284
285
286end MultiCurve;