15 #ifndef __IPSDKMATH_AFFINE3D_H__ 16 #define __IPSDKMATH_AFFINE3D_H__ 20 #pragma warning (push) 21 #pragma warning (disable : 4251) 23 #include <IPSDKMath/Geometry/3d/Transform/BaseLinearGeometricTransform3d.h> 62 _axx(1), _axy(0), _axz(0), _ayx(0), _ayy(1), _ayz(0), _azx(0), _azy(0), _azz(1), _tx(0), _ty(0), _tz(0)
69 _axx(axx), _axy(axy), _axz(axz), _ayx(ayx), _ayy(ayy), _ayz(ayz), _azx(azx), _azy(azy), _azz(azz), _tx(tx), _ty(ty), _tz(tz)
84 const ipReal64 xTmp = axx*x + axy*y + axz*z + tx;
85 const ipReal64 yTmp = ayx*x + ayy*y + ayz*z + ty;
86 const ipReal64 zTmp = azx*x + azy*y + azz*z + tz;
99 transform(0, 0) = axx; transform(0, 1) = axy; transform(0, 2) = axz; transform(0, 3) = tx;
100 transform(1, 0) = ayx; transform(1, 1) = ayy; transform(1, 2) = ayz; transform(1, 3) = ty;
101 transform(2, 0) = azx; transform(2, 1) = azy; transform(2, 2) = azz; transform(2, 3) = tz;
102 transform(3, 0) = 0; transform(3, 1) = 0; transform(3, 2) = 0; transform(3, 3) = 1;
129 getInvParams(invAxx, invAxy, invAxz,
130 invAyx, invAyy, invAyz,
131 invAzx, invAzy, invAzz,
132 invTx, invTy, invTz);
134 return getHomogenousMatrix(invAxx, invAxy, invAxz,
135 invAyx, invAyy, invAyz,
136 invAzx, invAzy, invAzz,
137 invTx, invTy, invTz);
149 static Vector getIdentityParams();
157 _axx = axx; _axy = axy; _axz = axz;
158 _ayx = ayx; _ayy = ayy; _ayz = ayz;
159 _azx = azx; _azy = azy; _azz = azz;
160 _tx = tx; _ty = ty; _tz = tz;
175 Matrix4d getHomogenousMatrix()
const;
181 Matrix4d getInvHomogenousMatrix()
const;
184 Vector getInvParams()
const;
227 #pragma warning (pop) 229 #endif // __IPSDKMATH_AFFINE3D_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
static Vector getIdentityParams()
retrieve identity parameters for transformation
Base class for linear geometric transformation 3d management.
Definition: BaseLinearGeometricTransform3d.h:27
void setIdentity()
set transformation parameters to identity
Definition: Affine3d.h:229
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
void setParams(const ipReal64 axx, const ipReal64 axy, const ipReal64 axz, const ipReal64 ayx, const ipReal64 ayy, const ipReal64 ayz, const ipReal64 azx, const ipReal64 azy, const ipReal64 azz, const ipReal64 tx, const ipReal64 ty, const ipReal64 tz)
select parameters associated to transformation
Definition: Affine3d.h:166
eTransformParams
Definition: Affine3d.h:39
IPSDKGEOMETRY_API bool apply(const BaseGeometryTransform2d &transform, BaseGeometryEntity2d &entity)
function allowing to apply in situ a given transformation on an entity
#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
Transformation class allowing to manage 3d affine transformations.
Definition: Affine3d.h:32
#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
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26