Salome HOME
PAL 11107 - Make a rotation given an object and 3 points
[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) Translate1D (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theVector, double theStep, Standard_Integer theNbTimes);
54
55   Standard_EXPORT Handle(GEOM_Object) Translate2D (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theVector, double theStep1, Standard_Integer theNbTimes1,
56                                    Handle(GEOM_Object) theVector2, double theStep2, Standard_Integer theNbTimes2);
57
58   Standard_EXPORT Handle(GEOM_Object) MirrorPlane (Handle(GEOM_Object) theObject,
59                                    Handle(GEOM_Object) thePlane);
60
61   Standard_EXPORT Handle(GEOM_Object) MirrorPlaneCopy (Handle(GEOM_Object) theObject,
62                                        Handle(GEOM_Object) thePlane);
63
64   Standard_EXPORT Handle(GEOM_Object) MirrorAxis (Handle(GEOM_Object) theObject,
65                                   Handle(GEOM_Object) theAxis);
66
67   Standard_EXPORT Handle(GEOM_Object) MirrorAxisCopy (Handle(GEOM_Object) theObject,
68                                       Handle(GEOM_Object) theAxis);
69
70   Standard_EXPORT Handle(GEOM_Object) MirrorPoint (Handle(GEOM_Object) theObject,
71                                    Handle(GEOM_Object) thePoint);
72
73   Standard_EXPORT Handle(GEOM_Object) MirrorPointCopy (Handle(GEOM_Object) theObject,
74                                        Handle(GEOM_Object) thePoint);
75
76   Standard_EXPORT Handle(GEOM_Object) OffsetShape (Handle(GEOM_Object) theObject,
77                                    double theOffset);
78
79   Standard_EXPORT Handle(GEOM_Object) OffsetShapeCopy (Handle(GEOM_Object) theObject,
80                                        double theOffset);
81
82   Standard_EXPORT Handle(GEOM_Object) ScaleShape (Handle(GEOM_Object) theObject,
83                                   Handle(GEOM_Object) thePoint,
84                                   double theFactor);
85
86   Standard_EXPORT Handle(GEOM_Object) ScaleShapeCopy (Handle(GEOM_Object) theObject,
87                                       Handle(GEOM_Object) thePoint,
88                                       double theFactor);
89
90   Standard_EXPORT Handle(GEOM_Object) PositionShape (Handle(GEOM_Object) theObject,
91                                      Handle(GEOM_Object) theStartLCS,
92                                      Handle(GEOM_Object) theEndLCS);
93
94   Standard_EXPORT Handle(GEOM_Object) PositionShapeCopy (Handle(GEOM_Object) theObject,
95                                          Handle(GEOM_Object) theStartLCS,
96                                          Handle(GEOM_Object) theEndLCS);
97
98   Standard_EXPORT Handle(GEOM_Object) Rotate (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theAxis, double theAngle);
99
100   Standard_EXPORT Handle(GEOM_Object) RotateCopy (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theAxis, double theAngle);
101
102   Standard_EXPORT Handle(GEOM_Object) Rotate1D (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theAxis, Standard_Integer theNbTimes);
103   
104   Standard_EXPORT Handle(GEOM_Object) Rotate2D (Handle(GEOM_Object) theObject, 
105                                 Handle(GEOM_Object) theAxis, 
106                                 double theAngle, 
107                                 Standard_Integer theNbTimes1,
108                                 double theStep, 
109                                 Standard_Integer theNbTimes2);
110
111   Standard_EXPORT Handle(GEOM_Object) RotateThreePoints (Handle(GEOM_Object) theObject,
112                                                          Handle(GEOM_Object) theCentPoint, 
113                                                          Handle(GEOM_Object) thePoint1,
114                                                          Handle(GEOM_Object) thePoint2);
115
116   Standard_EXPORT Handle(GEOM_Object) RotateThreePointsCopy (Handle(GEOM_Object) theObject, 
117                                                          Handle(GEOM_Object) theCentPoint, 
118                                                          Handle(GEOM_Object) thePoint1,
119                                                          Handle(GEOM_Object) thePoint2);
120
121 };
122
123 #endif