IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseGeometryTransform2d.h
1 // BaseGeometryTransform2d.h:
3 // --------------------------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_BASEGEOMETRYTRANSFORM2D_H__
16 #define __IPSDKGEOMETRY_BASEGEOMETRYTRANSFORM2D_H__
17 
18 #include <IPSDKGeometry/Transform/BaseGeometryTransform.h>
21 
22 namespace ipsdk {
23 namespace geom {
24 
25 template <typename T>
26 struct Point2dData;
27 
28 // enumeration of available geometry entity 2d types
30 
33 
35 {
36  // declare serial class
38 
39 // predefined public types
40 public:
42  static const eCoordinateDimension::domain g_coordinateDimension = eCoordinateDimension::eCD_2d;
43 
44 public:
48  virtual ~BaseGeometryTransform2d() = 0;
50 
51 // methods
52 public:
54  eCoordinateDimension getCoordinateDimension() const;
55 
57  virtual eTransform2dType getTransform2dType() const = 0;
58 
61  virtual bool applyInSitu(BaseGeometryEntity2d& entity) const = 0;
62 
65  bool applyInSitu(const GeometryEntity2dPtr& pEntity) const;
66 
69  virtual GeometryEntity2dPtr apply(const BaseGeometryEntity2d& entity) const = 0;
70 
74 
75 // attributes
76 protected:
77 
78 };
79 
82 
85 {
86  return g_coordinateDimension;
87 }
88 
91 
92 } // end of namespace geom
93 } // end of namespace ipsdk
94 
95 #endif // __IPSDKGEOMETRY_BASEGEOMETRYTRANSFORM2D_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< const BaseGeometryEntity2d > GeometryEntity2dConstPtr
shared pointer to const BaseGeometryEntity2d
Definition: GeometryEntity2dTypes.h:91
eCoordinateDimension
Enumerate describing coordinates dimension.
Definition: GeometryEntityTypes.h:38
IPSDKGEOMETRY_API bool apply(const BaseGeometryTransform2d &transform, BaseGeometryEntity2d &entity)
function allowing to apply in situ a given transformation on an entity
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:91
Predefined types for geometry 2d transform management.
eCoordinateDimension getCoordinateDimension() const
method allowing to retrieve entity underlying coordinates dimension
Definition: BaseGeometryTransform2d.h:84
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
static const eCoordinateDimension::domain g_coordinateDimension
entity underlying coordinates dimension
Definition: BaseGeometryTransform2d.h:42
Header part of macros for geometry transform 2d management.
boost::shared_ptr< BaseGeometryEntity2d > GeometryEntity2dPtr
shared pointer to BaseGeometryEntity2d
Definition: GeometryEntity2dTypes.h:88
#define IPSDK_ENUMERATE_GEOMETRY_ENTITY_2D_TYPES()
macro allowing to enumerate geometry entity 2d types
Definition: GeometryEntity2dListMacros.h:31
Base class for 2d geometry entities.
Definition: BaseGeometryEntity2d.h:34
Base class for geometry 2d transformations.
Definition: BaseGeometryTransform2d.h:34
Base class for geometry transformations.
Definition: BaseGeometryTransform.h:28
2d coordinates
Definition: GeometryEntityTypes.h:40
eTransform2dType
Enumerate describing geometry 2d transform type.
Definition: GeometryTransform2dTypes.h:33