16 #ifndef __IPSDKMATH_ANISOTROPICSCALE3D_H__ 17 #define __IPSDKMATH_ANISOTROPICSCALE3D_H__ 21 #pragma warning (push) 22 #pragma warning (disable : 4251) 24 #include <IPSDKMath/Geometry/3d/Transform/BaseLinearGeometricTransform3d.h> 57 setParams(scaleX, scaleY, scaleZ);
66 static void transform(
const ipReal64 scaleX,
84 transform(0, 0) = scaleX; transform(0, 1) = 0; transform(0, 2) = 0; transform(0, 3) = 0;
85 transform(1, 0) = 0; transform(1, 1) = scaleY; transform(1, 2) = 0; transform(1, 3) = 0;
86 transform(2, 0) = 0; transform(2, 1) = 0; transform(2, 2) = scaleZ; transform(2, 3) = 0;
87 transform(3, 0) = 0; transform(3, 1) = 0; transform(3, 2) = 0; transform(3, 3) = 1;
100 invScaleX = 1 / scaleX;
103 invScaleY = 1 / scaleY;
106 invScaleZ = 1 / scaleZ;
107 return getHomogenousMatrix(invScaleX, invScaleY, invScaleZ);
128 static Vector getIdentityParams();
131 void setParams(
const ipReal64 scaleX,
143 void setParams(
const Vector& params);
152 Matrix4d getHomogenousMatrix()
const;
165 Matrix4d getInvHomogenousMatrix()
const;
168 Vector getInvParams()
const;
216 #pragma warning (pop) 218 #endif // __IPSDKMATH_ANISOTROPICSCALE3D_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
void setIdentity()
set transformation parameters to identity
Definition: AnisotropicScale3d.h:209
void setParams(const ipReal64 scaleX, const ipReal64 scaleY, const ipReal64 scaleZ)
select parameters associated to transformation
Definition: AnisotropicScale3d.h:136
ipReal64 _scaleX
transformation scale along x axis
Definition: AnisotropicScale3d.h:178
Base class for linear geometric transformation 3d management.
Definition: BaseLinearGeometricTransform3d.h:27
eTransformParams
Definition: AnisotropicScale3d.h:40
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
#define IPSDK_DECLARE_TRANSFORM3D(className)
macro allowing to declare a geometric transformation 3d
Definition: Transform3dHdrMacros.h:54
ipReal64 getScaleY() const
retrieve parameters associated to transformation
Definition: AnisotropicScale3d.h:197
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 getScaleZ() const
retrieve parameters associated to transformation
Definition: AnisotropicScale3d.h:203
Definition: AnisotropicScale3d.h:33
ipReal64 _scaleY
transformation scale along y axis
Definition: AnisotropicScale3d.h:181
Transformation class allowing to manage 3d anisotropic scale transformations.
static Vector getIdentityParams()
retrieve identity parameters for transformation
ipReal64 getScaleX() const
retrieve parameters associated to transformation
Definition: AnisotropicScale3d.h:191
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26