IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ConvexHullTransform3d.h
1 // ConvexHullTransform3d.h:
3 // ------------------------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_CONVEXHULLTRANSFORM3D_H__
16 #define __IPSDKGEOMETRY_CONVEXHULLTRANSFORM3D_H__
17 
18 #include <IPSDKGeometry/Transform/3d/BaseGeometryTransform3d.h>
19 
20 namespace ipsdk {
21 namespace geom {
22 
25 
27 {
28  // declare geometry transform 3d
30 
31 // predefined public types
32 public:
34  static const eTransform3dType::domain g_transform3dType = eTransform3dType::eT3DT_ConvexHull;
35 
36 public:
42 
43 // methods
44 public:
46  eTransform3dType getTransform3dType() const;
47 
48 protected:
51  template <typename T>
52  bool processInSitu(Point3d<T>& entity) const;
53  bool processInSitu(Vector3d& entity) const;
54  template <typename T>
55  bool processInSitu(BoundingBox3d<T>& entity) const;
56  template <typename T>
57  bool processInSitu(PointCloud3d<T>& entity) const;
58  template <typename T>
59  bool processInSitu(Mesh3d<T>& entity) const;
60  template <typename T>
61  bool processInSitu(MeshWithHoles3d<T>& entity) const;
62  bool processInSitu(Shape3d& entity) const;
63  template <typename T>
64  bool processInSitu(Sphere3d<T>& entity) const;
65  template <typename T>
66  bool processInSitu(Ellipsoid3d<T>& entity) const;
67  template <typename T>
68  bool processInSitu(Cube3d<T>& entity) const;
69  template <typename T>
70  bool processInSitu(Cuboid3d<T>& entity) const;
71  template <typename T>
72  bool processInSitu(Segment3d<T>& entity) const;
73  template <typename T>
74  bool processInSitu(Triangle3d<T>& entity) const;
76 
77 // attributes
78 protected:
79 
80 };
81 
84 
85 inline eTransform3dType
87 {
88  return g_transform3dType;
89 }
90 
93 
94 } // end of namespace geom
95 } // end of namespace ipsdk
96 
97 #endif // __IPSDKGEOMETRY_CONVEXHULLTRANSFORM3D_H__
3d ellipsoid associated to cartesian 3d coordinates For a non rotated ellipse, the major radius follo...
Definition: Ellipsoid3d.h:39
3d segment associated to two points
Definition: Segment3d.h:38
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Point class associated to cartesian 3d coordinates.
Definition: GeometryEntity3dTypes.h:29
3d sphere associated to cartesian 3d coordinates
Definition: Sphere3d.h:36
eTransform3dType
Enumerate describing geometry 3d transform type.
Definition: GeometryTransform3dTypes.h:33
eTransform3dType getTransform3dType() const
method allowing to retrieve entity 3d transformation type
Definition: ConvexHullTransform3d.h:86
Vector class associated to spherical 3d coordinates.
Definition: Vector3d.h:32
#define IPSDK_DECLARE_GEOMETRY_TRANSFORM_3D(libraryName, className)
Macro allowing to declare a geometry transform 3d.
Definition: GeometryTransform3dHdrMacros.h:26
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
Base class for geometry 3d transformations.
Definition: BaseGeometryTransform3d.h:31
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
Computation of 3d convex hull associated to input geometry.
Definition: ConvexHullTransform3d.h:26
static const eTransform3dType::domain g_transform3dType
geometry transformation type
Definition: ConvexHullTransform3d.h:34
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
Unordered collection of 3d points.
Definition: PointCloud3d.h:35
Closed mesh potentially associated to interior mesh holes.
Definition: MeshWithHoles3d.h:39
Convex Hull computation.
Definition: GeometryTransform3dTypes.h:51
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