1 // Copyright (C) 2014-2016 CEA/DEN, EDF R&D
3 // File: GeomAPI_XYZ.hxx
4 // Created: 13 July 2015
5 // Author: Mikhail PONIKAROV
7 // Modified by Clarisse Genrault (CEA) : 17 Nov 2016
9 #ifndef GeomAPI_Trsf_H_
10 #define GeomAPI_Trsf_H_
12 #include <GeomAPI_Interface.h>
19 /**\class GeomAPI_Trsf
21 * \brief Keep the transformation matrix coefficients
24 class GeomAPI_Trsf : public GeomAPI_Interface
27 /// Keeps no transformation, it may be set by setImpl
28 GEOMAPI_EXPORT GeomAPI_Trsf();
29 /// Takes the pointer to existing transformation
30 GEOMAPI_EXPORT GeomAPI_Trsf(void* theTrsf);
32 /** \brief Sets a translation transformation.
33 * \param[in] theAxis translation axis.
34 * \param[in] theDistance translation distance.
36 GEOMAPI_EXPORT void setTranslation(const std::shared_ptr<GeomAPI_Ax1> theAxis,
37 const double theDistance);
39 /** \brief Sets a translation transformation using three coordinates.
40 * \param[in] theDx x coordinate of the translation vector
41 * \param[in] theDy y coordinate of the translation vector
42 * \param[in] theDz z coordinate of the translation vector
44 GEOMAPI_EXPORT void setTranslation(const double theDx,
48 /** \brief Sets a translation transformation using two points.
49 * \param[in] theStartPoint Start point of the translation vector.
50 * \param[in] theEndPoint End point of the translation vector.
52 GEOMAPI_EXPORT void setTranslation(const std::shared_ptr<GeomAPI_Pnt> theStartPoint,
53 const std::shared_ptr<GeomAPI_Pnt> theEndPoint);
55 /** \brief Sets a rotation transformation.
56 * \param[in] theAxis rotation axis.
57 * \param[in] theAngle rotation angle(in degree).
59 GEOMAPI_EXPORT void setRotation(const std::shared_ptr<GeomAPI_Ax1> theAxis,
60 const double theAngle);
62 /** \brief Sets a point symmetry transformation.
63 * \param[in] thePoint symmetry point.
65 GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr<GeomAPI_Pnt> thePoint);
67 /** \brief Sets an axis symmetry transformation.
68 * \param[in] theAxis symmetry axis.
70 GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr<GeomAPI_Ax1> theAxis);
72 /** \brief Sets a plane symmetry transformation.
73 * \param[in] thePlane symmetry plane.
75 GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr<GeomAPI_Ax2> thePlane);