template class cv::Point_

Overview

Template class for 2D points specified by its coordinates x and y. Moreā€¦

#include <types.hpp>

template <typename _Tp>
class Point_
{
public:
    // typedefs

    typedef _Tp value_type;

    // fields

    _Tp x;
    _Tp y;

    // construction

    Point_();

    Point_(
        _Tp _x,
        _Tp _y
        );

    Point_(const Point_& pt);
    Point_(const Size_<_Tp>& sz);
    Point_(const Vec<_Tp, 2>& v);

    // methods

    double
    cross(const Point_& pt) const;

    double
    ddot(const Point_& pt) const;

    _Tp
    dot(const Point_& pt) const;

    bool
    inside(const Rect_<_Tp>& r) const;

    template <typename _Tp2>
    operator Point_< _Tp2 >() const;

    operator Vec< _Tp, 2 >() const;

    Point_&
    operator=(const Point_& pt);
};

Detailed Documentation

Template class for 2D points specified by its coordinates x and y.

An instance of the class is interchangeable with C structures, CvPoint and CvPoint2D32f. There is also a cast operator to convert point coordinates to the specified type. The conversion from floating-point coordinates to integer coordinates is done by rounding. Commonly, the conversion uses this operation for each of the coordinates. Besides the class members listed in the declaration above, the following operations on points are implemented:

pt1 = pt2 + pt3;
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;

For your convenience, the following type aliases are defined:

typedef Point_<int> Point2i;
typedef Point2i Point;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;

Example:

Point2f a(0.3f, 0.f), b(0.f, 0.4f);
Point pt = (a + b)*10.f;
cout << pt.x << ", " << pt.y << endl;

Methods

double
cross(const Point_& pt) const

cross-product

double
ddot(const Point_& pt) const

dot product computed in double-precision arithmetics

_Tp
dot(const Point_& pt) const

dot product

bool
inside(const Rect_<_Tp>& r) const

checks whether the point is inside the specified rectangle

template <typename _Tp2>
operator Point_< _Tp2 >() const

conversion to another data type

operator Vec< _Tp, 2 >() const

conversion to the old-style C structures