Salome HOME
Fix Warning in GeomAPI_Trsf
[modules/shaper.git] / src / GeomAPI / GeomAPI_Trsf.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        GeomAPI_XYZ.hxx
4 // Created:     13 July 2015
5 // Author:      Mikhail PONIKAROV
6
7 #ifndef GeomAPI_Trsf_H_
8 #define GeomAPI_Trsf_H_
9
10 #include <GeomAPI_Interface.h>
11 #include <memory>
12
13 class GeomAPI_Ax1;
14
15 /**\class GeomAPI_Trsf
16  * \ingroup DataModel
17  * \brief Keep the transformation matrix coefficients
18  */
19
20 class GeomAPI_Trsf : public GeomAPI_Interface
21 {
22  public:
23   /// Keeps no transformation, it may be set by setImpl
24   GEOMAPI_EXPORT GeomAPI_Trsf();
25
26   /// Constructor by the impl pointer (used for internal needs)
27   template<class T> explicit GeomAPI_Trsf(T* theTrsf)
28   : GeomAPI_Interface(theTrsf)
29   {
30   }
31
32   /// Takes the pointer to existing transformation
33   GEOMAPI_EXPORT GeomAPI_Trsf(void* theTrsf);
34
35   /** \brief Sets a translation transformation.
36    *  \param[in] theAxis     translation axis.
37    *  \param[in] theDistance translation distance.
38    */
39   GEOMAPI_EXPORT void setTranslation(const std::shared_ptr<GeomAPI_Ax1> theAxis,
40                                      const double theDistance);
41
42   /** \brief Sets a rotation transformation.
43    *  \param[in] theAxis  rotation axis.
44    *  \param[in] theAngle rotation angle(in degree).
45    */
46   GEOMAPI_EXPORT void setRotation(const std::shared_ptr<GeomAPI_Ax1> theAxis,
47                                   const double theAngle);
48 };
49
50 #endif
51