0023024: Update headers of OCCT files
[occt.git] / src / AppDef / AppDef_MultiPointConstraint.cdl
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
21
22
23
24
25 class MultiPointConstraint from AppDef
26
27     inherits MultiPoint from AppParCurves
28
29         ---Purpose: Describes a MultiPointConstraint used in a
30         -- Multiline. MultiPointConstraints are composed
31         -- of several two or three-dimensional points.
32         -- The purpose is to define the corresponding
33         -- points that share a common constraint in order
34         -- to compute the approximation of several lines in parallel.
35         -- Notes:
36         -- -   The order of points of a MultiPointConstraints is very important.
37         --   Users must give 3D points first, and then 2D points.
38         -- -   The constraints for the points included in a
39         --   MultiPointConstraint are always identical for
40         --   all points, including the parameter.
41         -- -   If a MultiPointConstraint is a "tangency"
42         --   point, the point is also a "passing" point.
43
44
45
46 uses  Pnt                from gp,
47       Pnt2d              from gp, 
48       Vec                from gp,
49       Vec2d              from gp,
50       Array1OfPnt        from TColgp,
51       Array1OfPnt2d      from TColgp,
52       Array1OfVec        from TColgp,
53       Array1OfVec2d      from TColgp,
54       Constraint         from AppParCurves,
55       OStream            from Standard,
56       TShared            from MMgt
57       
58 raises OutOfRange        from Standard,
59        ConstructionError from Standard,
60        DimensionError    from Standard
61
62
63 is
64
65     Create
66         ---Purpose: creates an undefined MultiPointConstraint.
67
68     returns MultiPointConstraint from AppDef;
69
70
71     Create(NbPoints, NbPoints2d: Integer)
72         ---Purpose: constructs a set of Points used to approximate a Multiline.
73         --          These Points can be of 2 or 3 dimensions.
74         --          Points will be initialized with SetPoint and SetPoint2d.
75
76     returns MultiPointConstraint from AppDef;
77
78
79
80     Create(tabP: Array1OfPnt)
81         ---Purpose: creates a MultiPoint only composed of 3D points.
82
83     returns MultiPointConstraint from AppDef;
84
85
86     Create(tabP: Array1OfPnt2d)
87         ---Purpose: creates a MultiPoint only composed of 2D points.
88
89     returns MultiPointConstraint from AppDef;
90     
91                 
92     Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d)
93         ---Purpose: constructs a set of Points used to approximate a Multiline.
94         --          These Points can be of 2 or 3 dimensions.
95         --          Points will be initialized with SetPoint and SetPoint2d.
96    
97     returns MultiPointConstraint from AppDef;   
98    
99     
100
101     Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d;
102            tabVec: Array1OfVec; tabVec2d: Array1OfVec2d;
103            tabCur: Array1OfVec; tabCur2d: Array1OfVec2d)
104         ---Purpose: creates a MultiPointConstraint with a constraint of 
105         --          Curvature.
106         --          An exception is raised if 
107         --          (length of <tabP> + length of <tabP2d> ) is different
108         --          from (length of <tabVec> + length of <tabVec2d> ) or
109         --          from (length of <tabCur> + length of <tabCur2d> )
110
111     returns MultiPointConstraint from AppDef
112     raises ConstructionError from Standard;
113
114
115
116     Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d;
117            tabVec: Array1OfVec; tabVec2d: Array1OfVec2d)
118         ---Purpose: creates a MultiPointConstraint with a constraint of 
119         --          Tangency.
120         --          An exception is raised if 
121         --          (length of <tabP> + length of <tabP2d> ) is different
122         --          from (length of <tabVec> + length of <tabVec2d> )
123
124     returns MultiPointConstraint from AppDef
125     raises ConstructionError from Standard;
126
127
128
129
130     Create(tabP: Array1OfPnt; tabVec: Array1OfVec; tabCur: Array1OfVec)
131         ---Purpose: creates a MultiPointConstraint only composed of 3d points 
132         --          with constraints of curvature.
133         --          An exception is raised if the length of tabP is different
134         --          from the length of tabVec or from tabCur.
135     
136     returns MultiPointConstraint from AppDef
137     raises ConstructionError;
138
139
140     Create(tabP: Array1OfPnt; tabVec: Array1OfVec)
141         ---Purpose: creates a MultiPointConstraint only composed of 3d points 
142         --          with constraints of tangency.
143         --          An exception is raised if the length of tabP is different
144         --          from the length of tabVec.
145     
146     returns MultiPointConstraint
147     raises ConstructionError;
148
149     
150
151     Create(tabP2d: Array1OfPnt2d; tabVec2d: Array1OfVec2d)
152         ---Purpose: creates a MultiPointConstraint only composed of 2d points 
153         --          with constraints of tangency.
154         --          An exception is raised if the length of tabP is different
155         --          from the length of tabVec2d.
156     
157     returns MultiPointConstraint from AppDef
158     raises ConstructionError from Standard;
159
160         
161     Create(tabP2d: Array1OfPnt2d; 
162            tabVec2d: Array1OfVec2d; 
163            tabCur2d: Array1OfVec2d)
164         ---Purpose: creates a MultiPointConstraint only composed of 2d points 
165         --          with constraints of curvature.
166         --          An exception is raised if the length of tabP is different
167         --          from the length of tabVec2d or from tabCur2d.
168     
169     returns MultiPointConstraint from AppDef
170     raises ConstructionError from Standard;
171                 
172
173
174     
175     SetTang(me: in out; Index: Integer; Tang: Vec)
176         ---Purpose: sets the value of the tangency of the point of range 
177         --          Index.
178         --          An exception is raised if Index <0 or if Index > number
179         --          of 3d points.
180         --          An exception is raised if Tang has an incorrect number of
181         --          dimensions.
182     
183     raises OutOfRange from Standard,
184            DimensionError from Standard
185     is static;
186
187
188     Tang(me; Index: Integer)
189         ---Purpose: returns the tangency value of the point of range Index.
190         --          An exception is raised if Index < 0 or if Index > number 
191         --          of 3d points.
192     
193     returns Vec from gp
194     raises OutOfRange from Standard
195     is static;
196
197
198     SetTang2d(me: in out; Index: Integer; Tang2d: Vec2d)
199         ---Purpose: sets the value of the tangency of the point of range 
200         --          Index.
201         --          An exception is raised if Index <number of 3d points or if
202         --          Index > total number of Points
203         --          An exception is raised if Tang has an incorrect number of
204         --          dimensions.
205     
206     raises OutOfRange from Standard,
207            DimensionError from Standard
208     is static;
209
210
211     Tang2d(me; Index: Integer)
212         ---Purpose: returns the tangency value of the point of range Index.
213         --          An exception is raised if Index < number  of 3d points or
214         --          if Index > total number of points.
215     
216     returns Vec2d from gp
217     raises OutOfRange from Standard
218     is static;
219
220
221     SetCurv(me: in out; Index: Integer; Curv: Vec)
222         ---Purpose: Vec sets the value of the normal vector at the
223         -- point of index Index. The norm of the normal
224         -- vector at the point of position Index is set to the normal curvature.
225         --          An exception is raised if Index <0 or if Index > number
226         --          of 3d points.
227         --          An exception is raised if Curv has an incorrect number of
228         --          dimensions.
229     
230     raises OutOfRange from Standard,
231            DimensionError from Standard
232     is static;
233
234
235     Curv(me; Index: Integer)
236         ---Purpose: returns the normal vector at the point of range Index.
237         --          An exception is raised if Index < 0 or if Index > number 
238         --          of 3d points.
239     
240     returns Vec from gp
241     raises OutOfRange from Standard
242     is static;
243
244
245
246     SetCurv2d(me: in out; Index: Integer; Curv2d: Vec2d)
247         ---Purpose: Vec sets the value of the normal vector at the
248         -- point of index Index. The norm of the normal
249         -- vector at the point of position Index is set to the normal curvature.
250         --          An exception is raised if Index <0 or if Index > number
251         --          of 3d points.
252         --          An exception is raised if Curv has an incorrect number of
253         --          dimensions.
254     
255     raises OutOfRange from Standard,
256            DimensionError from Standard
257     is static;
258
259
260     Curv2d(me; Index: Integer)
261         ---Purpose: returns the normal vector at the point of range Index.
262         --          An exception is raised if Index < 0 or if Index > number 
263         --          of 3d points.
264     
265     returns Vec2d from gp
266     is static;
267
268
269     IsTangencyPoint(me)
270         ---Purpose: returns True if the MultiPoint has a tangency value.
271
272     returns Boolean
273     raises OutOfRange from Standard
274     is static;
275
276     IsCurvaturePoint(me)
277         ---Purpose: returns True if the MultiPoint has a curvature value.
278
279     returns Boolean
280     raises OutOfRange from Standard
281     is static;
282
283
284     Dump(me; o: in out OStream)
285         ---Purpose: Prints on the stream o information on the current 
286         --          state of the object.
287         --          Is used to redefine the operator <<.
288
289     is redefined;
290
291
292
293 fields
294
295 ttabTang:   TShared from MMgt;
296 ttabCurv:   TShared from MMgt;
297 ttabTang2d: TShared from MMgt;
298 ttabCurv2d: TShared from MMgt;
299
300
301 end MultiPointConstraint from AppDef;