IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
VolumeMsr3d.h
1 // VolumeMsr3d.h:
3 // --------------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_VOLUMEMSR3D_H__
16 #define __IPSDKGEOMETRY_VOLUMEMSR3D_H__
17 
18 #include <IPSDKGeometry/Measure/3d/BaseTypedGeometryMeasure3d.h>
19 
20 namespace ipsdk {
21 namespace geom {
22 
25 
27 {
28  // declare geometry measure 3d
30 
31 public:
34  VolumeMsr3d();
35  ~VolumeMsr3d();
37 
38 // predefined public types
39 public:
42 
44  static const eMeasure3dType::domain g_measure3dType = eMeasure3dType::eM3DT_Volume;
45 
46 // methods
47 public:
49  eMeasure3dType getMeasure3dType() const;
50 
51 protected:
54  template <typename T>
55  bool process(const Point3d<T>& entity, ipReal64& result) const;
56  bool process(const Vector3d& entity, ipReal64& result) const;
57  template <typename T>
58  bool process(const BoundingBox3d<T>& entity, ipReal64& result) const;
59  template <typename T>
60  bool process(const Sphere3d<T>& entity, ipReal64& result) const;
61  template <typename T>
62  bool process(const Triangle3d<T>& entity, ipReal64& result) const;
63  template <typename T>
64  bool process(const Ellipsoid3d<T>& entity, ipReal64& result) const;
65  template <typename T>
66  bool process(const Cube3d<T>& entity, ipReal64& result) const;
67  template <typename T>
68  bool process(const Cuboid3d<T>& entity, ipReal64& result) const;
69  template <typename T>
70  bool process(const Mesh3d<T>& entity, ipReal64& result) const;
71  template <typename T>
72  bool process(const MeshWithHoles3d<T>& entity, ipReal64& result) const;
73  bool process(const Shape3d& entity, ipReal64& result) const;
75 
76 // attributes
77 protected:
78 
79 };
80 
83 
84 inline eMeasure3dType
86 {
87  return g_measure3dType;
88 }
89 
92 
93 } // end of namespace geom
94 } // end of namespace ipsdk
95 
96 #endif // __IPSDKGEOMETRY_VOLUMEMSR3D_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: VolumeMsr3d.h:41
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
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
3d triangle associated to cartesian 3d coordinates
Definition: Triangle3d.h:37
eMeasure3dType
Enumerate describing geometry 3d measure type.
Definition: GeometryMeasure3dTypes.h:33
static const eMeasure3dType::domain g_measure3dType
geometry entity measurement type
Definition: VolumeMsr3d.h:44
Volume measurement algorithm applied to a 3d geometry entity.
Definition: VolumeMsr3d.h:26
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
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
Volume.
Definition: GeometryMeasure3dTypes.h:37
eMeasure3dType getMeasure3dType() const
method allowing to retrieve entity 3d measure type
Definition: VolumeMsr3d.h:85