Salome HOME
Merge from V4_1_0_maintainance branch (from tag mergeto_BR_QT4_Dev_08Jul08)
[modules/geom.git] / src / GEOMImpl / GEOMImpl_ITransformOperations.hxx
1 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
3 // 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either 
7 // version 2.1 of the License.
8 // 
9 // This library is distributed in the hope that it will be useful 
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 // Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public  
15 // License along with this library; if not, write to the Free Software 
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 //
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 //
20
21 #ifndef _GEOMImpl_ITransformOperations_HXX_
22 #define _GEOMImpl_ITransformOperations_HXX_
23
24 #include "Utils_SALOME_Exception.hxx"
25 #include "GEOM_IOperations.hxx"
26 #include "GEOM_Engine.hxx"
27 #include "GEOM_Object.hxx"
28 #include <TDocStd_Document.hxx>
29
30 class GEOMImpl_ITransformOperations : public GEOM_IOperations
31 {
32  public:
33   Standard_EXPORT GEOMImpl_ITransformOperations(GEOM_Engine* theEngine, int theDocID);
34   Standard_EXPORT ~GEOMImpl_ITransformOperations();
35
36   Standard_EXPORT Handle(GEOM_Object) TranslateTwoPoints (Handle(GEOM_Object) theObject,
37                                                           Handle(GEOM_Object) thePoint1,
38                                                           Handle(GEOM_Object) thePoint2);
39
40   Standard_EXPORT Handle(GEOM_Object) TranslateTwoPointsCopy (Handle(GEOM_Object) theObject,
41                                                               Handle(GEOM_Object) thePoint1,
42                                                               Handle(GEOM_Object) thePoint2);
43
44   Standard_EXPORT Handle(GEOM_Object) TranslateDXDYDZ (Handle(GEOM_Object) theObject,
45                                                        double theX, double theY,  double theZ);
46
47   Standard_EXPORT Handle(GEOM_Object) TranslateDXDYDZCopy (Handle(GEOM_Object) theObject,
48                                                            double theX, double theY,  double theZ);
49
50   Standard_EXPORT Handle(GEOM_Object) TranslateVector (Handle(GEOM_Object) theObject,
51                                                        Handle(GEOM_Object) theVector);
52
53   Standard_EXPORT Handle(GEOM_Object) TranslateVectorCopy (Handle(GEOM_Object) theObject,
54                                                            Handle(GEOM_Object) theVector);
55
56   Standard_EXPORT Handle(GEOM_Object) TranslateVectorDistance (Handle(GEOM_Object) theObject,
57                                                                Handle(GEOM_Object) theVector,
58                                                                double theDistance,
59                                                                bool theCopy);
60
61   Standard_EXPORT Handle(GEOM_Object) Translate1D (Handle(GEOM_Object) theObject,
62                                                    Handle(GEOM_Object) theVector,
63                                                    double theStep,
64                                                    Standard_Integer theNbTimes);
65
66   Standard_EXPORT Handle(GEOM_Object) Translate2D (Handle(GEOM_Object) theObject,
67                                                    Handle(GEOM_Object) theVector,
68                                                    double theStep1,
69                                                    Standard_Integer theNbTimes1,
70                                                    Handle(GEOM_Object) theVector2,
71                                                    double theStep2,
72                                                    Standard_Integer theNbTimes2);
73
74   Standard_EXPORT Handle(GEOM_Object) MirrorPlane (Handle(GEOM_Object) theObject,
75                                                    Handle(GEOM_Object) thePlane);
76
77   Standard_EXPORT Handle(GEOM_Object) MirrorPlaneCopy (Handle(GEOM_Object) theObject,
78                                                        Handle(GEOM_Object) thePlane);
79
80   Standard_EXPORT Handle(GEOM_Object) MirrorAxis (Handle(GEOM_Object) theObject,
81                                                   Handle(GEOM_Object) theAxis);
82
83   Standard_EXPORT Handle(GEOM_Object) MirrorAxisCopy (Handle(GEOM_Object) theObject,
84                                                       Handle(GEOM_Object) theAxis);
85
86   Standard_EXPORT Handle(GEOM_Object) MirrorPoint (Handle(GEOM_Object) theObject,
87                                                    Handle(GEOM_Object) thePoint);
88
89   Standard_EXPORT Handle(GEOM_Object) MirrorPointCopy (Handle(GEOM_Object) theObject,
90                                                        Handle(GEOM_Object) thePoint);
91
92   Standard_EXPORT Handle(GEOM_Object) OffsetShape (Handle(GEOM_Object) theObject,
93                                                    double theOffset);
94
95   Standard_EXPORT Handle(GEOM_Object) OffsetShapeCopy (Handle(GEOM_Object) theObject,
96                                                        double theOffset);
97
98   Standard_EXPORT Handle(GEOM_Object) ScaleShape (Handle(GEOM_Object) theObject,
99                                                   Handle(GEOM_Object) thePoint,
100                                                   double theFactor);
101
102   Standard_EXPORT Handle(GEOM_Object) ScaleShapeCopy (Handle(GEOM_Object) theObject,
103                                                       Handle(GEOM_Object) thePoint,
104                                                       double theFactor);
105
106   Standard_EXPORT Handle(GEOM_Object) ScaleShapeAlongAxes (Handle(GEOM_Object) theObject,
107                                                            Handle(GEOM_Object) thePoint,
108                                                            double theFactorX,
109                                                            double theFactorY,
110                                                            double theFactorZ,
111                                                            bool doCopy);
112
113   Standard_EXPORT Handle(GEOM_Object) PositionShape (Handle(GEOM_Object) theObject,
114                                                      Handle(GEOM_Object) theStartLCS,
115                                                      Handle(GEOM_Object) theEndLCS);
116
117   Standard_EXPORT Handle(GEOM_Object) PositionShapeCopy (Handle(GEOM_Object) theObject,
118                                                          Handle(GEOM_Object) theStartLCS,
119                                                          Handle(GEOM_Object) theEndLCS);
120
121   Standard_EXPORT Handle(GEOM_Object) Rotate (Handle(GEOM_Object) theObject,
122                                               Handle(GEOM_Object) theAxis,
123                                               double theAngle);
124
125   Standard_EXPORT Handle(GEOM_Object) RotateCopy (Handle(GEOM_Object) theObject,
126                                                   Handle(GEOM_Object) theAxis,
127                                                   double theAngle);
128
129   Standard_EXPORT Handle(GEOM_Object) Rotate1D (Handle(GEOM_Object) theObject,
130                                                 Handle(GEOM_Object) theAxis,
131                                                 Standard_Integer theNbTimes);
132
133   Standard_EXPORT Handle(GEOM_Object) Rotate2D (Handle(GEOM_Object) theObject,
134                                                 Handle(GEOM_Object) theAxis,
135                                                 double theAngle,
136                                                 Standard_Integer theNbTimes1,
137                                                 double theStep,
138                                                 Standard_Integer theNbTimes2);
139
140   Standard_EXPORT Handle(GEOM_Object) RotateThreePoints (Handle(GEOM_Object) theObject,
141                                                          Handle(GEOM_Object) theCentPoint,
142                                                          Handle(GEOM_Object) thePoint1,
143                                                          Handle(GEOM_Object) thePoint2);
144
145   Standard_EXPORT Handle(GEOM_Object) RotateThreePointsCopy (Handle(GEOM_Object) theObject,
146                                                              Handle(GEOM_Object) theCentPoint,
147                                                              Handle(GEOM_Object) thePoint1,
148                                                              Handle(GEOM_Object) thePoint2);
149
150 };
151
152 #endif