|
|
|
@ -994,6 +994,30 @@ Point_<_Tp>& operator *= (Point_<_Tp>& a, double b) |
|
|
|
|
return a; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename _Tp> static inline |
|
|
|
|
Point_<_Tp>& operator /= (Point_<_Tp>& a, int b) |
|
|
|
|
{ |
|
|
|
|
a.x = saturate_cast<_Tp>(a.x / b); |
|
|
|
|
a.y = saturate_cast<_Tp>(a.y / b); |
|
|
|
|
return a; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename _Tp> static inline |
|
|
|
|
Point_<_Tp>& operator /= (Point_<_Tp>& a, float b) |
|
|
|
|
{ |
|
|
|
|
a.x = saturate_cast<_Tp>(a.x / b); |
|
|
|
|
a.y = saturate_cast<_Tp>(a.y / b); |
|
|
|
|
return a; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename _Tp> static inline |
|
|
|
|
Point_<_Tp>& operator /= (Point_<_Tp>& a, double b) |
|
|
|
|
{ |
|
|
|
|
a.x = saturate_cast<_Tp>(a.x / b); |
|
|
|
|
a.y = saturate_cast<_Tp>(a.y / b); |
|
|
|
|
return a; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename _Tp> static inline |
|
|
|
|
double norm(const Point_<_Tp>& pt) |
|
|
|
|
{ |
|
|
|
@ -1080,6 +1104,30 @@ Point3_<_Tp> operator * (const Matx<_Tp, 3, 3>& a, const Point_<_Tp>& b) |
|
|
|
|
return Point3_<_Tp>(tmp.val[0], tmp.val[1], tmp.val[2]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename _Tp> static inline |
|
|
|
|
Point_<_Tp> operator / (const Point_<_Tp>& a, int b) |
|
|
|
|
{ |
|
|
|
|
Point_<_Tp> tmp(a); |
|
|
|
|
tmp /= b; |
|
|
|
|
return tmp; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename _Tp> static inline |
|
|
|
|
Point_<_Tp> operator / (const Point_<_Tp>& a, float b) |
|
|
|
|
{ |
|
|
|
|
Point_<_Tp> tmp(a); |
|
|
|
|
tmp /= b; |
|
|
|
|
return tmp; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename _Tp> static inline |
|
|
|
|
Point_<_Tp> operator / (const Point_<_Tp>& a, double b) |
|
|
|
|
{ |
|
|
|
|
Point_<_Tp> tmp(a); |
|
|
|
|
tmp /= b; |
|
|
|
|
return tmp; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////// 3D Point ///////////////////////////////
|
|
|
|
|