IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
RTreeTypes.h
Go to the documentation of this file.
1 // RTreeTypes.h:
3 // -------------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_RTREETYPES_H__
16 #define __IPSDKGEOMETRY_RTREETYPES_H__
17 
19 #include <IPSDKUtil/BaseTypes.h>
20 #include <boost/shared_ptr.hpp>
22 #include <IPSDKGeometry/Entity/3d/Point/Point3d.h>
25 
26 namespace ipsdk {
27 namespace geom {
28 
29 template <typename T>
30 class BoundingBox2d;
31 template <typename T>
32 class Segment2d;
33 template <typename T>
34 class BoundingBox3d;
35 template <typename T>
36 class RTree;
37 
40 
45 
48 
51 
54 )
55 
56 
61 
64 
67 
70 
73 
76 
79 
82 
85 
87 typedef boost::shared_ptr<BBox2dRTree> BBox2dRTreePtr;
88 
90 typedef boost::shared_ptr<const BBox2dRTree> BBox2dRTreeConstPtr;
91 
94 
97 
99 typedef boost::shared_ptr<Seg2dRTree> Seg2dRTreePtr;
100 
102 typedef boost::shared_ptr<const Seg2dRTree> Seg2dRTreeConstPtr;
103 
106 
109 
112 
115 
118 
121 
124 
127 
130 
133 
135 typedef boost::shared_ptr<BBox3dRTree> BBox3dRTreePtr;
136 
138 typedef boost::shared_ptr<const BBox3dRTree> BBox3dRTreeConstPtr;
139 
142 
146 {
149 
152 };
153 
156 
158 typedef boost::shared_ptr<LTri3dRTree> LTri3dRTreePtr;
159 
161 typedef boost::shared_ptr<const LTri3dRTree> LTri3dRTreeConstPtr;
162 
165 
166 } // end of namespace geom
167 } // end of namespace ipsdk
168 
169 // registration of previous structure for boost usage
170 BOOST_GEOMETRY_REGISTER_POINT_3D(ipsdk::geom::LightTriangle3d, ipsdk::ipReal64, boost::geometry::cs::cartesian,
171  _barycenter._x, _barycenter._y, _barycenter._z);
172 
173 #endif // __IPSDKGEOMETRY_RTREETYPES_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::shared_ptr< Seg2dRTree > Seg2dRTreePtr
shared pointer to segment 2d with Shape2dDataType data type
Definition: RTreeTypes.h:99
RTree< LightTriangle3d > LTri3dRTree
RTree associated to light triangle 3d data.
Definition: RTreeTypes.h:155
the two ends of segment must be in contact with shape
Definition: RTreeTypes.h:50
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Point3dData< ipReal64 > _barycenter
barycenter associated to triangle
Definition: RTreeTypes.h:148
boost::shared_ptr< BBox3dRTree > BBox3dRTreePtr
shared pointer to bounding box 3d with Shape3dDataType data type
Definition: RTreeTypes.h:135
boost::shared_ptr< Real32Point2dRTree > Real32Point2dRTreePtr
shared pointer to Point 2d with Shape2dDataType data type
Definition: RTreeTypes.h:63
Definition: DataItemNodeHdrMacrosDetails.h:48
boost::shared_ptr< const LTri3dRTree > LTri3dRTreeConstPtr
shared pointer to const light triangle 3d data
Definition: RTreeTypes.h:161
boost::shared_ptr< BBox2dRTree > BBox2dRTreePtr
shared pointer to bounding box 2d with Shape2dDataType data type
Definition: RTreeTypes.h:87
boost::shared_ptr< Real32Point3dRTree > Real32Point3dRTreePtr
shared pointer to Point 3d with Shape3dDataType data type
Definition: RTreeTypes.h:111
Points 2d adapters for boost geometry library.
closest point on segment must be in contact with shape
Definition: RTreeTypes.h:52
boost::shared_ptr< const Real32Point2dRTree > Real32Point2dRTreeConstPtr
shared pointer to const Point 2d with Shape2dDataType data type
Definition: RTreeTypes.h:66
Base types for multiplatform compatibility.
boost::shared_ptr< Real64Point2dRTree > Real64Point2dRTreePtr
shared pointer to Point 2d with Shape2dDataType data type
Definition: RTreeTypes.h:75
Rectangular 3d bounding box class associated to cartesian 3d coordinates.
Definition: BoundingBox3d.h:37
Predefined types for shape 3d management.
ipReal32 Shape2dDataType
underlying data type associated to shape 2d
Definition: Shape2dTypes.h:48
2d segment associated to two points
Definition: Segment2d.h:38
ipReal64 _area
area of triangle
Definition: RTreeTypes.h:151
eSegmentContactPolicy
Enumerate describing policy used to define if a segment belongs to elements in contact with a shape...
Definition: RTreeTypes.h:46
boost::shared_ptr< const Real64Point3dRTree > Real64Point3dRTreeConstPtr
shared pointer to const Point 3d with Shape3dDataType data type
Definition: RTreeTypes.h:126
Definition: RTreeTypes.h:145
boost::shared_ptr< const Seg2dRTree > Seg2dRTreeConstPtr
shared pointer to const segment 2d with Shape2dDataType data type
Definition: RTreeTypes.h:102
boost::shared_ptr< const BBox2dRTree > BBox2dRTreeConstPtr
shared pointer to const bounding box 2d with Shape2dDataType data type
Definition: RTreeTypes.h:90
ipReal32 Shape3dDataType
underlying data type associated to shape 3d
Definition: Shape3dTypes.h:46
boost::shared_ptr< const Real32Point3dRTree > Real32Point3dRTreeConstPtr
shared pointer to const Point 3d with Shape3dDataType data type
Definition: RTreeTypes.h:114
center of segment must be in contact with shape
Definition: RTreeTypes.h:48
Class allowing to encapsulate boost::geometry::rtree.
Definition: RTree.h:41
Predefined types for shape 2d management.
boost::shared_ptr< const Real64Point2dRTree > Real64Point2dRTreeConstPtr
shared pointer to const Point 2d with Shape2dDataType data type
Definition: RTreeTypes.h:78
boost::shared_ptr< const BBox3dRTree > BBox3dRTreeConstPtr
shared pointer to const bounding box 3d with Shape3dDataType data type
Definition: RTreeTypes.h:138
Lightweight structure used to store Point2d data.
Definition: GeometryEntity2dTypes.h:26
boost::shared_ptr< Real64Point3dRTree > Real64Point3dRTreePtr
shared pointer to Point 3d with Shape3dDataType data type
Definition: RTreeTypes.h:123
Lightweight structure used to store Point3d data.
Definition: GeometryEntity3dTypes.h:27
Predefined macros for enumerates management.
Rectangular 2d bounding box class associated to cartesian 2d coordinates.
Definition: BoundingBox2d.h:37
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
boost::shared_ptr< LTri3dRTree > LTri3dRTreePtr
shared pointer to light triangle 3d data
Definition: RTreeTypes.h:158
float ipReal32
Base types definition.
Definition: BaseTypes.h:56