IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ConvexHullTransform2d.h
1 // ConvexHullTransform2d.h:
3 // ------------------------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_CONVEXHULLTRANSFORM2D_H__
16 #define __IPSDKGEOMETRY_CONVEXHULLTRANSFORM2D_H__
17 
18 #include <IPSDKGeometry/Transform/2d/BaseGeometryTransform2d.h>
19 
20 namespace ipsdk {
21 namespace geom {
22 
25 
27 {
28  // declare geometry transform 2d
30 
31 // predefined public types
32 public:
34  static const eTransform2dType::domain g_transform2dType = eTransform2dType::eT2DT_ConvexHull;
35 
36 public:
42 
43 // methods
44 public:
46  eTransform2dType getTransform2dType() const;
47 
48 protected:
51  template <typename T>
52  bool processInSitu(Point2d<T>& entity) const;
53  bool processInSitu(Vector2d& entity) const;
54  template <typename T>
55  bool processInSitu(BoundingBox2d<T>& entity) const;
56  template <typename T>
57  bool processInSitu(PointCloud2d<T>& entity) const;
58  template <typename T>
59  bool processInSitu(Polygon2d<T>& entity) const;
60  template <typename T>
61  bool processInSitu(PolygonWithHoles2d<T>& entity) const;
62  bool processInSitu(Shape2d& entity) const;
63  template <typename T>
64  bool processInSitu(Circle2d<T>& entity) const;
65  template <typename T>
66  bool processInSitu(Ellipse2d<T>& entity) const;
67  template <typename T>
68  bool processInSitu(Square2d<T>& entity) const;
69  template <typename T>
70  bool processInSitu(Rectangle2d<T>& entity) const;
71  template <typename T>
72  bool processInSitu(Segment2d<T>& entity) const;
74 
75 // attributes
76 protected:
77 
78 };
79 
82 
83 inline eTransform2dType
85 {
86  return g_transform2dType;
87 }
88 
91 
92 } // end of namespace geom
93 } // end of namespace ipsdk
94 
95 #endif // __IPSDKGEOMETRY_CONVEXHULLTRANSFORM2D_H__
2d ellipse class associated to cartesian 2d coordinates. For a non rotated ellipse, the major axis follows the x axis and the minor axis follows the y axis.
Definition: Ellipse2d.h:40
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Point class associated to cartesian 2d coordinates.
Definition: GeometryEntity2dTypes.h:28
#define IPSDK_DECLARE_GEOMETRY_TRANSFORM_2D(libraryName, className)
Macro allowing to declare a geometry transform 2d.
Definition: GeometryTransform2dHdrMacros.h:26
static const eTransform2dType::domain g_transform2dType
geometry transformation type
Definition: ConvexHullTransform2d.h:34
Closed polygon potentially associated to interior polygonal holes.
Definition: PolygonWithHoles2d.h:40
eTransform2dType getTransform2dType() const
method allowing to retrieve entity 2d transformation type
Definition: ConvexHullTransform2d.h:84
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
Unordered collection of 2d points.
Definition: PointCloud2d.h:35
Convex Hull computation.
Definition: GeometryTransform2dTypes.h:51
2d segment associated to two points
Definition: Segment2d.h:38
Closed polygon associated to an ordered collection of 2d points.
Definition: Polygon2d.h:38
Vector class associated to polar 2d coordinates.
Definition: Vector2d.h:32
2d rectangle class associated to cartesian 2d coordinates
Definition: Rectangle2d.h:35
2d circle associated to cartesian 2d coordinates
Definition: Circle2d.h:36
Base class for geometry 2d transformations.
Definition: BaseGeometryTransform2d.h:34
2d square class associated to cartesian 2d coordinates
Definition: Square2d.h:35
Shape 2d associated to one or more closed polygon 2d.
Definition: Shape2d.h:35
Rectangular 2d bounding box class associated to cartesian 2d coordinates.
Definition: BoundingBox2d.h:37
Computation of 2d convex hull associated to input geometry.
Definition: ConvexHullTransform2d.h:26
eTransform2dType
Enumerate describing geometry 2d transform type.
Definition: GeometryTransform2dTypes.h:33