IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Transform3dHdrMacros.h
Go to the documentation of this file.
1 // Transform3dHdrMacros.h:
3 // -----------------------
4 //
14 
15 #ifndef __IPSDKMATH_TRANSFORM3DHDRMACROS_H__
16 #define __IPSDKMATH_TRANSFORM3DHDRMACROS_H__
17 
18 #include <IPSDKMath/Geometry/3d/Transform/Transform3dFactory.h>
19 #include <boost/make_shared.hpp>
20 
23 
24 namespace ipsdk {
25 namespace math {
26 namespace transform {
27 
29  template <typename T>
30  struct TransformRegistrator3d
31  {
32  TransformRegistrator3d()
33  {
34  Transform3dFactory& factory = Transform3dFactory::getInstance();
35  factory.registerTransform(T::g_geometricTransform3dType,
36  T::g_paramsSize,
37  &createShared);
38  }
39  static GeometricTransform3dPtr createShared()
40  {
41  return boost::make_shared<T>();
42  }
43  };
44 
45 } // end of namespace transform
46 } // end of namespace math
47 } // end of namespace ipsdk
48 
51 
54 #define IPSDK_DECLARE_TRANSFORM3D(className) \
55 public: \
56  static const ipsdk::math::transform::eGeometricTransform3dType::domain g_geometricTransform3dType = \
57  ipsdk::math::transform::Transform3d2Enum<className>::g_geometricTransform3dType; \
58  static const ipsdk::ipUInt32 g_paramsSize = static_cast<ipsdk::ipUInt32>(eTransformParams::size); \
59  ipsdk::math::transform::eGeometricTransform3dType getGeometricTransform3dType() const \
60  { \
61  return g_geometricTransform3dType; \
62  } \
63  ipsdk::ipUInt32 getNbParams() const \
64  { \
65  return g_paramsSize; \
66  } \
67 private: \
68  static ipsdk::math::transform::TransformRegistrator3d<className> g_registrator;
69 
72 
73 #endif // __IPSDKMATH_TRANSFORM3DHDRMACROS_H__
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
static Transform3dFactory & getInstance()
method allowing to retrieve factory singletion instance