IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseGeometricTransform3d.h
1 // BaseGeometricTransform3d.h:
3 // ---------------------------
4 //
14 
15 #ifndef __IPSDKMATH_BASEGEOMETRICTRANSFORM3D_H__
16 #define __IPSDKMATH_BASEGEOMETRICTRANSFORM3D_H__
17 
20 
21 namespace ipsdk {
22 namespace math {
23 namespace transform {
24 
27 
29 {
30 public:
34  virtual ~BaseGeometricTransform3d();
36 
37 // methods
38 public:
40  virtual eGeometricTransform3dType getGeometricTransform3dType() const = 0;
41 
43  virtual ipUInt32 getNbParams() const = 0;
44 
46  virtual bool isLinear() const = 0;
47 
51  virtual void setParams(const Vector& params) = 0;
52 
54  virtual void setIdentity() = 0;
55 
57  template <typename T>
58  void apply(const T xIn, const T yIn, const T zIn,
59  T& xOut, T& yOut, T& zOut) const;
60 
62  virtual void apply(ipReal64& x, ipReal64& y, ipReal64& z) const = 0;
63 
65  virtual Vector getParams() const = 0;
66 
68  virtual bool isInvertible() const;
69 
73  virtual Vector getInvParams() const = 0;
74 
78  GeometricTransform3dPtr createInverted() const;
79 
80 // attributes
81 protected:
82 
83 };
84 
87 
88 inline bool
90 {
91  return true;
92 }
93 
96 
97 } // end of namespace transform
98 } // end of namespace math
99 } // end of namespace ipsdk
100 
101 #endif // __IPSDKMATH_BASEGEOMETRICTRANSFORM3D_H__
Definition of import/export macro for library.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< ipsdk::math::transform::BaseGeometricTransform3d > GeometricTransform3dPtr
shared pointer to ipsdk::math::transform::BaseGeometricTransform3d
Definition: GeometricTransform3dTypes.h:96
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
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
Base class for geometric transformation 3d management.
Definition: BaseGeometricTransform3d.h:28
Macro set allowing to manage geometric transformation 3d.
virtual bool isInvertible() const
check whether transformation can be inverted
Definition: BaseGeometricTransform3d.h:89
eGeometricTransform3dType
geometric transform 3d type
Definition: GeometricTransform3dTypes.h:35
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53