15 #ifndef __IPSDKMATH_SCALE2D_H__ 16 #define __IPSDKMATH_SCALE2D_H__ 20 #pragma warning (push) 21 #pragma warning (disable : 4251) 23 #include <IPSDKMath/Geometry/2d/Transform/BaseLinearGeometricTransform2d.h> 63 static void transform(
const ipReal64 scale,
76 transform(0, 0) = scale; transform(0, 1) = 0; transform(0, 2) = 0;
77 transform(1, 0) = 0; transform(1, 1) = scale; transform(1, 2) = 0;
78 transform(2, 0) = 0; transform(2, 1) = 0; transform(2, 2) = 1;
90 return getHomogenousMatrix(invScale);
94 static void getInvParams(
ipReal64& scale)
103 static Vector getIdentityParams();
106 void setParams(
const ipReal64 scale)
114 void setParams(
const Vector& params);
123 Matrix3d getHomogenousMatrix()
const;
134 Matrix3d getInvHomogenousMatrix()
const;
137 Vector getInvParams()
const;
167 #pragma warning (pop) 169 #endif // __IPSDKMATH_SCALE2D_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
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
void setParams(const ipReal64 scale)
select parameters associated to transformation
Definition: Scale2d.h:109
boost::numeric::ublas::vector< ipReal64 > Vector
vector type associated to library
Definition: LinearAlgebraTypes.h:36
void setIdentity()
set transformation parameters to identity
Definition: Scale2d.h:158
static Vector getIdentityParams()
retrieve identity parameters for transformation
#define IPSDKMATH_API
Import/Export macro for library IPSDKMath.
Definition: IPSDKMathExports.h:27
boost::numeric::ublas::bounded_matrix< ipReal64, 3, 3 > Matrix3d
3d matrix (3x3) type associated to library
Definition: LinearAlgebraTypes.h:54
eTransformParams
Definition: Scale2d.h:39
Transformation class allowing to manage 2d scale transformations.
ipReal64 _scale
transformation scale
Definition: Scale2d.h:145
ipReal64 getScale() const
retrieve parameters associated to transformation
Definition: Scale2d.h:152
Base class for linear geometric transformation 2d management.
Definition: BaseLinearGeometricTransform2d.h:27
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
#define IPSDK_DECLARE_TRANSFORM2D(className)
macro allowing to declare a geometric transformation 2d
Definition: Transform2dHdrMacros.h:55