7fd59977 |
1 | -- File: Geom_Geometry.cdl |
2 | -- Created: Tue Mar 9 19:17:40 1993 |
3 | -- Author: JVC |
4 | -- <fid@phylox> |
5 | -- Copyright: Matra Datavision 1993 |
6 | |
7 | |
8 | deferred class Geometry from Geom inherits TShared from MMgt |
9 | |
10 | ---Purpose : The abstract class Geometry for 3D space is the root |
11 | -- class of all geometric objects from the Geom |
12 | -- package. It describes the common behavior of these objects when: |
13 | -- - applying geometric transformations to objects, and |
14 | -- - constructing objects by geometric transformation (including copying). |
15 | -- Warning |
16 | -- Only transformations which do not modify the nature |
17 | -- of the geometry can be applied to Geom objects: this |
18 | -- is the case with translations, rotations, symmetries |
19 | -- and scales; this is also the case with gp_Trsf |
20 | -- composite transformations which are used to define |
21 | -- the geometric transformations applied using the |
22 | -- Transform or Transformed functions. |
23 | -- Note: Geometry defines the "prototype" of the |
24 | -- abstract method Transform which is defined for each |
25 | -- concrete type of derived object. All other |
26 | -- transformations are implemented using the Transform method. |
27 | |
28 | |
29 | uses Ax1 from gp, |
30 | Ax2 from gp, |
31 | Pnt from gp, |
32 | Trsf from gp, |
33 | Vec from gp |
34 | |
35 | raises ConstructionError from Standard |
36 | |
37 | is |
38 | |
39 | ---Group: |
40 | -- All the following transformations modify the object itself. |
41 | |
42 | |
43 | Mirror (me : mutable; P : Pnt) |
44 | ---Purpose : |
45 | -- Performs the symmetrical transformation of a Geometry |
46 | -- with respect to the point P which is the center of the |
47 | -- symmetry. |
48 | is static; |
49 | |
50 | Mirror (me : mutable; A1 : Ax1) |
51 | ---Purpose : |
52 | -- Performs the symmetrical transformation of a Geometry |
53 | -- with respect to an axis placement which is the axis of the |
54 | -- symmetry. |
55 | is static; |
56 | |
57 | |
58 | Mirror (me : mutable; A2 : Ax2) |
59 | ---Purpose : |
60 | -- Performs the symmetrical transformation of a Geometry |
61 | -- with respect to a plane. The axis placement A2 locates |
62 | -- the plane of the symmetry : (Location, XDirection, YDirection). |
63 | is static; |
64 | |
65 | |
66 | |
67 | Rotate (me : mutable; A1 : Ax1; Ang : Real) |
68 | ---Purpose : |
69 | -- Rotates a Geometry. A1 is the axis of the rotation. |
70 | -- Ang is the angular value of the rotation in radians. |
71 | is static; |
72 | |
73 | |
74 | |
75 | Scale (me : mutable; P : Pnt; S : Real) |
76 | ---Purpose : |
77 | -- Scales a Geometry. S is the scaling value. |
78 | is static; |
79 | |
80 | Translate (me : mutable; V : Vec) |
81 | ---Purpose : |
82 | -- Translates a Geometry. V is the vector of the tanslation. |
83 | is static; |
84 | |
85 | |
86 | Translate (me : mutable; P1, P2 : Pnt) |
87 | ---Purpose : |
88 | -- Translates a Geometry from the point P1 to the point P2. |
89 | is static; |
90 | |
91 | Transform (me : mutable; T : Trsf) |
92 | ---Purpose : |
93 | -- Transformation of a geometric object. This tansformation |
94 | -- can be a translation, a rotation, a symmetry, a scaling |
95 | -- or a complex transformation obtained by combination of |
96 | -- the previous elementaries transformations. |
97 | -- (see class Transformation of the package Geom). |
98 | is deferred; |
99 | |
100 | |
101 | |
102 | |
103 | ---Group: |
104 | -- The following transformations have the same properties |
105 | -- as the previous ones but they don't modified the object |
106 | -- itself. A copy of the object is returned. |
107 | |
108 | |
109 | Mirrored (me; P : Pnt) returns mutable like me |
110 | is static; |
111 | |
112 | |
113 | Mirrored (me; A1 : Ax1) returns mutable like me |
114 | is static; |
115 | |
116 | |
117 | Mirrored (me; A2 : Ax2) returns mutable like me |
118 | is static; |
119 | |
120 | |
121 | Rotated (me; A1 : Ax1; Ang : Real) returns mutable like me |
122 | is static; |
123 | |
124 | |
125 | Scaled (me; P : Pnt; S : Real) returns mutable like me |
126 | is static; |
127 | |
128 | |
129 | Transformed (me; T : Trsf) returns mutable like me |
130 | is static; |
131 | |
132 | |
133 | Translated (me; V : Vec) returns mutable like me |
134 | is static; |
135 | |
136 | |
137 | Translated (me; P1, P2 : Pnt) returns mutable like me |
138 | is static; |
139 | |
140 | Copy (me) returns mutable like me is deferred; |
141 | ---Purpose: Creates a new object which is a copy of this geometric object. |
142 | |
143 | |
144 | end; |