Merge pull request #3252 from GravityJack:point-division
This commit is contained in:
commit
7752483486
@ -96,9 +96,11 @@ operation for each of the coordinates. Besides the class members listed in the d
|
||||
pt1 = pt2 - pt3;
|
||||
pt1 = pt2 * a;
|
||||
pt1 = a * pt2;
|
||||
pt1 = pt2 / a;
|
||||
pt1 += pt2;
|
||||
pt1 -= pt2;
|
||||
pt1 *= a;
|
||||
pt1 /= a;
|
||||
double value = norm(pt); // L2 norm
|
||||
pt1 == pt2;
|
||||
pt1 != pt2;
|
||||
|
@ -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 ///////////////////////////////
|
||||
@ -1187,6 +1235,33 @@ Point3_<_Tp>& operator *= (Point3_<_Tp>& a, double b)
|
||||
return a;
|
||||
}
|
||||
|
||||
template<typename _Tp> static inline
|
||||
Point3_<_Tp>& operator /= (Point3_<_Tp>& a, int b)
|
||||
{
|
||||
a.x = saturate_cast<_Tp>(a.x / b);
|
||||
a.y = saturate_cast<_Tp>(a.y / b);
|
||||
a.z = saturate_cast<_Tp>(a.z / b);
|
||||
return a;
|
||||
}
|
||||
|
||||
template<typename _Tp> static inline
|
||||
Point3_<_Tp>& operator /= (Point3_<_Tp>& a, float b)
|
||||
{
|
||||
a.x = saturate_cast<_Tp>(a.x / b);
|
||||
a.y = saturate_cast<_Tp>(a.y / b);
|
||||
a.z = saturate_cast<_Tp>(a.z / b);
|
||||
return a;
|
||||
}
|
||||
|
||||
template<typename _Tp> static inline
|
||||
Point3_<_Tp>& operator /= (Point3_<_Tp>& a, double b)
|
||||
{
|
||||
a.x = saturate_cast<_Tp>(a.x / b);
|
||||
a.y = saturate_cast<_Tp>(a.y / b);
|
||||
a.z = saturate_cast<_Tp>(a.z / b);
|
||||
return a;
|
||||
}
|
||||
|
||||
template<typename _Tp> static inline
|
||||
double norm(const Point3_<_Tp>& pt)
|
||||
{
|
||||
@ -1272,6 +1347,30 @@ Matx<_Tp, 4, 1> operator * (const Matx<_Tp, 4, 4>& a, const Point3_<_Tp>& b)
|
||||
return a * Matx<_Tp, 4, 1>(b.x, b.y, b.z, 1);
|
||||
}
|
||||
|
||||
template<typename _Tp> static inline
|
||||
Point3_<_Tp> operator / (const Point3_<_Tp>& a, int b)
|
||||
{
|
||||
Point3_<_Tp> tmp(a);
|
||||
tmp /= b;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
template<typename _Tp> static inline
|
||||
Point3_<_Tp> operator / (const Point3_<_Tp>& a, float b)
|
||||
{
|
||||
Point3_<_Tp> tmp(a);
|
||||
tmp /= b;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
template<typename _Tp> static inline
|
||||
Point3_<_Tp> operator / (const Point3_<_Tp>& a, double b)
|
||||
{
|
||||
Point3_<_Tp> tmp(a);
|
||||
tmp /= b;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////// Size /////////////////////////////////
|
||||
|
Loading…
Reference in New Issue
Block a user