|
constexpr HOMOG2D_INUMTYPE | area () const |
| Neither lines nor points have an area. More...
|
|
template<typename FPT2 > |
HOMOG2D_INUMTYPE | distTo (const Point2d_< FPT2 > &pt) const |
| overload for line to point distance More...
|
|
template<typename FPT2 > |
HOMOG2D_INUMTYPE | distTo (const Line2d_< FPT2 > &) const |
|
template<typename FPT2 > |
HOMOG2D_INUMTYPE | distTo (const Segment_< FPT2 > &) const |
|
void | draw (img::Image< img::SvgImage > &im, img::DrawParams dp=img::DrawParams()) const |
| SVG draw function. More...
|
|
void | draw (img::Image< cv::Mat > &im, img::DrawParams dp=img::DrawParams()) const |
| Opencv draw function. More...
|
|
std::array< FPT, 3 > | get () const |
|
template<typename T , typename FPT2 > |
HOMOG2D_INUMTYPE | getAngle (const LPBase< T, FPT2 > &other) const |
|
template<typename T , typename FPT2 > |
HOMOG2D_INUMTYPE | getAngle (const base::SegVec< T, FPT2 > &seg) const |
| Returns angle in rad. between line and segment seg . More...
|
|
template<typename LP2 , typename FPT2 > |
HOMOG2D_INUMTYPE | getAngle (const LPBase< LP2, FPT2 > &li) const |
| Returns the angle (in rad.) between the line and the other one. More...
|
|
FRect_< HOMOG2D_INUMTYPE > | getBB () const |
| Needed so the function getBB(T1,T2) builds, whatever the types and because of variant (. More...
|
|
template<typename FPT2 > |
HOMOG2D_INUMTYPE | getCoord (GivenCoord gc, FPT2 other) const |
|
cv::Point2i | getCvPtd () const |
|
cv::Point2i | getCvPtf () const |
|
cv::Point2i | getCvPti () const |
|
template<typename FPT2 > |
Line2d_< FPT > | getOrthogLine (GivenCoord gc, FPT2 other) const |
| Returns an orthogonal line to the one it is called on, at a point on the line defined by one of its coordinates. More...
|
|
template<typename FPT2 > |
Line2d_< FPT > | getOrthogLine (const Point2d_< FPT2 > &pt) const |
| Returns an orthogonal line to the one it is called on, at point pt . More...
|
|
template<typename FPT2 > |
OSegment_< FPT > | getOrthogSegment (const Point2d_< FPT2 > &pt) const |
| Returns the segment from the point (not on line) to the line, shortest path. More...
|
|
template<typename FPT2 > |
Line2d_< FPT > | getParallelLine (const Point2d_< FPT2 > &) const |
| Returns an parallel line to the one it is called on, with pt lying on it. More...
|
|
template<typename T > |
std::pair< Line2d_< FPT >, Line2d_< FPT > > | getParallelLines (T dist) const |
| Returns the pair of parallel lines at a distance dist from line. More...
|
|
template<typename FPT2 > |
Point2d_< FPT > | getPoint (GivenCoord gc, FPT2 other) const |
|
template<typename FPT2 , typename FPT3 > |
PointPair_< FPT > | getPoints (GivenCoord gc, FPT2 coord, FPT3 dist) const |
| Returns a pair of points that are lying on line at distance dist from a point defined by one of its coordinates. More...
|
|
template<typename FPT2 , typename FPT3 > |
PointPair_< FPT > | getPoints (const Point2d_< FPT2 > &pt, FPT3 dist) const |
| Returns a pair of points that are lying on line at distance dist from point pt , assuming that one is lying on the line. More...
|
|
template<typename ANY > |
ANY | getPt () const |
| Generic transformation into any other point type, as long as it provides a 2-args constructor (is the case for Opencv and Boost Geometry). More...
|
|
template<typename FPT2 , typename T > |
Line2d_< FPT > | getRotatedLine (const Point2d_< FPT2 > &pt, T theta) const |
| Returns a line rotated at point pt with angle theta . More...
|
|
HOMOG2D_INUMTYPE | getX () const |
|
HOMOG2D_INUMTYPE | getY () const |
|
template<typename FPT2 > |
detail::Intersect< detail::Inters_1, FPT > | intersects (const Line2d_< FPT2 > &other) const |
| Line/Line intersection. More...
|
|
template<typename FPT2 > |
detail::IntersectM< FPT > | intersects (const Point2d_< FPT2 > &pt1, const Point2d_< FPT2 > &pt2) const |
| Line/FRect intersection (rectangle defined by pt1 and pt2 ) More...
|
|
template<typename FPT2 > |
detail::IntersectM< FPT > | intersects (const FRect_< FPT2 > &rect) const |
| Line/FRect intersection. More...
|
|
template<typename FPT2 > |
detail::Intersect< detail::Inters_1, FPT > | intersects (const Segment_< FPT2 > &seg) const |
| Line/Segment intersection. More...
|
|
template<typename T , typename std::enable_if<(std::is_arithmetic< T >::value &&!std::is_same< T, bool >::value), T >::type * = nullptr> |
detail::Intersect< detail::Inters_2, FPT > | intersects (const Point2d_< FPT > &pt0, T radius) const |
| Line/Circle intersection. More...
|
|
template<typename T > |
detail::Intersect< detail::Inters_2, FPT > | intersects (const Circle_< T > &cir) const |
| Line/Circle intersection. More...
|
|
template<typename PLT , typename FPT2 > |
detail::IntersectM< FPT > | intersects (const base::PolylineBase< PLT, FPT2 > &pl) const |
| Line/Polyline intersection. More...
|
|
bool | isInf () const |
| Returns true if point is at infinity (third value less than thr::nullDenom() ) More...
|
|
template<typename T1 , typename T2 > |
bool | isInside (const Point2d_< T1 > &pt1, const Point2d_< T2 > &pt2) const |
| Point is inside flat rectangle. More...
|
|
template<typename FPT2 > |
bool | isInside (const FRect_< FPT2 > &rect) const |
| Point is inside FRect. More...
|
|
template<typename T , typename std::enable_if< !std::is_same_v< T, Point2d_< FPT >>, T >::type * = nullptr> |
bool | isInside (const Point2d_< FPT > ¢er, T radius) const |
| Point is inside circle defined by center and radius. More...
|
|
template<typename T > |
bool | isInside (const Circle_< T > &cir) const |
| Point is inside Circle. More...
|
|
template<typename FPT2 > |
bool | isInside (const Ellipse_< FPT2 > &ell) const |
| Point is inside Ellipse. More...
|
|
template<typename FPT2 , typename PTYPE > |
bool | isInside (const base::PolylineBase< PTYPE, FPT2 > &poly) const |
|
template<typename FPT2 > |
bool | isParallelTo (const Line2d_< FPT2 > &) const |
|
template<typename T > |
bool | isParallelTo (const Segment_< T > &seg) const |
|
HOMOG2D_INUMTYPE | length () const |
| A point has a null length, a line has an infinite length. More...
|
|
template<typename FPT2 > |
| LPBase (const Line2d_< FPT2 > &v1, const Line2d_< FPT2 > &v2) |
| Constructor: build a point from two lines. More...
|
|
template<typename FPT2 > |
| LPBase (const Point2d_< FPT2 > &v1, const Point2d_< FPT2 > &v2) |
| Constructor: build a line from two points. More...
|
|
template<typename T > |
| LPBase (const Line2d_< T > &li) |
| Constructor: copy-constructor for lines. More...
|
|
template<typename T > |
| LPBase (const Point2d_< T > &pt) |
| Constructor with single arg of type "Point". More...
|
|
template<typename T1 , typename T2 > |
| LPBase (const T1 &v1, const T2 &v2) |
| Constructor: build from two numerical values, depends on the type. More...
|
|
template<typename T0 , typename T1 , typename T2 > |
| LPBase (T0 v0, T1 v1, T2 v2) |
| Constructor of line/point from 3 values. More...
|
|
template<typename T1 , typename T2 , typename T3 , typename T4 > |
| LPBase (T1 x1, T2 y1, T3 x2, T4 y2) |
| Constructor of line from 4 values x1,y1,x2,y2. More...
|
|
template<typename T , typename std::enable_if< std::is_same< T, std::array< FPT, 3 >>::value, T >::type * = nullptr> |
| LPBase (const T &arr) |
| Constructor from an array holding 3 values of same type (a direct copy can be done) More...
|
|
template<typename T > |
| LPBase (const T &arr) |
| Constructor from an array/vector holding 3 values of different type. More...
|
|
| LPBase () |
| Default constructor, depends on the type. More...
|
|
template<typename T > |
| LPBase (LineDir orient, T value) |
| Constructor of horizontal/vertical line. More...
|
|
template<typename BFPT > |
| LPBase (const boost::geometry::model::point< BFPT, 2, boost::geometry::cs::cartesian > &pt) |
| Constructor from boost::geometry point type. More...
|
|
template<typename BFPT > |
| LPBase (const boost::geometry::model::d2::point_xy< BFPT > &pt) |
| Constructor from boost::geometry second point type. More...
|
|
template<typename T > |
| LPBase (cv::Point_< T > pt) |
| Constructor: build point or line from a single OpenCv point. More...
|
|
template<typename T1 > |
void | moveTo (const Point2d_< T1 > &pt) |
| Move point to other location (same as set(), but this one will be virtual). Does nothing for lines => NO, FAILS TO BUILD ! More...
|
|
bool | operator!= (const base::LPBase< LP, FPT > &other) const |
|
bool | operator< (const base::LPBase< LP, FPT > &other) const |
| Sorting operator, for points (illegal for lines) More...
|
|
bool | operator== (const base::LPBase< LP, FPT > &other) const |
|
template<typename T0 , typename T1 , typename T2 > |
void | set (T0 v0, T1 v1, T2 v2) |
| Assign homogeneous values. More...
|
|
template<typename BFPT > |
void | set (const boost::geometry::model::point< BFPT, 2, boost::geometry::cs::cartesian > &pt) |
| Set from boost::geometry point type. More...
|
|
template<typename T1 , typename T2 > |
void | set (T1 x, T2 y) |
| Set point from 2 euclidean values. More...
|
|
size_t | size () const |
|
template<typename T1 , typename T2 > |
void | translate (T1 dx, T2 dy) |
| Translate Point2d, does nothing for Line2d. More...
|
|
template<typename T1 , typename T2 > |
void | translate (const std::pair< T1, T2 > &pa) |
| Translate Point2d, does nothing for Line2d. More...
|
|
Type | type () const |
|
std::pair< int, int > | dsize () const |
| Get data size expressed as number of bits for, respectively, mantissa and exponent. More...
|
|
Dtype | dtype () const |
| Get numerical data type as a Dtype value, can be stringified with h2d::getString(Dtype) More...
|
|
template<typename T > |
constexpr bool | isInside (const Common< T > &) const |
| This function is a fallback for all sub-classes that do not provide such a method. More...
|
|
size_t | size () const |
|
virtual | ~Root () |
|