IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
ipsdk::math::transform::Affine3d Class Reference

Transformation class allowing to manage 3d affine transformations. More...

#include <Affine3d.h>

Inheritance diagram for ipsdk::math::transform::Affine3d:
ipsdk::math::transform::BaseLinearGeometricTransform3d ipsdk::math::transform::BaseGeometricTransform3d

Public Types

enum  eTransformParams {
  eTP_Axx, eTP_Axy, eTP_Axz, eTP_Ayx,
  eTP_Ayy, eTP_Ayz, eTP_Azx, eTP_Azy,
  eTP_Azz, eTP_Tx, eTP_Ty, eTP_Tz
}
 

Public Member Functions

 IPSDK_DECLARE_TRANSFORM3D (Affine3d)
 
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
 
void setParams (const Vector &params)
 select parameters associated to transformation More...
 
void setIdentity ()
 set transformation parameters to identity
 
void apply (ipReal64 &x, ipReal64 &y, ipReal64 &z) const
 apply transformation to a given point
 
Matrix4d getHomogenousMatrix () const
 retrieve homogeneous matrix associated to transformation
 
Vector getParams () const
 retrieve parameters associated to transformation
 
Matrix4d getInvHomogenousMatrix () const
 retrieve invert of homogeneous matrix associated to transformation
 
Vector getInvParams () const
 retrieve invert parameters associated to transformation
 
Constructors and destructor
 Affine3d ()
 
 Affine3d (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)
 
 ~Affine3d ()
 
- Public Member Functions inherited from ipsdk::math::transform::BaseLinearGeometricTransform3d
bool isLinear () const
 retrieve flag indicating whether geometric transform is linear
 
 BaseLinearGeometricTransform3d ()
 
virtual ~BaseLinearGeometricTransform3d ()=0
 
- Public Member Functions inherited from ipsdk::math::transform::BaseGeometricTransform3d
virtual eGeometricTransform3dType getGeometricTransform3dType () const =0
 retrieve geometric transform 3d type
 
virtual ipUInt32 getNbParams () const =0
 retrieve number of parameters associated to geometric transformation
 
template<typename T >
void apply (const T xIn, const T yIn, const T zIn, T &xOut, T &yOut, T &zOut) const
 apply transformation to a given point
 
virtual bool isInvertible () const
 check whether transformation can be inverted
 
GeometricTransform3dPtr createInverted () const
 create an inversed transformation from current one More...
 
 BaseGeometricTransform3d ()
 
virtual ~BaseGeometricTransform3d ()
 

Static Public Member Functions

static void transform (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, ipReal64 &x, ipReal64 &y, ipReal64 &z)
 application of transformation to a point
 
static Matrix4d getHomogenousMatrix (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)
 retrieve homogeneous matrix associated to transformation
 
static Matrix4d getInvHomogenousMatrix (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)
 retrieve invert of homogeneous matrix associated to transformation More...
 
static void getInvParams (ipReal64 &axx, ipReal64 &axy, ipReal64 &axz, ipReal64 &ayx, ipReal64 &ayy, ipReal64 &ayz, ipReal64 &azx, ipReal64 &azy, ipReal64 &azz, ipReal64 &tx, ipReal64 &ty, ipReal64 &tz)
 retrieve invert parameters for transformation More...
 
static Vector getIdentityParams ()
 retrieve identity parameters for transformation
 

Protected Attributes

ipReal64 _tx
 translation coordinate along x axis
 
ipReal64 _ty
 translation coordinate along y axis
 
ipReal64 _tz
 translation coordinate along z axis
 
ipReal64 _axx
 
ipReal64 _axy
 
ipReal64 _axz
 
ipReal64 _ayx
 
ipReal64 _ayy
 
ipReal64 _ayz
 
ipReal64 _azx
 
ipReal64 _azy
 
ipReal64 _azz
 

Additional Inherited Members

- Static Public Attributes inherited from ipsdk::math::transform::BaseLinearGeometricTransform3d
static const bool g_bLinear = true
 linear status for transformation
 

Detailed Description

Transformation class allowing to manage 3d affine transformations.

Author
E.Noirfalise
Date
2017/01/17

Member Enumeration Documentation

◆ eTransformParams

parameters list associated to transformation

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eTP_Axx 

xx term of matrix

eTP_Axy 

xy term of matrix

eTP_Axz 

xy term of matrix

eTP_Ayx 

yx term of matrix

eTP_Ayy 

yy term of matrix

eTP_Ayz 

yz term of matrix

eTP_Azx 

zx term of matrix

eTP_Azy 

zy term of matrix

eTP_Azz 

zz term of matrix

eTP_Tx 

translation along x axis

eTP_Ty 

translation along y axis

eTP_Tz 

translation along z axis

Member Function Documentation

◆ getInvHomogenousMatrix()

static Matrix4d ipsdk::math::transform::Affine3d::getInvHomogenousMatrix ( 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 
)
inlinestatic

retrieve invert of homogeneous matrix associated to transformation

Exceptions
ipsdk::math::IPSDKMathExceptionif 3x3 matrix formed by axx, axy, axz, ayx, ayy, ayz, azx, azy, azz cannot be inverted

◆ getInvParams()

static void ipsdk::math::transform::Affine3d::getInvParams ( ipReal64 axx,
ipReal64 axy,
ipReal64 axz,
ipReal64 ayx,
ipReal64 ayy,
ipReal64 ayz,
ipReal64 azx,
ipReal64 azy,
ipReal64 azz,
ipReal64 tx,
ipReal64 ty,
ipReal64 tz 
)
static

retrieve invert parameters for transformation

Exceptions
ipsdk::math::IPSDKMathExceptionif 2x2 matrix formed by axx, axy, ayx, ayy cannot be inverted

◆ setParams()

void ipsdk::math::transform::Affine3d::setParams ( const Vector params)
virtual

select parameters associated to transformation

Exceptions
ipsdk::math::IPSDKMathExceptionif params.size() != getNbParams()

Implements ipsdk::math::transform::BaseGeometricTransform3d.

Member Data Documentation

◆ _axx

ipReal64 ipsdk::math::transform::Affine3d::_axx
protected

Affine part of matrix coefficient

◆ _axy

ipReal64 ipsdk::math::transform::Affine3d::_axy
protected

Affine part of matrix coefficient

◆ _axz

ipReal64 ipsdk::math::transform::Affine3d::_axz
protected

Affine part of matrix coefficient

◆ _ayx

ipReal64 ipsdk::math::transform::Affine3d::_ayx
protected

Affine part of matrix coefficient

◆ _ayy

ipReal64 ipsdk::math::transform::Affine3d::_ayy
protected

Affine part of matrix coefficient

◆ _ayz

ipReal64 ipsdk::math::transform::Affine3d::_ayz
protected

Affine part of matrix coefficient

◆ _azx

ipReal64 ipsdk::math::transform::Affine3d::_azx
protected

Affine part of matrix coefficient

◆ _azy

ipReal64 ipsdk::math::transform::Affine3d::_azy
protected

Affine part of matrix coefficient

◆ _azz

ipReal64 ipsdk::math::transform::Affine3d::_azz
protected

Affine part of matrix coefficient


The documentation for this class was generated from the following file: