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