IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseGeometricTransform2d.h
1 // BaseGeometricTransform2d.h:
3 // ---------------------------
4 //
14 
15 #ifndef __IPSDKMATH_BASEGEOMETRICTRANSFORM2D_H__
16 #define __IPSDKMATH_BASEGEOMETRICTRANSFORM2D_H__
17 
20 
21 namespace ipsdk {
22 namespace math {
23 namespace transform {
24 
27 
29 {
30 public:
34  virtual ~BaseGeometricTransform2d();
36 
37 // methods
38 public:
40  virtual eGeometricTransform2dType getGeometricTransform2dType() 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,
59  T& xOut, T& yOut) const;
60 
62  virtual void apply(ipReal64& x, ipReal64& y) const = 0;
63 
65  virtual Vector getParams() const = 0;
66 
68  virtual bool isInvertible() const;
69 
73  virtual Vector getInvParams() const = 0;
74 
78  GeometricTransform2dPtr 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_BASEGEOMETRICTRANSFORM2D_H__
Definition of import/export macro for library.
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
boost::numeric::ublas::vector< ipReal64 > Vector
vector type associated to library
Definition: LinearAlgebraTypes.h:36
eGeometricTransform2dType
geometric transform 2d type
Definition: GeometricTransform2dTypes.h:35
#define IPSDKMATH_API
Import/Export macro for library IPSDKMath.
Definition: IPSDKMathExports.h:27
virtual bool isInvertible() const
check whether transformation can be inverted
Definition: BaseGeometricTransform2d.h:89
Definition: BaseGeometricTransform2d.h:28
boost::shared_ptr< ipsdk::math::transform::BaseGeometricTransform2d > GeometricTransform2dPtr
shared pointer to ipsdk::math::transform::BaseGeometricTransform2d
Definition: GeometricTransform2dTypes.h:96
Header part of macro set allowing to manage geometric transformation 2d.
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53