Salome HOME
Fix for the "0021580: GEOM EDF: SetColor does not work" issue.
[modules/geom.git] / src / GEOMImpl / BRepBuilderAPI_GTransform_21423.hxx
1 // This file is generated by WOK (CPPExt).
2 // Please do not edit this file; modify original file instead.
3 // The copyright and license terms as defined for the original file apply to 
4 // this header file considered to be the "object code" form of the original source.
5
6 #ifndef _BRepBuilderAPI_GTransform_21423_HeaderFile
7 #define _BRepBuilderAPI_GTransform_21423_HeaderFile
8
9 #ifndef _Standard_HeaderFile
10 #include <Standard.hxx>
11 #endif
12 #ifndef _Standard_Macro_HeaderFile
13 #include <Standard_Macro.hxx>
14 #endif
15
16 #ifndef _gp_GTrsf_HeaderFile
17 #include <gp_GTrsf.hxx>
18 #endif
19 #ifndef _Standard_Boolean_HeaderFile
20 #include <Standard_Boolean.hxx>
21 #endif
22 #ifndef _BRepBuilderAPI_Collect_HeaderFile
23 #include <BRepBuilderAPI_Collect.hxx>
24 #endif
25 #ifndef _BRepBuilderAPI_ModifyShape_21423_HeaderFile
26 #include <BRepBuilderAPI_ModifyShape_21423.hxx>
27 #endif
28 class Standard_NoSuchObject;
29 class gp_GTrsf;
30 class TopoDS_Shape;
31 class TopTools_ListOfShape;
32
33
34 //! Geometric transformation on a shape. <br>
35 //! The transformation to be applied is defined as a gp_GTrsf <br>
36 //! transformation. It may be: <br>
37 //! -      a transformation equivalent to a gp_Trsf transformation, the <br>
38 //!    most common case: you should , however, use a BRepAPI_Transform <br>
39 //!    object to perform this kind of transformation; or <br>
40 //! -      an affinity, or <br>
41 //! -      more generally, any type of point transformation which may <br>
42 //!  be defined by a three row, four column matrix of transformation. <br>
43 //! In the last two cases, the underlying geometry of the <br>
44 //! following shapes may change: <br>
45 //! -      a curve which supports an edge of the shape, or <br>
46 //! -      a surface which supports a face of the shape; <br>
47 //! For example, a circle may be transformed into an ellipse when <br>
48 //! applying an affinity transformation. <br>
49 //! The transformation is applied to: <br>
50 //! -      all the curves which support edges of the shape, and <br>
51 //! -      all the surfaces which support faces of the shape. <br>
52 //! A GTransform object provides a framework for: <br>
53 //! -      defining the geometric transformation to be applied, <br>
54 //! -      implementing the transformation algorithm, and <br>
55 //! -      consulting the result. <br>
56 class BRepBuilderAPI_GTransform_21423  : public BRepBuilderAPI_ModifyShape_21423 {
57 public:
58
59   void* operator new(size_t,void* anAddress) 
60   {
61     return anAddress;
62   }
63   void* operator new(size_t size) 
64   {
65     return Standard::Allocate(size); 
66   }
67   void  operator delete(void *anAddress) 
68   {
69     if (anAddress) Standard::Free((Standard_Address&)anAddress); 
70   }
71
72   //! Constructs a framework for applying the geometric <br>
73 //! transformation T to a shape. Use the function <br>
74 //! Perform to define the shape to transform. <br>
75   Standard_EXPORT   BRepBuilderAPI_GTransform_21423(const gp_GTrsf& T);
76   //! Constructs a framework for applying the geometric <br>
77 //! transformation T to a shape, and applies it to the shape S. <br>
78 //! -   If the transformation T is direct and isometric (i.e. if <br>
79 //!   the determinant of the vectorial part of T is equal to <br>
80 //!   1.), and if Copy equals false (default value), the <br>
81 //!   resulting shape is the same as the original but with <br>
82 //!   a new location assigned to it. <br>
83 //! -   In all other cases, the transformation is applied to <br>
84 //!   a duplicate of S. <br>
85 //! Use the function Shape to access the result. <br>
86 //! Note: the constructed framework can be reused to <br>
87 //! apply the same geometric transformation to other <br>
88 //! shapes: just specify them with the function Perform. <br>
89   Standard_EXPORT   BRepBuilderAPI_GTransform_21423(const TopoDS_Shape& S,const gp_GTrsf& T,const Standard_Boolean Copy = Standard_False);
90   //! Applies the geometric transformation defined at the <br>
91 //! time of construction of this framework to the shape S. <br>
92 //! -   If the transformation T is direct and isometric (i.e. if <br>
93 //!   the determinant of the vectorial part of T is equal to <br>
94 //!   1.), and if Copy equals false (default value), the <br>
95 //!   resulting shape is the same as the original but with <br>
96 //!   a new location assigned to it. <br>
97 //! -   In all other cases, the transformation is applied to a duplicate of S. <br>
98 //!   Use the function Shape to access the result. <br>
99 //! Note: this framework can be reused to apply the same <br>
100 //! geometric transformation to other shapes: just specify <br>
101 //! them by calling the function Perform again. <br>
102   Standard_EXPORT     void Perform(const TopoDS_Shape& S,const Standard_Boolean Copy = Standard_False) ;
103   //! Returns the list  of shapes modified from the shape <br>
104 //!          <S>. <br>
105   Standard_EXPORT   virtual const TopTools_ListOfShape& Modified(const TopoDS_Shape& S) ;
106   //! Returns the modified shape corresponding to <S>. <br>
107   Standard_EXPORT   virtual const TopoDS_Shape& ModifiedShape(const TopoDS_Shape& S) const;
108
109
110
111
112
113 protected:
114
115
116
117
118
119 private:
120
121
122
123 gp_GTrsf myGTrsf;
124 Standard_Boolean myUseModif;
125 BRepBuilderAPI_Collect myHist;
126
127
128 };
129
130
131
132
133
134 // other Inline functions and methods (like "C++: function call" methods)
135
136
137 #endif