0023706: Cannot project point on curve
[occt.git] / src / Geom2d / Geom2d_Geometry.cdl
CommitLineData
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
24deferred 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
51uses Ax2d from gp,
52 Pnt2d from gp,
53 Trsf2d from gp,
54 Vec2d from gp
55
56raises ConstructionError from Standard
57
58is
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
136end;