IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseGeometryEntity3d.h
1 // BaseGeometryEntity3d.h:
3 // -----------------------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_BASEGEOMETRYENTITY3D_H__
16 #define __IPSDKGEOMETRY_BASEGEOMETRYENTITY3D_H__
17 
18 #include <IPSDKGeometry/Entity/BaseGeometryEntity.h>
21 
22 namespace ipsdk {
23 namespace geom {
24 
25 // enumeration of geometry transform 3d types
27 
28 // enumeration of geometry measure 3d types
30 
33 
35 {
36  // declare serial class
38 
39  // setup visitors for geometry transformations
41 
42  // setup visitors for geometry measures
44 
45 // predefined public types
46 public:
48  static const eCoordinateDimension::domain g_coordinateDimension = eCoordinateDimension::eCD_3d;
49 
50 public:
54  virtual ~BaseGeometryEntity3d() = 0;
56 
57 // methods
58 public:
60  inline eCoordinateDimension getCoordinateDimension() const;
61 
63  virtual eCoordinateSystem3dType getCoordinateSystem3dType() const = 0;
64 
66  virtual eEntity3dType getEntity3dType() const = 0;
67 
68 // attributes
69 protected:
70 
71 };
72 
75 
78 {
79  return g_coordinateDimension;
80 }
81 
84 
85 } // end of namespace geom
86 } // end of namespace ipsdk
87 
88 #endif // __IPSDKGEOMETRY_BASEGEOMETRYENTITY3D_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eCoordinateSystem3dType
Enumerate describing coordinate system 3d type.
Definition: GeometryEntity3dTypes.h:74
eCoordinateDimension
Enumerate describing coordinates dimension.
Definition: GeometryEntityTypes.h:38
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:91
#define IPSDK_DECLARE_ABSTRACT_GEOMETRY_TRANSFORM_3D_VISITORS()
[Internal] Macro allowing to declare abstract geometry transform 3d visitors
Definition: GeometryEntity3dHdrMacros.h:64
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
#define IPSDK_ENUMERATE_GEOMETRY_MEASURE_3D_VISITORS()
macro allowing to enumerate geometry measure 3d types
Definition: GeometryEntity3dHdrMacros.h:46
Predefined types for entity 3d management.
eEntity3dType
Enumerate describing entity 3d type.
Definition: GeometryEntity3dTypes.h:38
Base class for geometry entities.
Definition: BaseGeometryEntity.h:28
static const eCoordinateDimension::domain g_coordinateDimension
entity underlying coordinates dimension
Definition: BaseGeometryEntity3d.h:48
eCoordinateDimension getCoordinateDimension() const
method allowing to retrieve entity underlying coordinates dimension
Definition: BaseGeometryEntity3d.h:77
#define IPSDK_DECLARE_ABSTRACT_GEOMETRY_MEASURE_3D_VISITORS()
[Internal] Macro allowing to declare abstract geometry measure 3d visitors
Definition: GeometryEntity3dHdrMacros.h:83
Header part of macros for geometry entity 3d management.
#define IPSDK_ENUMERATE_GEOMETRY_TRANSFORM_3D_VISITORS()
macro allowing to enumerate geometry transform 3d types
Definition: GeometryEntity3dHdrMacros.h:32
Base class for 3d geometry entities.
Definition: BaseGeometryEntity3d.h:34