Move cv::Size_
This commit is contained in:
@@ -524,41 +524,6 @@ typedef Vec<double, 4> Vec4d;
|
||||
typedef Vec<double, 6> Vec6d;
|
||||
|
||||
|
||||
//////////////////////////////// Size_ ////////////////////////////////
|
||||
|
||||
/*!
|
||||
The 2D size class
|
||||
|
||||
The class represents the size of a 2D rectangle, image size, matrix size etc.
|
||||
Normally, cv::Size ~ cv::Size_<int> is used.
|
||||
*/
|
||||
template<typename _Tp> class CV_EXPORTS Size_
|
||||
{
|
||||
public:
|
||||
typedef _Tp value_type;
|
||||
|
||||
//! various constructors
|
||||
Size_();
|
||||
Size_(_Tp _width, _Tp _height);
|
||||
Size_(const Size_& sz);
|
||||
Size_(const CvSize& sz);
|
||||
Size_(const CvSize2D32f& sz);
|
||||
Size_(const Point_<_Tp>& pt);
|
||||
|
||||
Size_& operator = (const Size_& sz);
|
||||
//! the area (width*height)
|
||||
_Tp area() const;
|
||||
|
||||
//! conversion of another data type.
|
||||
template<typename _Tp2> operator Size_<_Tp2>() const;
|
||||
|
||||
//! conversion to the old-style OpenCV types
|
||||
operator CvSize() const;
|
||||
operator CvSize2D32f() const;
|
||||
|
||||
_Tp width, height; // the width and the height
|
||||
};
|
||||
|
||||
//////////////////////////////// Rect_ ////////////////////////////////
|
||||
|
||||
/*!
|
||||
@@ -608,10 +573,7 @@ public:
|
||||
|
||||
shorter aliases for the most popular cv::Point_<>, cv::Size_<> and cv::Rect_<> specializations
|
||||
*/
|
||||
typedef Size_<int> Size2i;
|
||||
typedef Size2i Size;
|
||||
typedef Rect_<int> Rect;
|
||||
typedef Size_<float> Size2f;
|
||||
|
||||
|
||||
/*!
|
||||
|
@@ -1754,18 +1754,10 @@ template<typename _Tp> inline Size_<_Tp>::Size_(_Tp _width, _Tp _height)
|
||||
: width(_width), height(_height) {}
|
||||
template<typename _Tp> inline Size_<_Tp>::Size_(const Size_& sz)
|
||||
: width(sz.width), height(sz.height) {}
|
||||
template<typename _Tp> inline Size_<_Tp>::Size_(const CvSize& sz)
|
||||
: width(saturate_cast<_Tp>(sz.width)), height(saturate_cast<_Tp>(sz.height)) {}
|
||||
template<typename _Tp> inline Size_<_Tp>::Size_(const CvSize2D32f& sz)
|
||||
: width(saturate_cast<_Tp>(sz.width)), height(saturate_cast<_Tp>(sz.height)) {}
|
||||
template<typename _Tp> inline Size_<_Tp>::Size_(const Point_<_Tp>& pt) : width(pt.x), height(pt.y) {}
|
||||
|
||||
template<typename _Tp> template<typename _Tp2> inline Size_<_Tp>::operator Size_<_Tp2>() const
|
||||
{ return Size_<_Tp2>(saturate_cast<_Tp2>(width), saturate_cast<_Tp2>(height)); }
|
||||
template<typename _Tp> inline Size_<_Tp>::operator CvSize() const
|
||||
{ return cvSize(saturate_cast<int>(width), saturate_cast<int>(height)); }
|
||||
template<typename _Tp> inline Size_<_Tp>::operator CvSize2D32f() const
|
||||
{ return cvSize2D32f((float)width, (float)height); }
|
||||
|
||||
template<typename _Tp> inline Size_<_Tp>& Size_<_Tp>::operator = (const Size_<_Tp>& sz)
|
||||
{ width = sz.width; height = sz.height; return *this; }
|
||||
|
@@ -246,6 +246,44 @@ typedef Point3_<int> Point3i;
|
||||
typedef Point3_<float> Point3f;
|
||||
typedef Point3_<double> Point3d;
|
||||
|
||||
|
||||
|
||||
//////////////////////////////// Size_ ////////////////////////////////
|
||||
|
||||
/*!
|
||||
The 2D size class
|
||||
|
||||
The class represents the size of a 2D rectangle, image size, matrix size etc.
|
||||
Normally, cv::Size ~ cv::Size_<int> is used.
|
||||
*/
|
||||
template<typename _Tp> class CV_EXPORTS Size_
|
||||
{
|
||||
public:
|
||||
typedef _Tp value_type;
|
||||
|
||||
//! various constructors
|
||||
Size_();
|
||||
Size_(_Tp _width, _Tp _height);
|
||||
Size_(const Size_& sz);
|
||||
Size_(const Point_<_Tp>& pt);
|
||||
|
||||
Size_& operator = (const Size_& sz);
|
||||
//! the area (width*height)
|
||||
_Tp area() const;
|
||||
|
||||
//! conversion of another data type.
|
||||
template<typename _Tp2> operator Size_<_Tp2>() const;
|
||||
|
||||
_Tp width, height; // the width and the height
|
||||
};
|
||||
|
||||
/*!
|
||||
\typedef
|
||||
*/
|
||||
typedef Size_<int> Size2i;
|
||||
typedef Size_<float> Size2f;
|
||||
typedef Size2i Size;
|
||||
|
||||
} // cv
|
||||
|
||||
#endif //__OPENCV_CORE_TYPES_HPP__
|
@@ -894,6 +894,14 @@ typedef struct CvSize
|
||||
{
|
||||
int width;
|
||||
int height;
|
||||
|
||||
#ifdef __cplusplus
|
||||
CvSize(int w = 0, int h = 0): width(w), height(h) {}
|
||||
template<typename _Tp>
|
||||
CvSize(const cv::Size_<_Tp>& sz): width(cv::saturate_cast<int>(sz.width)), height(cv::saturate_cast<int>(sz.height)) {}
|
||||
template<typename _Tp>
|
||||
operator cv::Size_<_Tp>() const { return cv::Size_<_Tp>(cv::saturate_cast<_Tp>(width), cv::saturate_cast<_Tp>(height)); }
|
||||
#endif
|
||||
}
|
||||
CvSize;
|
||||
|
||||
@@ -911,6 +919,14 @@ typedef struct CvSize2D32f
|
||||
{
|
||||
float width;
|
||||
float height;
|
||||
|
||||
#ifdef __cplusplus
|
||||
CvSize2D32f(float w = 0, float h = 0): width(w), height(h) {}
|
||||
template<typename _Tp>
|
||||
CvSize2D32f(const cv::Size_<_Tp>& sz): width(cv::saturate_cast<float>(sz.width)), height(cv::saturate_cast<float>(sz.height)) {}
|
||||
template<typename _Tp>
|
||||
operator cv::Size_<_Tp>() const { return cv::Size_<_Tp>(cv::saturate_cast<_Tp>(width), cv::saturate_cast<_Tp>(height)); }
|
||||
#endif
|
||||
}
|
||||
CvSize2D32f;
|
||||
|
||||
|
Reference in New Issue
Block a user