|
Ipelib
|
#include <ipegeo.h>
Public Member Functions | |
| Vector () | |
| Vector (Angle alpha) | |
| Vector (double x0, double y0) | |
| double | sqLen () const |
| double | len () const |
| Angle | angle () const |
| Vector | normalized () const |
| Vector | orthogonal () const |
| double | factorize (Vector &unit) const |
| bool | snap (const Vector &mouse, Vector &pos, double &bound) const |
| bool | operator== (const Vector &rhs) const |
| bool | operator!= (const Vector &rhs) const |
| void | operator+= (const Vector &rhs) |
| void | operator-= (const Vector &rhs) |
| void | operator*= (double rhs) |
| Vector | operator+ (const Vector &rhs) const |
| Vector | operator- (const Vector &rhs) const |
| Vector | operator* (double rhs) const |
| Vector | operator- () const |
Public Attributes | |
| double | x |
| double | y |
Static Public Attributes | |
| static Vector | ZERO = Vector(0.0, 0.0) |
Related Functions | |
(Note that these are not member functions.) | |
| Stream & | operator<< (Stream &stream, const Vector &rhs) |
| Vector | operator* (double lhs, const Vector &rhs) |
| double | dot (const Vector &lhs, const Vector &rhs) |
Two-dimensional vector.
Unlike some other libraries, I don't make a difference between points and vectors.
|
inline |
Uninitialized vector.
Referenced by factorize(), normalized(), and orthogonal().
|
explicit |
|
inlineexplicit |
Construct a vector.
|
inline |
Return square of Euclidean length.
Return square of vector's length.
Referenced by ipe::TransformTool::compute(), factorize(), len(), ipe::Line::Line(), normalized(), and ipe::Snap::snap().
| double Vector::len | ( | ) | const |
References sqLen().
Referenced by ipe::Line::distance(), factorize(), ipe::Snap::getLine(), normalized(), and snap().
| Angle Vector::angle | ( | ) | const |
Return angle of the vector (with positive x-direction).
The returned angle lies between -pi and +pi. Returns zero for the zero vector.
Referenced by ipe::TransformTool::compute(), ipe::Arc::distance(), ipe::Snap::getLine(), ipe::Arc::intersect(), and ipe::Snap::setEdge().
| Vector Vector::normalized | ( | ) | const |
Return this vector normalized (with length one).
Normalizing the zero vector returns the vector (1,0).
References len(), sqLen(), and Vector().
Referenced by ipe::Arc::distance().
| Vector Vector::orthogonal | ( | ) | const |
| double Vector::factorize | ( | Vector & | unit | ) | const |
Normalizes this vector into unit and returns length. If this is the zero vector, unit is set to (1,0).
References len(), sqLen(), and Vector().
Referenced by ipe::Segment::distance(), and ipe::Segment::project().
Snap to nearby vertex.
If distance between mouse and this vector is less than bound, set pos to this vector and bound to the distance, and return true.
References len().
Referenced by ipe::Segment::snap(), ipe::Bezier::snap(), and ipe::CanvasBase::snapToPaperAndFrame().
The origin (zero vector).
Referenced by ipe::CanvasBase::CanvasBase(), ipe::CairoPainter::doDrawText(), ipe::CanvasBase::drawGrid(), ipe::PanTool::PanTool(), ipe::PdfViewBase::PdfViewBase(), ipe::Reference::Reference(), ipe::Reference::saveAsXml(), ipe::CanvasBase::snapToPaperAndFrame(), and ipe::Text::Text().
| double ipe::Vector::x |
Coordinates are public.
Referenced by ipe::Rect::addPoint(), ipe::Rect::addRect(), ipe::Text::align(), angle(), ipe::Rect::bottomRight(), ipe::Rect::certainClearance(), ipe::Rect::clear(), ipe::Rect::clipTo(), ipe::TransformTool::compute(), ipe::CanvasBase::computeFifi(), ipe::Rect::contains(), ipe::CanvasBase::devToUser(), ipe::PdfViewBase::devToUser(), ipe::CairoPainter::doCurveTo(), ipe::CairoPainter::doDrawPath(), ipe::CairoPainter::doDrawText(), ipe::CairoPainter::doLineTo(), ipe::CairoPainter::doMoveTo(), dot(), ipe::SelectTool::draw(), ipe::Image::draw(), ipe::CanvasBase::drawAxes(), ipe::CanvasBase::drawFrame(), ipe::CanvasBase::drawGrid(), ipe::CanvasBase::drawObjects(), ipe::CanvasBase::drawPaper(), ipe::Rect::intersects(), ipe::Rect::isEmpty(), ipe::Layout::isNull(), ipe::Layout::Layout(), ipe::Rect::left(), ipe::Matrix::Matrix(), ipe::SelectTool::mouseButton(), ipe::Line::normal(), operator!=(), ipe::Linear::operator*(), ipe::Matrix::operator*(), operator*(), operator*=(), operator+=(), operator-=(), operator==(), orthogonal(), ipe::ImlParser::parseStyle(), ipe::QPt(), ipe::Reference::Reference(), ipe::CanvasBase::refreshSurface(), ipe::PdfViewBase::refreshSurface(), ipe::Thumbnail::render(), ipe::Rect::right(), ipe::Text::saveAsXml(), ipe::Thumbnail::saveRender(), ipe::Shape::Shape(), ipe::Snap::simpleSnap(), ipe::Bezier::spiroSpline(), sqLen(), ipe::Text::Text(), ipe::Rect::topLeft(), ipe::TransformTool::TransformTool(), ipe::Painter::translate(), ipe::CanvasBase::userToDev(), ipe::PdfViewBase::userToDev(), Vector(), and ipe::Rect::width().
| double ipe::Vector::y |
Coordinates are public.
Referenced by ipe::Rect::addPoint(), ipe::Rect::addRect(), ipe::Text::align(), angle(), ipe::Rect::bottom(), ipe::Rect::bottomRight(), ipe::Rect::certainClearance(), ipe::Rect::clear(), ipe::Rect::clipTo(), ipe::TransformTool::compute(), ipe::CanvasBase::computeFifi(), ipe::Rect::contains(), ipe::CanvasBase::devToUser(), ipe::PdfViewBase::devToUser(), ipe::CairoPainter::doCurveTo(), ipe::CairoPainter::doDrawPath(), ipe::CairoPainter::doDrawText(), ipe::CairoPainter::doLineTo(), ipe::CairoPainter::doMoveTo(), dot(), ipe::SelectTool::draw(), ipe::Image::draw(), ipe::CanvasBase::drawAxes(), ipe::CanvasBase::drawFrame(), ipe::CanvasBase::drawGrid(), ipe::CanvasBase::drawObjects(), ipe::CanvasBase::drawPaper(), ipe::Rect::height(), ipe::Rect::intersects(), ipe::Matrix::Matrix(), ipe::Line::normal(), operator!=(), ipe::Linear::operator*(), ipe::Matrix::operator*(), operator*(), operator*=(), operator+=(), operator-=(), operator==(), orthogonal(), ipe::ImlParser::parseStyle(), ipe::QPt(), ipe::Reference::Reference(), ipe::CanvasBase::refreshSurface(), ipe::PdfViewBase::refreshSurface(), ipe::Thumbnail::render(), ipe::Text::saveAsXml(), ipe::Thumbnail::saveRender(), ipe::Shape::Shape(), ipe::Snap::simpleSnap(), ipe::Bezier::spiroSpline(), sqLen(), ipe::Text::Text(), ipe::Rect::top(), ipe::Rect::topLeft(), ipe::TransformTool::TransformTool(), ipe::Painter::translate(), ipe::CanvasBase::userToDev(), ipe::PdfViewBase::userToDev(), and Vector().