IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
AreaMsr3d.h
1 // AreaMsr3d.h:
3 // ------------
4 //
16 
17 #ifndef __IPSDKGEOMETRY_AREAMSR3D_H__
18 #define __IPSDKGEOMETRY_AREAMSR3D_H__
19 
20 #include <IPSDKGeometry/Measure/3d/BaseTypedGeometryMeasure3d.h>
21 #include <IPSDKGeometry/Entity/3d/Mesh/Mesh3d.h>
22 
23 namespace ipsdk {
24 namespace geom {
25 
28 
30 {
31  // declare geometry measure 3d
33 
34 // predefined public types
35 public:
38 
40  static const eMeasure3dType::domain g_measure3dType = eMeasure3dType::eM3DT_Area;
41 
42 public:
45  AreaMsr3d();
46  ~AreaMsr3d();
48 
49 // methods
50 public:
52  eMeasure3dType getMeasure3dType() const;
53 
54 protected:
57  template <typename T>
58  bool process(const Point3d<T>& entity, ipReal64& result) const;
59  bool process(const Vector3d& entity, ipReal64& result) const;
60  template <typename T>
61  bool process(const BoundingBox3d<T>& entity, ipReal64& result) const;
62  template <typename T>
63  bool process(const Mesh3d<T>& entity, ipReal64& result) const;
64  template <typename T>
65  bool process(const MeshWithHoles3d<T>& entity, ipReal64& result) const;
66  bool process(const Shape3d& entity, ipReal64& result) const;
67  template <typename T>
68  bool process(const Sphere3d<T>& entity, ipReal64& result) const;
69  template <typename T>
70  bool process(const Triangle3d<T>& entity, ipReal64& result) const;
71  template <typename T>
72  bool process(const Ellipsoid3d<T>& entity, ipReal64& result) const;
73  template <typename T>
74  bool process(const Cube3d<T>& entity, ipReal64& result) const;
75  template <typename T>
76  bool process(const Cuboid3d<T>& entity, ipReal64& result) const;
78 
79 // attributes
80 protected:
81 
82 };
83 
86 
87 inline eMeasure3dType
89 {
90  return g_measure3dType;
91 }
92 
95 
96 } // end of namespace geom
97 } // end of namespace ipsdk
98 
99 #endif // __IPSDKGEOMETRY_AREAMSR3D_H__
3d ellipsoid associated to cartesian 3d coordinates For a non rotated ellipse, the major radius follo...
Definition: Ellipsoid3d.h:39
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
BaseTypedGeometryMeasure3d< ipReal64 >::DataType DataType
Output data type associated to measure.
Definition: AreaMsr3d.h:37
Point class associated to cartesian 3d coordinates.
Definition: GeometryEntity3dTypes.h:29
3d sphere associated to cartesian 3d coordinates
Definition: Sphere3d.h:36
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Area.
Definition: GeometryMeasure3dTypes.h:35
Vector class associated to spherical 3d coordinates.
Definition: Vector3d.h:32
#define IPSDK_DECLARE_GEOMETRY_MEASURE_3D(libraryName, className)
Macro allowing to declare a geometry measure 3d.
Definition: GeometryMeasure3dHdrMacros.h:26
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
Rectangular 3d bounding box class associated to cartesian 3d coordinates.
Definition: BoundingBox3d.h:37
static const eMeasure3dType::domain g_measure3dType
geometry entity measurement type
Definition: AreaMsr3d.h:40
3d triangle associated to cartesian 3d coordinates
Definition: Triangle3d.h:37
eMeasure3dType
Enumerate describing geometry 3d measure type.
Definition: GeometryMeasure3dTypes.h:33
Area measurement algorithm applied to a 3d geometry entity.
Definition: AreaMsr3d.h:29
Base class for typed geometry measures 3d.
Definition: BaseTypedGeometryMeasure3d.h:27
Closed mesh associated to a triangulated boundary.
Definition: Mesh3d.h:43
3d cuboid (rectangular parallelepiped) class associated to cartesian 3d coordinates ...
Definition: Cuboid3d.h:35
Closed mesh potentially associated to interior mesh holes.
Definition: MeshWithHoles3d.h:39
eMeasure3dType getMeasure3dType() const
method allowing to retrieve entity 3d measure type
Definition: AreaMsr3d.h:88
Shape 3d associated to one or more closed mesh 3d.
Definition: Shape3d.h:34
3d cube class associated to cartesian 3d coordinates
Definition: Cube3d.h:35