SHAPER 9.16.0
GeomAPI_Trsf.h
1// Copyright (C) 2014-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef GeomAPI_Trsf_H_
21#define GeomAPI_Trsf_H_
22
23#include <GeomAPI_Interface.h>
24#include <memory>
25
26class GeomAPI_Ax1;
27class GeomAPI_Ax2;
28class GeomAPI_Pnt;
29
36{
37 public:
39 GEOMAPI_EXPORT GeomAPI_Trsf();
41 GEOMAPI_EXPORT GeomAPI_Trsf(void* theTrsf);
42
47 GEOMAPI_EXPORT void setTranslation(const std::shared_ptr<GeomAPI_Ax1> theAxis,
48 const double theDistance);
49
55 GEOMAPI_EXPORT void setTranslation(const double theDx,
56 const double theDy,
57 const double theDz);
58
63 GEOMAPI_EXPORT void setTranslation(const std::shared_ptr<GeomAPI_Pnt> theStartPoint,
64 const std::shared_ptr<GeomAPI_Pnt> theEndPoint);
65
70 GEOMAPI_EXPORT void setRotation(const std::shared_ptr<GeomAPI_Ax1> theAxis,
71 const double theAngle);
72
78 GEOMAPI_EXPORT void setRotation(const std::shared_ptr<GeomAPI_Pnt> theCenterPoint,
79 const std::shared_ptr<GeomAPI_Pnt> theStartPoint,
80 const std::shared_ptr<GeomAPI_Pnt> theEndPoint);
81
85 GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr<GeomAPI_Pnt> thePoint);
86
90 GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr<GeomAPI_Ax1> theAxis);
91
95 GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr<GeomAPI_Ax2> thePlane);
96
101 GEOMAPI_EXPORT void setScale(const std::shared_ptr<GeomAPI_Pnt>& theCenter,
102 const double theScale);
103};
104
106typedef std::shared_ptr<GeomAPI_Trsf> GeomTrsfPtr;
107
108#endif
109
The class represents an axis in 3D space.
Definition: GeomAPI_Ax1.h:31
The class represents an axis in 3D space.
Definition: GeomAPI_Ax2.h:31
General base class for all interfaces in this package.
Definition: GeomAPI_Interface.h:38
3D point defined by three coordinates
Definition: GeomAPI_Pnt.h:38
Keep the transformation matrix coefficients.
Definition: GeomAPI_Trsf.h:36
GEOMAPI_EXPORT GeomAPI_Trsf()
Keeps no transformation, it may be set by setImpl.
Definition: GeomAPI_Trsf.cpp:35
GEOMAPI_EXPORT void setTranslation(const std::shared_ptr< GeomAPI_Ax1 > theAxis, const double theDistance)
Sets a translation transformation.
Definition: GeomAPI_Trsf.cpp:47
GEOMAPI_EXPORT void setScale(const std::shared_ptr< GeomAPI_Pnt > &theCenter, const double theScale)
Sets the scaling transformation.
Definition: GeomAPI_Trsf.cpp:111
GEOMAPI_EXPORT void setRotation(const std::shared_ptr< GeomAPI_Ax1 > theAxis, const double theAngle)
Sets a rotation transformation.
Definition: GeomAPI_Trsf.cpp:67
GEOMAPI_EXPORT void setSymmetry(const std::shared_ptr< GeomAPI_Pnt > thePoint)
Sets a point symmetry transformation.
Definition: GeomAPI_Trsf.cpp:93