Salome HOME
Fix for the issue #1928
[modules/shaper.git] / src / GeomAPI / GeomAPI_Trsf.h
index ebb7871f9e55121a679c80da20e55b5dadfb194f..ed97f4bebe32880bb307ba33e64cb9d87d86169d 100644 (file)
@@ -1,8 +1,10 @@
-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+// Copyright (C) 2014-2016 CEA/DEN, EDF R&D
 
 // File:        GeomAPI_XYZ.hxx
 // Created:     13 July 2015
 // Author:      Mikhail PONIKAROV
+//
+// Modified by Clarisse Genrault (CEA) : 17 Nov 2016
 
 #ifndef GeomAPI_Trsf_H_
 #define GeomAPI_Trsf_H_
@@ -10,6 +12,9 @@
 #include <GeomAPI_Interface.h>
 #include <memory>
 
+class GeomAPI_Ax1;
+class GeomAPI_Pnt;
+
 /**\class GeomAPI_Trsf
  * \ingroup DataModel
  * \brief Keep the transformation matrix coefficients
@@ -22,6 +27,36 @@ class GeomAPI_Trsf : public GeomAPI_Interface
   GEOMAPI_EXPORT GeomAPI_Trsf();
   /// Takes the pointer to existing transformation
   GEOMAPI_EXPORT GeomAPI_Trsf(void* theTrsf);
+
+  /** \brief Sets a translation transformation.
+   *  \param[in] theAxis     translation axis.
+   *  \param[in] theDistance translation distance.
+   */
+  GEOMAPI_EXPORT void setTranslation(const std::shared_ptr<GeomAPI_Ax1> theAxis,
+                                     const double theDistance);
+
+  /** \brief Sets a translation transformation using three coordinates.
+   *  \param[in] theDx x coordinate of the translation vector
+   *  \param[in] theDy y coordinate of the translation vector
+   *  \param[in] theDz z coordinate of the translation vector
+   */
+  GEOMAPI_EXPORT void setTranslation(const double theDx,
+                                     const double theDy,
+                                     const double theDz);
+
+  /** \brief Sets a translation transformation using two points.
+   *  \param[in] theStartPoint  Start point of the translation vector.
+   *  \param[in] theEndPoint    End point of the translation vector.
+   */
+  GEOMAPI_EXPORT void setTranslation(const std::shared_ptr<GeomAPI_Pnt> theStartPoint,
+                                     const std::shared_ptr<GeomAPI_Pnt> theEndPoint);
+
+  /** \brief Sets a rotation transformation.
+   *  \param[in] theAxis  rotation axis.
+   *  \param[in] theAngle rotation angle(in degree).
+   */
+  GEOMAPI_EXPORT void setRotation(const std::shared_ptr<GeomAPI_Ax1> theAxis,
+                                  const double theAngle);
 };
 
 #endif