15 #ifndef __IPSDKMATH_ROTATION3D_H__ 16 #define __IPSDKMATH_ROTATION3D_H__ 20 #pragma warning (push) 21 #pragma warning (disable : 4251) 23 #include <IPSDKMath/Geometry/3d/Transform/BaseLinearGeometricTransform3d.h> 57 setParams(chi, beta, alpha);
69 transform(std::cos(chi), std::sin(chi),
70 std::cos(beta), std::sin(beta),
71 std::cos(alpha), std::sin(alpha),
79 rotate3dInSitu(cosChi, sinChi, cosBeta, sinBeta, cosAlpha, sinAlpha, x, y, z);
89 return getHomogenousMatrix(std::cos(chi), std::sin(chi),
90 std::cos(beta), std::sin(beta),
91 std::cos(alpha), std::sin(alpha));
99 transform(0, 0), transform(0, 1), transform(0, 2),
100 transform(1, 0), transform(1, 1), transform(1, 2),
101 transform(2, 0), transform(2, 1), transform(2, 2));
105 transform(3, 0) = 0; transform(3, 1) = 0; transform(3, 2) = 0; transform(3, 3) = 1;
118 getInvParams(invChi, invBeta, invAlpha);
120 return getHomogenousMatrix(invChi, invBeta, invAlpha);
127 static Vector getIdentityParams();
133 _cosChi = std::cos(_chi);
134 _sinChi = std::sin(_chi);
136 _cosBeta = std::cos(_beta);
137 _sinBeta = std::sin(_beta);
139 _cosAlpha = std::cos(_alpha);
140 _sinAlpha = std::sin(_alpha);
146 void setParams(
const Vector& params);
155 Matrix4d getHomogenousMatrix()
const;
168 Matrix4d getInvHomogenousMatrix()
const;
171 Vector getInvParams()
const;
227 #pragma warning (pop) 229 #endif // __IPSDKMATH_ROTATION3D_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
IPSDK_FORCEINLINE void eulerToMatrix(const T cosChi, const T sinChi, const T cosBeta, const T sinBeta, const T cosAlpha, const T sinAlpha, T &rxx, T &rxy, T &rxz, T &ryx, T &ryy, T &ryz, T &rzx, T &rzy, T &rzz)
Convertion from euler angles to rotation matrix.
Definition: Angles3d.h:99
void setParams(const ipReal64 chi, const ipReal64 beta, const ipReal64 alpha)
select parameters associated to transformation
Definition: Rotation3d.h:135
Base class for linear geometric transformation 3d management.
Definition: BaseLinearGeometricTransform3d.h:27
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
IPSDKGEOMETRY_API bool apply(const BaseGeometryTransform2d &transform, BaseGeometryEntity2d &entity)
function allowing to apply in situ a given transformation on an entity
Transformation class allowing to manage 3d rotation transformations.
Definition: Rotation3d.h:33
#define IPSDK_DECLARE_TRANSFORM3D(className)
macro allowing to declare a geometric transformation 3d
Definition: Transform3dHdrMacros.h:54
boost::numeric::ublas::vector< ipReal64 > Vector
vector type associated to library
Definition: LinearAlgebraTypes.h:36
#define IPSDKMATH_API
Import/Export macro for library IPSDKMath.
Definition: IPSDKMathExports.h:27
boost::numeric::ublas::bounded_matrix< ipReal64, 4, 4 > Matrix4d
4d matrix (4x4) type associated to library
Definition: LinearAlgebraTypes.h:57
ipReal64 _beta
angles of rotation in radians
Definition: Rotation3d.h:183
Utility functions used to handle angles 3d.
ipReal64 _alpha
angles of rotation in radians
Definition: Rotation3d.h:184
void setIdentity()
set transformation parameters to identity
Definition: Rotation3d.h:220
ipReal64 _chi
angles of rotation in radians
Definition: Rotation3d.h:182
static Vector getIdentityParams()
retrieve identity parameters for transformation
ipReal64 getBeta() const
retrieve parameters associated to transformation
Definition: Rotation3d.h:208
IPSDK_FORCEINLINE void rotate3dInSitu(const ipReal64 rxx, const ipReal64 rxy, const ipReal64 rxz, const ipReal64 ryx, const ipReal64 ryy, const ipReal64 ryz, const ipReal64 rzx, const ipReal64 rzy, const ipReal64 rzz, T &x, T &y, T &z)
rotation of a point using a rotation angle (rotation around origin)
Definition: Angles3d.h:227
eTransformParams
Definition: Rotation3d.h:40
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
ipReal64 getAlpha() const
retrieve parameters associated to transformation
Definition: Rotation3d.h:214
ipReal64 getChi() const
retrieve parameters associated to transformation
Definition: Rotation3d.h:202