Ipelib
|
#include <ipegeo.h>
Public Member Functions | |
Segment () | |
Segment (const Vector &p, const Vector &q) | |
Line | line () const |
double | distance (const Vector &v, double bound) const |
double | distance (const Vector &v) const |
bool | project (const Vector &v, Vector &projection) const |
bool | intersects (const Segment &seg, Vector &pt) const |
bool | intersects (const Line &l, Vector &pt) const |
bool | snap (const Vector &mouse, Vector &pos, double &bound) const |
Public Attributes | |
Vector | iP |
Vector | iQ |
A directed line segment.
|
inline |
Create uninitialized segment.
|
inline |
Return directed line supporting the segment.
Referenced by ipe::Arc::intersect(), intersects(), and ipe::Snap::setEdge().
double Segment::distance | ( | const Vector & | v, |
double | bound | ||
) | const |
Returns distance between segment and point v, but may just return bound when its larger than bound.
Referenced by ipe::CurveSegment::distance().
double Segment::distance | ( | const Vector & | v | ) | const |
Returns distance between segment and point v
References ipe::Vector::factorize(), iP, and iQ.
Project point v orthogonally on segment. Returns false if the point falls outside the segment.
References ipe::Vector::factorize(), iP, and iQ.
Referenced by snap().
Compute intersection point. Return false
if segs don't intersect.
References iP, iQ, and line().
Referenced by intersects().
Compute intersection point. Return false
if no intersection.
References intersects(), iP, iQ, and line().
Snap mouse position to this segment.
If distance between mouse and the segment is less than bound, then set pos to the point on the segment, bound to the distance, and return true.
References iP, iQ, project(), and ipe::Vector::snap().
Referenced by ipe::CurveSegment::snapBnd(), and ipe::CanvasBase::snapToPaperAndFrame().
Vector ipe::Segment::iP |
First endpoint.
Referenced by distance(), ipe::Bezier::intersect(), ipe::Arc::intersect(), intersects(), line(), project(), ipe::Snap::setEdge(), ipe::Shape::Shape(), and snap().
Vector ipe::Segment::iQ |
Second endpoint.
Referenced by distance(), ipe::Bezier::intersect(), ipe::Arc::intersect(), intersects(), line(), project(), ipe::Snap::setEdge(), ipe::Shape::Shape(), and snap().