0024927: Getting rid of "Persistent" functionality -- Storable
[occt.git] / src / gp / gp_Pnt.cdl
1 -- Copyright (c) 1991-1999 Matra Datavision
2 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
3 --
4 -- This file is part of Open CASCADE Technology software library.
5 --
6 -- This library is free software; you can redistribute it and/or modify it under
7 -- the terms of the GNU Lesser General Public License version 2.1 as published
8 -- by the Free Software Foundation, with special exception defined in the file
9 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10 -- distribution for complete text of the license and disclaimer of any warranty.
11 --
12 -- Alternatively, this file may be used under the terms of Open CASCADE
13 -- commercial license or contractual agreement.
14
15 class Pnt   from gp
16
17         --- Purpose :  Defines a 3D cartesian point.
18
19 uses Ax1  from gp,
20      Ax2  from gp,
21      Trsf from gp, 
22      Vec  from gp,
23      XYZ  from gp
24
25 raises OutOfRange from Standard
26
27 is
28
29   Create   returns Pnt;
30         ---C++: inline
31         ---Purpose : Creates a point with zero coordinates.
32
33   Create (Coord : XYZ)   returns Pnt;
34         ---C++: inline
35         --- Purpose : Creates a point from a XYZ object.
36   
37   Create (Xp, Yp, Zp : Real)   returns Pnt;
38         ---C++:inline
39         --- Purpose :
40         --  Creates a  point with its 3 cartesian's coordinates : Xp, Yp, Zp.
41
42   SetCoord (me : in out; Index : Integer; Xi : Real)
43         ---C++:inline
44         --- Purpose :
45         --  Changes the coordinate of range Index :
46         --  Index = 1 => X is modified
47         --  Index = 2 => Y is modified
48         --  Index = 3 => Z is modified
49      raises OutOfRange
50         --- Purpose : Raised if Index != {1, 2, 3}.
51      is static;
52
53   SetCoord (me : in out; Xp, Yp, Zp : Real)
54         ---C++: inline
55         ---Purpose: For this point, assigns  the values Xp, Yp and Zp to its three coordinates. 
56     is static;
57
58   SetX (me : in out; X : Real)                
59         ---C++: inline
60         ---Purpose: Assigns the given value to the X coordinate of this point.
61     is static;
62
63   SetY (me : in out; Y : Real)                
64         ---C++: inline
65         ---Purpose: Assigns the given value to the Y coordinate of this point.
66     is static;
67
68   SetZ (me : in out; Z : Real)
69         ---C++: inline
70         ---Purpose: Assigns the given value to the Z coordinate of this point.          
71     is static;
72
73   SetXYZ (me : in out; Coord : XYZ)         
74         ---C++: inline 
75         ---Purpose: Assigns the three coordinates of Coord to this point. 
76      is static;
77
78   Coord (me; Index : Integer)  returns Real
79         --- Purpose :
80         --  Returns the coordinate of corresponding to the value of  Index :
81         --  Index = 1 => X is returned
82         --  Index = 2 => Y is returned
83         --  Index = 3 => Z is returned 
84         -- Raises OutOfRange if Index != {1, 2, 3}.
85      raises OutOfRange
86         ---C++: inline 
87         --- Purpose : Raised if Index != {1, 2, 3}.     
88      is static;
89
90   Coord (me; Xp, Yp, Zp : out Real)
91         ---C++: inline      
92         ---Purpose: For this point gives its three coordinates Xp, Yp and Zp.
93     is static;
94
95   X (me)   returns Real
96         ---C++: inline           
97         ---Purpose: For this point, returns its X coordinate.   
98     is static;
99
100   Y (me)   returns Real
101         ---C++: inline                  
102         ---Purpose: For this point, returns its Y coordinate. 
103         is static;
104
105   Z (me)   returns Real
106         ---C++: inline 
107         ---Purpose: For this point, returns its Z coordinate. 
108      is static;
109
110   XYZ (me) returns XYZ                   is static;
111         ---C++: inline
112         ---C++: return const &  
113         ---Purpose: For this point, returns its three coordinates as a XYZ object.
114
115   Coord (me) returns XYZ                 is static;
116         ---C++: inline
117         ---C++: return const &  
118         ---Purpose: For this point, returns its three coordinates as a XYZ object.
119
120   ChangeCoord (me : in out) returns XYZ                 is static;
121         ---C++: inline
122         ---C++: return &
123         --- Purpose:
124         -- Returns the coordinates of this point.
125         -- Note: This syntax allows direct modification of the returned value.
126
127   BaryCenter(me : in out; Alpha : Real; P : Pnt from gp; Beta : Real);
128         ---C++: inline 
129         ---Purpose: Assigns the result of the following expression to this point
130         -- (Alpha*this + Beta*P) / (Alpha + Beta)
131
132   IsEqual (me; Other : Pnt; LinearTolerance : Real)   returns Boolean
133      is static;
134         ---C++: inline
135         --- Purpose : Comparison
136         --  Returns True if the distance between the two points is
137         --  lower or equal to LinearTolerance.
138
139   Distance (me; Other : Pnt)   returns Real        is static;
140         ---C++: inline
141         --- Purpose : Computes the distance between two points.
142
143   SquareDistance (me; Other : Pnt)   returns Real  is static;
144         ---C++: inline
145         --- Purpose : Computes the square distance between two points.
146
147   Mirror (me : in out; P : Pnt)         is static;
148         --- Purpose :
149         --  Performs the symmetrical transformation of a point
150         --  with respect to the point P which is the center of 
151         --  the  symmetry.
152
153   Mirrored (me; P : Pnt)   returns Pnt  is static;
154         --- Purpose :
155         --  Performs the symmetrical transformation of a point
156         --  with respect to an axis placement which is the axis
157         --  of the symmetry.
158
159   Mirror (me : in out; A1 : Ax1)       is static;
160
161   Mirrored (me; A1 : Ax1)  returns Pnt is static;
162         --- Purpose :
163         --  Performs the symmetrical transformation of a point
164         --  with respect to a plane. The axis placement A2 locates 
165         --  the plane of the symmetry : (Location, XDirection, YDirection).
166
167   Mirror (me : in out; A2 : Ax2)         is static;
168
169   Mirrored (me; A2 : Ax2)   returns Pnt  is static;
170         --- Purpose :
171         --  Rotates a point. A1 is the axis of the rotation.
172         --  Ang is the angular value of the rotation in radians.
173
174   Rotate (me : in out; A1 : Ax1; Ang : Real)       is static;
175         ---C++: inline
176
177   Rotated (me; A1 : Ax1; Ang : Real)  returns Pnt  is static;
178         ---C++: inline
179         --- Purpose : Scales a point. S is the scaling value.
180
181   Scale (me : in out; P : Pnt; S : Real)       is static;
182         ---C++: inline
183
184   Scaled (me; P : Pnt; S : Real)  returns Pnt  is static;
185         ---C++: inline
186         --- Purpose : Transforms a point with the transformation T.
187
188   Transform (me : in out; T : Trsf)         is static;
189
190   Transformed (me; T : Trsf)   returns Pnt  is static;
191         ---C++: inline
192         --- Purpose : 
193         --  Translates a point in the direction of the vector V.
194         --  The magnitude of the translation is the vector's magnitude.
195
196   Translate (me : in out; V : Vec)        is static;
197         ---C++: inline
198
199   Translated (me; V : Vec)   returns Pnt  is static;
200         ---C++: inline
201         --- Purpose :
202         --  Translates a point from the point P1 to the point P2.
203
204   Translate (me : in out; P1, P2 : Pnt)        is static;
205         ---C++: inline
206
207   Translated (me; P1, P2 : Pnt)   returns Pnt  is static;
208         ---C++: inline
209
210
211 fields
212
213   coord : XYZ;
214
215 end;