1 -- Created on: 1996-12-30
2 -- Created by: Stagiaire Mary FABIEN
3 -- Copyright (c) 1996-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
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.
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.
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.
22 class GTransform from BRepBuilderAPI inherits ModifyShape from BRepBuilderAPI
24 ---Purpose: Geometric transformation on a shape.
25 -- The transformation to be applied is defined as a gp_GTrsf
26 -- transformation. It may be:
27 -- - a transformation equivalent to a gp_Trsf transformation, the
28 -- most common case: you should , however, use a BRepAPI_Transform
29 -- object to perform this kind of transformation; or
31 -- - more generally, any type of point transformation which may
32 -- be defined by a three row, four column matrix of transformation.
33 -- In the last two cases, the underlying geometry of the
34 -- following shapes may change:
35 -- - a curve which supports an edge of the shape, or
36 -- - a surface which supports a face of the shape;
37 -- For example, a circle may be transformed into an ellipse when
38 -- applying an affinity transformation.
39 -- The transformation is applied to:
40 -- - all the curves which support edges of the shape, and
41 -- - all the surfaces which support faces of the shape.
42 -- A GTransform object provides a framework for:
43 -- - defining the geometric transformation to be applied,
44 -- - implementing the transformation algorithm, and
45 -- - consulting the result.
54 Collect from BRepBuilderAPI,
55 ShapeModification from BRepBuilderAPI,
56 ListOfShape from TopTools
58 -- Modified by Sergey KHROMOV - Thu Mar 27 17:45:42 2003 Begin
60 NoSuchObject from Standard
62 -- Modified by Sergey KHROMOV - Thu Mar 27 17:45:42 2003 End
65 Create(T: GTrsf from gp)
67 returns GTransform from BRepBuilderAPI;
68 ---Purpose: Constructs a framework for applying the geometric
69 -- transformation T to a shape. Use the function
70 -- Perform to define the shape to transform.
73 Create(S: Shape from TopoDS; T: GTrsf from gp;
74 Copy: Boolean from Standard = Standard_False)
76 returns GTransform from BRepBuilderAPI;
77 ---Purpose: Constructs a framework for applying the geometric
78 -- transformation T to a shape, and applies it to the shape S.
79 -- - If the transformation T is direct and isometric (i.e. if
80 -- the determinant of the vectorial part of T is equal to
81 -- 1.), and if Copy equals false (default value), the
82 -- resulting shape is the same as the original but with
83 -- a new location assigned to it.
84 -- - In all other cases, the transformation is applied to
86 -- Use the function Shape to access the result.
87 -- Note: the constructed framework can be reused to
88 -- apply the same geometric transformation to other
89 -- shapes: just specify them with the function Perform.
92 Perform(me: in out; S : Shape from TopoDS;
93 Copy: Boolean from Standard = Standard_False)
95 ---Purpose: Applies the geometric transformation defined at the
96 -- time of construction of this framework to the shape S.
97 -- - If the transformation T is direct and isometric (i.e. if
98 -- the determinant of the vectorial part of T is equal to
99 -- 1.), and if Copy equals false (default value), the
100 -- resulting shape is the same as the original but with
101 -- a new location assigned to it.
102 -- - In all other cases, the transformation is applied to a duplicate of S.
103 -- Use the function Shape to access the result.
104 -- Note: this framework can be reused to apply the same
105 -- geometric transformation to other shapes: just specify
106 -- them by calling the function Perform again.
110 Modified (me: in out; S : Shape from TopoDS)
111 ---Purpose: Returns the list of shapes modified from the shape
113 ---C++: return const &
115 returns ListOfShape from TopTools
116 is redefined virtual;
118 -- Modified by Sergey KHROMOV - Thu Mar 27 17:43:59 2003 Begin
119 ModifiedShape(me; S: Shape from TopoDS)
120 returns Shape from TopoDS
121 ---Purpose: Returns the modified shape corresponding to <S>.
122 ---C++: return const&
123 raises NoSuchObject from Standard
124 -- if S is not the initial shape or a sub-shape
125 -- of the initial shape.
126 is redefined virtual;
127 -- Modified by Sergey KHROMOV - Thu Mar 27 17:44:02 2003 End
131 myGTrsf : GTrsf from gp;
132 myHist : Collect from BRepBuilderAPI;