IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Point2dOperators.h
Go to the documentation of this file.
1 // Point2dOperators.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_POINT2DOPERATORS_H__
16 #define __IPSDKGEOMETRY_POINT2DOPERATORS_H__
17 
19 #include <IPSDKMath/Constants.h>
20 
21 namespace ipsdk {
22 namespace geom {
23 
24 template <typename T>
25 struct Point2dData;
26 template <typename T>
27 class Point2d;
28 class Vector2d;
29 
32 
35 template <typename TOut, typename TIn>
36 IPSDKGEOMETRY_API Point2d<TOut>
37 cast(const Point2d<TIn>& pt);
38 template <typename TOut, typename TIn>
39 IPSDKGEOMETRY_API Point2dData<TOut>
40 cast(const Point2dData<TIn>& pt);
41 template <typename TOut, typename TIn>
42 IPSDKGEOMETRY_API Point2d<TOut>
43 round(const Point2d<TIn>& pt);
44 template <typename TOut, typename TIn>
45 IPSDKGEOMETRY_API Point2dData<TOut>
46 round(const Point2dData<TIn>& pt);
48 
52 template <typename T>
54 convert(const Point2d<T>& pt);
55 template <typename T>
57 convert(const Point2dData<T>& pt);
58 template <typename T>
60 convert(const Point2d<T>& pt,
61  Vector2d& vec);
62 template <typename T>
64 convert(const Point2dData<T>& pt,
65  Vector2d& vec);
66 template <typename T>
67 IPSDKGEOMETRY_API Point2dData<T>
68 convert(const Vector2d& vec);
69 template <typename T>
71 convert(const Vector2d& vec,
72  Point2d<T>& pt);
73 template <typename T>
75 convert(const Vector2d& vec,
76  Point2dData<T>& pt);
78 
83 template <typename T>
85 compare(const Point2d<T>& pt1, const Point2d<T>& pt2,
86  const T epsilon = ipsdk::NumericLimits<T>::sqrt_epsilon());
87 template <typename T>
89 compare(const Point2dData<T>& pt1, const Point2dData<T>& pt2,
90  const T epsilon = ipsdk::NumericLimits<T>::sqrt_epsilon());
92 
95 template <typename T>
97 operator== (const Point2d<T>& pt1, const Point2d<T>& pt2);
98 template <typename T>
100 operator!= (const Point2d<T>& pt1, const Point2d<T>& pt2);
101 template <typename T>
103 operator< (const Point2d<T>& pt1, const Point2d<T>& pt2);
104 template <typename T>
106 operator> (const Point2d<T>& pt1, const Point2d<T>& pt2);
107 template <typename T>
109 operator<= (const Point2d<T>& pt1, const Point2d<T>& pt2);
110 template <typename T>
112 operator>= (const Point2d<T>& pt1, const Point2d<T>& pt2);
113 template <typename T>
115 operator== (const Point2dData<T>& pt1, const Point2dData<T>& pt2);
116 template <typename T>
118 operator!= (const Point2dData<T>& pt1, const Point2dData<T>& pt2);
119 template <typename T>
121 operator< (const Point2dData<T>& pt1, const Point2dData<T>& pt2);
122 template <typename T>
124 operator> (const Point2dData<T>& pt1, const Point2dData<T>& pt2);
125 template <typename T>
127 operator<= (const Point2dData<T>& pt1, const Point2dData<T>& pt2);
128 template <typename T>
130 operator>= (const Point2dData<T>& pt1, const Point2dData<T>& pt2);
132 
135 template <typename T>
136 IPSDKGEOMETRY_API Point2d<T>
137 operator*(const ipReal64 value, const Point2d<T>& pt);
138 template <typename T>
139 IPSDKGEOMETRY_API Point2dData<T>
140 operator*(const ipReal64 value, const Point2dData<T>& pt);
142 
145 template <typename T>
146 IPSDKGEOMETRY_API std::ostream&
147 operator<< (std::ostream& os, const Point2dData<T>& pt);
148 template <typename T>
149 IPSDKGEOMETRY_API std::ostream&
150 operator<< (std::ostream& os, const Point2d<T>& pt);
152 
155 
156 } // end of namespace geom
157 } // end of namespace ipsdk
158 
159 #endif // __IPSDKGEOMETRY_POINT2DOPERATORS_H__
IPSDKGEOMETRY_API bool compare(const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
function allowing to compare bounding box
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
IPSDKGEOMETRY_API bool operator>=(const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
comparison operators for ipsdk::geom::BoundingBox2d class
IPSDKGEOMETRY_API Point2d< TOut > round(const Point2d< TIn > &pt)
conversion operators for ipsdk::geom::Point2d class
IPSDKGEOMETRY_API Point2d< T > operator*(const ipReal64 value, const Point2d< T > &pt)
arithmetic operators on point
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
IPSDKGEOMETRY_API bool operator>(const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
comparison operators for ipsdk::geom::BoundingBox2d class
IPSDKGEOMETRY_API bool operator!=(const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
comparison operators for ipsdk::geom::BoundingBox2d class
Definition: NumericLimits.h:27
Predefined constants for ipsdk math library.
Definition of import/export macro for library.
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
IPSDKGEOMETRY_API Vector2d convert(const Point2d< T > &pt)
conversion operator for ipsdk::geom::Point2d and ipsdk::geom::Vector2d convertion ...
IPSDKGEOMETRY_API bool operator==(const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
comparison operators for ipsdk::geom::BoundingBox2d class
boost::numeric::ublas::bounded_vector< ipReal64, 2 > Vector2d
2d vector type associated to library
Definition: LinearAlgebraTypes.h:39
IPSDKGEOMETRY_API Point2d< TOut > cast(const Point2d< TIn > &pt)
conversion operators for ipsdk::geom::Point2d class