Salome HOME
NPAL 12483 Translate an object given a vector and a length
[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  public:
32   Standard_EXPORT GEOMImpl_ITransformOperations(GEOM_Engine* theEngine, int theDocID);
33   Standard_EXPORT ~GEOMImpl_ITransformOperations();
34
35   Standard_EXPORT Handle(GEOM_Object) TranslateTwoPoints (Handle(GEOM_Object) theObject,
36                                           Handle(GEOM_Object) thePoint1,
37                                           Handle(GEOM_Object) thePoint2);
38
39   Standard_EXPORT Handle(GEOM_Object) TranslateTwoPointsCopy (Handle(GEOM_Object) theObject,
40                                               Handle(GEOM_Object) thePoint1,
41                                               Handle(GEOM_Object) thePoint2);
42
43   Standard_EXPORT Handle(GEOM_Object) TranslateDXDYDZ (Handle(GEOM_Object) theObject, double theX, double theY,  double theZ);
44
45   Standard_EXPORT Handle(GEOM_Object) TranslateDXDYDZCopy (Handle(GEOM_Object) theObject, double theX, double theY,  double theZ);
46
47   Standard_EXPORT Handle(GEOM_Object) TranslateVector (Handle(GEOM_Object) theObject,
48                                        Handle(GEOM_Object) theVector);
49
50   Standard_EXPORT Handle(GEOM_Object) TranslateVectorCopy (Handle(GEOM_Object) theObject,
51                                            Handle(GEOM_Object) theVector);
52
53   Standard_EXPORT Handle(GEOM_Object) TranslateVectorDistance (Handle(GEOM_Object) theObject,
54                                       Handle(GEOM_Object) theVector, double theDistance, bool theCopy);
55
56   Standard_EXPORT Handle(GEOM_Object) Translate1D (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theVector, double theStep, Standard_Integer theNbTimes);
57
58   Standard_EXPORT Handle(GEOM_Object) Translate2D (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theVector, double theStep1, Standard_Integer theNbTimes1,
59                                    Handle(GEOM_Object) theVector2, double theStep2, Standard_Integer theNbTimes2);
60
61   Standard_EXPORT Handle(GEOM_Object) MirrorPlane (Handle(GEOM_Object) theObject,
62                                    Handle(GEOM_Object) thePlane);
63
64   Standard_EXPORT Handle(GEOM_Object) MirrorPlaneCopy (Handle(GEOM_Object) theObject,
65                                        Handle(GEOM_Object) thePlane);
66
67   Standard_EXPORT Handle(GEOM_Object) MirrorAxis (Handle(GEOM_Object) theObject,
68                                   Handle(GEOM_Object) theAxis);
69
70   Standard_EXPORT Handle(GEOM_Object) MirrorAxisCopy (Handle(GEOM_Object) theObject,
71                                       Handle(GEOM_Object) theAxis);
72
73   Standard_EXPORT Handle(GEOM_Object) MirrorPoint (Handle(GEOM_Object) theObject,
74                                    Handle(GEOM_Object) thePoint);
75
76   Standard_EXPORT Handle(GEOM_Object) MirrorPointCopy (Handle(GEOM_Object) theObject,
77                                        Handle(GEOM_Object) thePoint);
78
79   Standard_EXPORT Handle(GEOM_Object) OffsetShape (Handle(GEOM_Object) theObject,
80                                    double theOffset);
81
82   Standard_EXPORT Handle(GEOM_Object) OffsetShapeCopy (Handle(GEOM_Object) theObject,
83                                        double theOffset);
84
85   Standard_EXPORT Handle(GEOM_Object) ScaleShape (Handle(GEOM_Object) theObject,
86                                   Handle(GEOM_Object) thePoint,
87                                   double theFactor);
88
89   Standard_EXPORT Handle(GEOM_Object) ScaleShapeCopy (Handle(GEOM_Object) theObject,
90                                       Handle(GEOM_Object) thePoint,
91                                       double theFactor);
92
93   Standard_EXPORT Handle(GEOM_Object) PositionShape (Handle(GEOM_Object) theObject,
94                                      Handle(GEOM_Object) theStartLCS,
95                                      Handle(GEOM_Object) theEndLCS);
96
97   Standard_EXPORT Handle(GEOM_Object) PositionShapeCopy (Handle(GEOM_Object) theObject,
98                                          Handle(GEOM_Object) theStartLCS,
99                                          Handle(GEOM_Object) theEndLCS);
100
101   Standard_EXPORT Handle(GEOM_Object) Rotate (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theAxis, double theAngle);
102
103   Standard_EXPORT Handle(GEOM_Object) RotateCopy (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theAxis, double theAngle);
104
105   Standard_EXPORT Handle(GEOM_Object) Rotate1D (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theAxis, Standard_Integer theNbTimes);
106   
107   Standard_EXPORT Handle(GEOM_Object) Rotate2D (Handle(GEOM_Object) theObject, 
108                                 Handle(GEOM_Object) theAxis, 
109                                 double theAngle, 
110                                 Standard_Integer theNbTimes1,
111                                 double theStep, 
112                                 Standard_Integer theNbTimes2);
113
114   Standard_EXPORT Handle(GEOM_Object) RotateThreePoints (Handle(GEOM_Object) theObject,
115                                                          Handle(GEOM_Object) theCentPoint, 
116                                                          Handle(GEOM_Object) thePoint1,
117                                                          Handle(GEOM_Object) thePoint2);
118
119   Standard_EXPORT Handle(GEOM_Object) RotateThreePointsCopy (Handle(GEOM_Object) theObject, 
120                                                          Handle(GEOM_Object) theCentPoint, 
121                                                          Handle(GEOM_Object) thePoint1,
122                                                          Handle(GEOM_Object) thePoint2);
123
124 };
125
126 #endif