b311480e |
1 | -- Created on: 1993-03-24 |
2 | -- Created by: JCV |
3 | -- Copyright (c) 1993-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 | |
7fd59977 |
21 | |
7fd59977 |
22 | |
23 | |
24 | deferred class Geometry from Geom2d inherits TShared from MMgt |
25 | |
26 | --- Purpose : |
27 | -- The general abstract class Geometry in 2D space describes |
28 | -- the common behaviour of all the geometric entities. |
29 | -- |
30 | -- All the objects derived from this class can be move with a |
31 | -- geometric transformation. Only the transformations which |
32 | -- doesn't modify the nature of the geometry are available in |
33 | -- this package. |
34 | -- The method Transform which defines a general transformation |
35 | -- is deferred. The other specifics transformations used the |
36 | -- method Transform. |
37 | -- All the following transformations modify the object itself. |
38 | -- Warning |
39 | -- Only transformations which do not modify the nature |
40 | -- of the geometry can be applied to Geom2d objects: |
41 | -- this is the case with translations, rotations, |
42 | -- symmetries and scales; this is also the case with |
43 | -- gp_Trsf2d composite transformations which are |
44 | -- used to define the geometric transformations applied |
45 | -- using the Transform or Transformed functions. |
46 | -- Note: Geometry defines the "prototype" of the |
47 | -- abstract method Transform which is defined for each |
48 | -- concrete type of derived object. All other |
49 | -- transformations are implemented using the Transform method. |
50 | |
51 | uses Ax2d from gp, |
52 | Pnt2d from gp, |
53 | Trsf2d from gp, |
54 | Vec2d from gp |
55 | |
56 | raises ConstructionError from Standard |
57 | |
58 | is |
59 | |
60 | |
61 | |
62 | Mirror (me : mutable; P : Pnt2d) |
63 | --- Purpose : Performs the symmetrical transformation of a Geometry |
64 | -- with respect to the point P which is the center of the |
65 | -- symmetry and assigns the result to this geometric object. |
66 | is static; |
67 | |
68 | |
69 | Mirror (me : mutable; A : Ax2d) |
70 | --- Purpose : Performs the symmetrical transformation of a Geometry |
71 | -- with respect to an axis placement which is the axis of the symmetry. |
72 | is static; |
73 | |
74 | |
75 | |
76 | Rotate (me : mutable; P : Pnt2d; Ang : Real) |
77 | --- Purpose : Rotates a Geometry. P is the center of the rotation. |
78 | -- Ang is the angular value of the rotation in radians. |
79 | is static; |
80 | |
81 | |
82 | Scale (me : mutable; P : Pnt2d; S : Real) |
83 | --- Purpose : Scales a Geometry. S is the scaling value. |
84 | is static; |
85 | |
86 | |
87 | Translate (me : mutable; V : Vec2d) |
88 | --- Purpose : Translates a Geometry. V is the vector of the tanslation. |
89 | is static; |
90 | |
91 | Translate (me : mutable; P1, P2 : Pnt2d) |
92 | --- Purpose : Translates a Geometry from the point P1 to the point P2. |
93 | is static; |
94 | |
95 | Transform (me : mutable; T : Trsf2d) |
96 | --- Purpose : Transformation of a geometric object. This tansformation |
97 | -- can be a translation, a rotation, a symmetry, a scaling |
98 | -- or a complex transformation obtained by combination of |
99 | -- the previous elementaries transformations. |
100 | -- (see class Transformation of the package Geom2d). |
101 | is deferred; |
102 | |
103 | |
104 | |
105 | |
106 | --- Purpose : The following transformations have the same properties |
107 | -- as the previous ones but they don't modified the object |
108 | -- itself. A copy of the object is returned. |
109 | |
110 | |
111 | |
112 | Mirrored (me; P : Pnt2d) returns mutable like me |
113 | is static; |
114 | |
115 | Mirrored (me; A : Ax2d) returns mutable like me |
116 | is static; |
117 | |
118 | Rotated (me; P : Pnt2d; Ang : Real) returns mutable like me |
119 | is static; |
120 | |
121 | Scaled (me; P : Pnt2d; S : Real) returns mutable like me |
122 | is static; |
123 | |
124 | Transformed (me; T : Trsf2d) returns mutable like me |
125 | is static; |
126 | |
127 | Translated (me; V : Vec2d) returns mutable like me |
128 | is static; |
129 | |
130 | Translated (me; P1, P2 : Pnt2d) returns mutable like me |
131 | is static; |
132 | |
133 | Copy (me) returns mutable like me is deferred; |
134 | |
135 | |
136 | end; |