Ipelib
ipe::Vector Class Reference

`#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

double x

double y

## Static Public Attributes

static Vector ZERO = Vector(0.0, 0.0)

## Related Functions

(Note that these are not member functions.)

Streamoperator<< (Stream &stream, const Vector &rhs)

Vector operator* (double lhs, const Vector &rhs)

double dot (const Vector &lhs, const Vector &rhs)

## Detailed Description

Two-dimensional vector.

Unlike some other libraries, I don't make a difference between points and vectors.

## ◆ Vector() [1/3]

 ipe::Vector::Vector ( )
inline

Uninitialized vector.

Referenced by ipe::Angle::liesBetween().

## ◆ Vector() [2/3]

 Vector::Vector ( Angle alpha )
explicit

Construct a unit vector with this direction.

## ◆ Vector() [3/3]

 ipe::Vector::Vector ( double x0, double y0 )
inlineexplicit

Construct a vector.

## ◆ sqLen()

 double ipe::Vector::sqLen ( ) const
inline

Return square of Euclidean length.

Return square of vector's length.

Referenced by ipe::TransformTool::compute(), ipe::Line::Line(), and ipe::Snap::snap().

## ◆ len()

 double Vector::len ( ) const

## ◆ angle()

 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.

References ipe::Angle::Angle(), and ZERO.

## ◆ normalized()

 Vector Vector::normalized ( ) const

Return this vector normalized (with length one).

Normalizing the zero vector returns the vector (1,0).

Referenced by ipe::Arc::distance().

## ◆ orthogonal()

 Vector Vector::orthogonal ( ) const

Return this vector turned 90 degrees to the left.

## ◆ factorize()

 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).

Referenced by ipe::Segment::distance(), and ipe::Segment::project().

## ◆ snap()

 bool Vector::snap ( const Vector & mouse, Vector & pos, double & bound ) const

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 ipe::Rect::Rect(), x, and y.

Referenced by ipe::Segment::snap(), ipe::Bezier::snap(), and ipe::CanvasBase::snapToPaperAndFrame().

## ◆ operator==()

 bool ipe::Vector::operator== ( const Vector & rhs ) const
inline

Equality.

References x, and y.

## ◆ operator!=()

 bool ipe::Vector::operator!= ( const Vector & rhs ) const
inline

Inequality.

References x, and y.

## ◆ operator+=()

 void ipe::Vector::operator+= ( const Vector & rhs )
inline

Vector-addition.

References x, and y.

## ◆ operator-=()

 void ipe::Vector::operator-= ( const Vector & rhs )
inline

Vector-subtraction.

References x, and y.

## ◆ operator*=()

 void ipe::Vector::operator*= ( double rhs )
inline

Multiply vector by scalar.

## ◆ operator+()

 Vector ipe::Vector::operator+ ( const Vector & rhs ) const
inline

Vector-addition.

## ◆ operator-() [1/2]

 Vector ipe::Vector::operator- ( const Vector & rhs ) const
inline

Vector-subtraction.

## ◆ operator*()

 Vector ipe::Vector::operator* ( double rhs ) const
inline

Vector * scalar.

## ◆ operator-() [2/2]

 Vector ipe::Vector::operator- ( ) const
inline

Unary minus for Vector.

## ◆ operator<<()

 Stream & operator<< ( Stream & stream, const Vector & rhs )
related

## ◆ operator*()

 Vector operator* ( double lhs, const Vector & rhs )
related

Scalar * vector.

References x, and y.

## ◆ dot()

 double dot ( const Vector & lhs, const Vector & rhs )
related

Dotproduct of two vectors.

References x, and y.

## ◆ ZERO

 Vector Vector::ZERO = Vector(0.0, 0.0)
static

The origin (zero vector).

## ◆ y

The documentation for this class was generated from the following files:
• ipegeo.h
• ipegeo.cpp