0024428: Implementation of LGPL license
[occt.git] / src / AppParCurves / AppParCurves_MultiPoint.cdl
1 -- Created on: 1991-12-02
2 -- Created by: Laurent PAINNOT
3 -- Copyright (c) 1991-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and / or modify it
9 -- under the terms of the GNU Lesser General Public version 2.1 as published
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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class MultiPoint from AppParCurves
18         ---Purpose: This class describes Points composing a MultiPoint.
19         --          These points can be 2D or 3D. The user must first give the 
20         --          3D Points and then the 2D Points.
21         --          They are Poles of a Bezier Curve.
22         -- This class is used either to define data input or
23         -- results when performing the approximation of several lines in parallel.
24
25
26 uses Pnt                from gp,
27      Pnt2d              from gp,
28      Vec                from gp,
29      Vec2d              from gp,
30      Array1OfPnt        from TColgp,
31      Array1OfPnt2d      from TColgp,
32      HArray1OfPnt       from TColgp,
33      HArray1OfPnt2d     from TColgp,
34      OStream            from Standard,
35      TShared            from MMgt
36      
37 raises OutOfRange     from Standard,
38        DimensionError from Standard
39
40 is
41
42     Create returns MultiPoint;
43         ---Purpose: creates an indefinite MultiPoint.
44
45
46     Create(NbPoints, NbPoints2d: Integer)
47         ---Purpose: constructs a set of Points used to approximate a 
48         --          Multiline.
49         --          These Points can be of 2 or 3 dimensions.
50         --          Points will be initialized with SetPoint and SetPoint2d.
51         --          NbPoints is the number of 3D Points.
52         --          NbPoints2d is the number of 2D Points.
53
54     returns MultiPoint from AppParCurves;
55
56
57     Create(tabP: Array1OfPnt)
58         ---Purpose: creates a MultiPoint only composed of 3D points.
59
60     returns MultiPoint from AppParCurves;
61
62
63     Create(tabP2d: Array1OfPnt2d)
64         ---Purpose: creates a MultiPoint only composed of 2D points.
65
66     returns MultiPoint from AppParCurves;
67     
68                 
69     Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d)
70         ---Purpose: constructs a set of Points used to approximate a 
71         --          Multiline.
72         --          These Points can be of 2 or 3 dimensions.
73         --          Points will be initialized with SetPoint and SetPoint2d.
74         --          NbPoints is the total number of Points.
75    
76     returns MultiPoint from AppParCurves;   
77    
78         
79     Delete(me:out) is virtual;
80     ---C++: alias "Standard_EXPORT virtual ~AppParCurves_MultiPoint(){Delete();}"
81     
82     SetPoint(me: in out; Index: Integer; Point: Pnt)
83         ---Purpose: the 3d Point of range Index of this MultiPoint is 
84         --          set to <Point>.
85         --          An exception is raised if Index < 0 or 
86         --          Index > number of 3d Points.
87
88     raises OutOfRange from Standard
89     is static;
90     
91
92
93     Point(me; Index: Integer)
94         ---Purpose: returns the 3d Point of range Index.
95         --          An exception is raised if Index < 0 or
96         --          Index < number of 3d Points.
97         ---C++: return const&
98     
99     returns Pnt from gp
100     raises OutOfRange from Standard
101     is static;
102     
103     
104     SetPoint2d(me: in out; Index: Integer; Point: Pnt2d)
105         ---Purpose: The 2d Point of range Index is set to <Point>.
106         --          An exception is raised if Index > 3d Points or 
107         --          Index > total number of Points.
108     
109     raises OutOfRange from Standard,
110            DimensionError from Standard
111     is static;
112     
113
114     Point2d(me; Index: Integer)
115         ---Purpose: returns the 2d Point of range Index.
116         --          An exception is raised if index <= number of 
117         --          3d Points or Index > total number of Points.
118         ---C++: return const&
119
120     returns Pnt2d from gp
121     raises OutOfRange from Standard
122     is static;
123
124
125
126     Dimension(me; Index: Integer)
127         ---Purpose: returns the dimension of the point of range Index.
128         --          An exception is raised if Index <0 or Index > NbCurves.
129         ---C++: inline
130
131     returns Integer
132     raises OutOfRange from Standard
133     is static;
134     
135
136     NbPoints(me)
137         ---Purpose: returns the number of points of dimension 3D.
138         ---C++: inline
139
140     returns Integer
141     is static;
142         
143                             
144     NbPoints2d(me)
145         ---Purpose: returns the number of points of dimension 2D.
146         ---C++: inline
147
148     returns Integer
149     is static;
150
151
152     Transform(me: in out; CuIndex: Integer; x, dx, y, dy, z, dz: Real)
153         ---Purpose: Applies a transformation to the curve of range 
154         --          <CuIndex>.
155         --          newx = x + dx*oldx
156         --          newy = y + dy*oldy    for all points of the curve.
157         --          newz = z + dz*oldz
158
159     raises OutOfRange from Standard
160     is static;
161
162
163     Transform2d(me: in out; CuIndex: Integer; x, dx, y, dy: Real)
164         ---Purpose: Applies a transformation to the Curve of range 
165         --          <CuIndex>.
166         --          newx = x + dx*oldx
167         --          newy = y + dy*oldy    for all points of the curve.
168
169     raises OutOfRange from Standard
170     is static;
171
172
173     Dump(me; o: in out OStream)
174         ---Purpose: Prints on the stream o information on the current 
175         --          state of the object.
176         --          Is used to redefine the operator <<.
177     is virtual;
178
179 fields
180
181 ttabPoint  : TShared from MMgt is protected;
182 ttabPoint2d: TShared from MMgt is protected;
183 nbP        : Integer is protected;
184 nbP2d      : Integer is protected;
185
186 end MultiPoint;
187