Salome HOME
Issue #2059 point in sketch is created not on selected line of external sketchPlane...
[modules/shaper.git] / src / GeomAPI / GeomAPI_Trsf.h
index ebb7871f9e55121a679c80da20e55b5dadfb194f..822afde1d6a25402570c61bd4f5050d8c16cba52 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_
 #include <GeomAPI_Interface.h>
 #include <memory>
 
+class GeomAPI_Ax1;
+class GeomAPI_Ax2;
+class GeomAPI_Pnt;
+
 /**\class GeomAPI_Trsf
  * \ingroup DataModel
  * \brief Keep the transformation matrix coefficients
@@ -22,6 +28,60 @@ 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);
+
+  /** \brief Sets a rotation transformation using three points.
+   *  \param[in] theCenterPoint  rotation center.
+   *  \param[in] theStartPoint   start rotation point.
+   *  \param[in] theEndPoint     end rotation point.
+   */
+  GEOMAPI_EXPORT void setRotation(const std::shared_ptr<GeomAPI_Pnt> theCenterPoint,
+                                  const std::shared_ptr<GeomAPI_Pnt> theStartPoint,
+                                  const std::shared_ptr<GeomAPI_Pnt> theEndPoint);
+
+  /** \brief Sets a point symmetry transformation.
+   *  \param[in] thePoint symmetry point.
+   */
+  GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr<GeomAPI_Pnt> thePoint);
+
+  /** \brief Sets an axis symmetry transformation.
+   *  \param[in] theAxis symmetry axis.
+   */
+  GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr<GeomAPI_Ax1> theAxis);
+
+  /** \brief Sets a plane symmetry transformation.
+   *  \param[in] thePlane symmetry plane.
+   */
+  GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr<GeomAPI_Ax2> thePlane);
 };
 
 #endif