0024927: Getting rid of "Persistent" functionality -- Storable
[occt.git] / src / gp / gp_Sphere.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 Sphere   from gp
16
17        
18         --- Purpose :
19         -- Describes a sphere.
20         -- A sphere is defined by its radius and positioned in space
21         -- with a coordinate system (a gp_Ax3 object). The origin of
22         -- the coordinate system is the center of the sphere. This
23         -- coordinate system is the "local coordinate system" of the sphere.
24         -- Note: when a gp_Sphere sphere is converted into a
25         -- Geom_SphericalSurface sphere, some implicit
26         -- properties of its local coordinate system are used explicitly:
27         -- -   its origin, "X Direction", "Y Direction" and "main
28         --   Direction" are used directly to define the parametric
29         --   directions on the sphere and the origin of the parameters,
30         -- -   its implicit orientation (right-handed or left-handed)
31         --   gives the orientation (direct, indirect) to the
32         --   Geom_SphericalSurface sphere.
33         -- See Also
34         -- gce_MakeSphere which provides functions for more
35         -- complex sphere constructions
36         -- Geom_SphericalSurface which provides additional
37         -- functions for constructing spheres and works, in
38         -- particular, with the parametric equations of spheres. 
39
40 uses Ax1  from gp,
41      Ax2  from gp,
42      Ax3  from gp,
43      Dir  from gp,
44      Pnt  from gp,
45      Trsf from gp,
46      Vec  from gp
47
48 raises ConstructionError from Standard
49
50 is
51
52   Create   returns Sphere;
53         ---C++:inline
54         --- Purpose : Creates an indefinite sphere.
55
56   Create (A3 : Ax3; Radius : Real)   returns Sphere
57         ---C++: inline
58         --- Purpose :
59         -- Constructs a sphere with radius Radius, centered on the origin     
60         --   of A3.  A3 is the local coordinate system of the sphere.
61         --  Warnings :
62         --  It is not forbidden to create a sphere with null radius.  
63         -- Raises ConstructionError if Radius < 0.0
64      raises ConstructionError;
65
66   SetLocation (me : in out; Loc : Pnt)  is static;
67         ---C++: inline
68         --- Purpose : Changes the center of the sphere.
69
70   SetPosition (me : in out; A3 : Ax3)   is static;
71         ---C++: inline
72         --- Purpose : Changes the local coordinate system of the sphere.
73
74   SetRadius (me : in out; R : Real)
75         ---C++: inline
76         --- Purpose : Assigns R the radius of the Sphere.
77         -- Warnings :
78         --  It is not forbidden to create a sphere with null radius. 
79         -- Raises ConstructionError if R < 0.0
80      raises ConstructionError
81      is static;
82
83   Area (me) returns Real  is static;
84         ---C++: inline
85         --- Purpose :
86         -- Computes the aera of the sphere.
87
88   Coefficients (me; A1, A2, A3, B1, B2, B3, C1, C2, C3, D : out Real)
89      is static;
90         --- Purpose :
91         --  Computes the coefficients of the implicit equation of the quadric
92         --  in the absolute cartesian coordinates system :
93         --  A1.X**2 + A2.Y**2 + A3.Z**2 + 2.(B1.X.Y + B2.X.Z + B3.Y.Z) +
94         --  2.(C1.X + C2.Y + C3.Z) + D = 0.0
95
96   UReverse (me : in out)
97         ---C++: inline
98         ---Purpose: Reverses the   U   parametrization of   the sphere
99         --          reversing the YAxis.
100   is static;
101
102   VReverse (me : in out)
103         ---C++: inline
104         ---Purpose: Reverses the   V   parametrization of   the  sphere
105         --          reversing the ZAxis.
106   is static;
107
108   Direct (me) returns Boolean from Standard
109         ---C++: inline
110         ---Purpose: Returns true if the local coordinate system of this sphere
111         -- is right-handed.
112   is static;
113
114   Location (me)  returns Pnt  is static;
115         ---C++: inline
116         --- Purpose ;
117         --  Returns the center of the sphere.
118         ---C++: return const&
119
120   Position (me)  returns Ax3  is static;
121         --- Purpose :
122         --  Returns the local coordinates system of the sphere.
123         ---C++: inline
124         ---C++: return const&
125
126   Radius (me)  returns Real  is static;
127         ---C++: inline
128         --- Purpose : Returns the radius of the sphere.
129
130   Volume (me)  returns Real  is static;
131         ---C++: inline
132         --- Purpose : Computes the volume of the sphere
133
134   XAxis (me)  returns Ax1  is static;
135         ---C++: inline
136         --- Purpose : Returns the axis X of the sphere.
137
138   YAxis (me)  returns Ax1  is static;
139         ---C++: inline
140         --- Purpose : Returns the axis Y of the sphere.
141
142
143
144   Mirror (me : in out; P : Pnt)            is static;
145
146   Mirrored (me; P : Pnt)  returns Sphere   is static;
147
148         --- Purpose :
149         --  Performs the symmetrical transformation of a sphere 
150         --  with respect to the point P which is the center of the 
151         --  symmetry.
152                     
153     
154
155   Mirror (me : in out; A1 : Ax1)              is static;
156
157   Mirrored (me; A1 : Ax1)   returns Sphere    is static;
158     --- Purpose :
159         --  Performs the symmetrical transformation of a sphere with
160         --  respect to an axis placement which is the axis of the
161         --  symmetry.
162
163
164
165   Mirror (me : in out; A2 : Ax2)               is static;
166
167   Mirrored (me; A2 : Ax2)    returns Sphere    is static;
168
169
170         --- Purpose :
171         --  Performs the symmetrical transformation of a sphere with respect 
172         --  to a plane. The axis placement A2 locates the plane of the
173         --  of the symmetry : (Location, XDirection, YDirection).
174
175
176   Rotate (me : in out; A1 : Ax1; Ang : Real)         is static;
177         ---C++: inline
178
179   Rotated (me; A1 : Ax1; Ang : Real) returns Sphere  is static;
180         ---C++: inline
181         --- Purpose :
182         --  Rotates a sphere. A1 is the axis of the rotation.
183         --  Ang is the angular value of the rotation in radians.
184
185
186
187   Scale (me : in out; P : Pnt; S : Real)          is static;
188         ---C++:inline
189
190   Scaled (me; P : Pnt; S : Real)  returns Sphere  is static;
191         ---C++:inline
192         --- Purpose : 
193         --  Scales a sphere. S is the scaling value.
194         --  The absolute value of S is used to scale the sphere
195
196   Transform (me : in out; T : Trsf)               is static;
197         ---C++:inline
198
199   Transformed (me; T : Trsf)     returns Sphere   is static;
200         ---C++:inline
201
202         --- Purpose :
203         --  Transforms a sphere with the transformation T from class Trsf.
204
205
206       
207    
208
209   Translate (me : in out; V : Vec)          is static;
210         ---C++:inline
211
212   Translated (me; V : Vec)  returns Sphere  is static;
213         ---C++:inline
214      --- Purpose :
215         --  Translates a sphere in the direction of the vector V.
216         --  The magnitude of the translation is the vector's magnitude.
217
218
219     
220   Translate (me : in out; P1, P2 : Pnt)          is static;   
221         ---C++:inline
222
223   Translated (me; P1, P2 : Pnt)  returns Sphere  is static;
224         ---C++:inline
225         --- Purpose :
226         --  Translates a sphere from the point P1 to the point P2.
227
228
229
230
231 fields
232
233   pos    : Ax3;
234   radius : Real;
235
236 end;
237
238