#include <vector2.h>
Public Member Functions |
|
Constructors and Destructors
|
|
TVector2 () | |
Default constructor. |
|
TVector2 (const T &value) | |
Scalar constructor. |
|
TVector2 (const T &vx, const T &vy) | |
Detailed constructor. |
|
TVector2 (const TVector2 &vector) | |
Copy constructor. |
|
TVector2 (const T *ptr) throw (Exception::NullPointer) | |
Array constructor. |
|
virtual | ~TVector2 () |
Destructor. |
|
virtual void | clear () |
Clear method The values are set to
0. |
|
Persistence
|
|
virtual void | persistentWrite (PersistenceManager &pm, const char *name=0) const throw (Exception::GeneralException) |
Persistent writing. |
|
virtual void | persistentRead (PersistenceManager &pm) throw (Exception::GeneralException) |
Persistent reading. |
|
Arithmetic operators
|
|
const TVector2 & | operator+ () const |
Positive sign. |
|
TVector2 | operator- () const |
Negative sign. |
|
TVector2 | operator+ (const TVector2 &b) const |
Addition. |
|
TVector2 | operator- (const TVector2 &b) const |
Subtraction. |
|
TVector2 & | operator+= (const TVector2 &vector) |
Add a vector to this vector.
|
|
TVector2 & | operator-= (const TVector2 &vector) |
Subtract a vector from this vector.
|
|
TVector2 | operator* (const T &scalar) const |
Scalar product. |
|
TVector2 & | operator*= (const T &scalar) |
Multiply by a scalar. |
|
TVector2 | operator/ (const T &lambda) const throw (Exception::DivisionByZero) |
Fraction of a vector. |
|
TVector2 & | operator/= (const T &lambda) throw (Exception::DivisionByZero) |
Divide a vector by a scalar.
|
|
T | operator* (const TVector2 &vector) const |
Dot product. |
|
Geometric properties
|
|
T | getDistance (const TVector2 &vector) const |
Return the distance to another
vector. |
|
T | getSquareDistance (const TVector2 &vector) const |
Return the squared distance to
another vector. |
|
Predicates
|
|
bool | operator== (const TVector2 &vector) const |
Equality operator. |
|
bool | operator!= (const TVector2 &vector) const |
Inequality operator. |
|
bool | isZero () const |
Zero predicate. |
|
bool | isOrthogonalTo (TVector2 &vector) const |
Orthogonality predicate. |
|
Debugging and Diagnostics
|
|
void | dump (std::ostream &s=std::cout, Size depth=0) const |
Internal state dump. |
|
bool | isValid () const |
Test if instance is valid. |
|
Public Attributes |
|
Vector components
|
|
For easier access, the two components of the vector are
public members.
|
|
T | x |
x component of the vector |
|
T | y |
y component of the vector |
|
Assignment |
|
void | set (const T &value) |
Assign from a scalar. |
|
void | set (const T &vx, const T &vy) |
Assign the vector components.
|
|
void | set (const TVector2 &vector) |
Assign from another TVector2. |
|
TVector2 & | operator= (const TVector2 &v) |
Assignment operator. |
|
TVector2 & | operator= (const T &value) |
Assignment operator. |
|
TVector2 & | operator= (const T *ptr) throw (Exception::NullPointer) |
Array assignment operator. |
|
T | getLength () const |
Return the length of the vector.
|
|
T | getSquareLength () const |
Return the squared length of the
vector. |
|
TVector2 & | normalize () throw (Exception::DivisionByZero) |
Normalize the vector. |
|
TVector2 & | negate () |
Negate the vector. |
|
T & | operator[] (Position position) throw (Exception::IndexOverflow) |
Mutable array-like access to the
components. |
|
const T & | operator[] (Position position) const throw (Exception::IndexOverflow) |
Constant
array-like access to the components. |
|
static const TVector2 & | getZero () |
Return a vector with all components
0. |
|
static const TVector2 & | getUnit () |
Return a vector with all components
1. |
BALL::TVector2< T >::TVector2 | ( | ) |
Default constructor.
This method creates a new TVector2 object. The
two components are initialized to (T)0
.
BALL::TVector2< T >::TVector2 | ( | const T & | value | ) | [explicit] |
Scalar constructor.
Create a new vector with all components set to the same
value
.
value | the value of all components |
BALL::TVector2< T >::TVector2 | ( | const T & | vx, | |
const T & | vy | |||
) |
Detailed constructor.
Create a new TVector2 object from
two variables of type T
.
vx | assigned to x |
|
vy | assigned to y |
BALL::TVector2< T >::TVector2 | ( | const TVector2< T > & | vector | ) |
BALL::TVector2< T >::TVector2 | ( | const T * | ptr | ) | throw (Exception::NullPointer) |
Array constructor.
This constructor creates a TVector3 object
from the first two elements pointed to by
ptr
.
ptr | the array to construct from |
NullPointer | if ptr == 0 |
BALL::TVector2< T >::~TVector2 | ( | ) | [virtual] |
Destructor.
Destructs the TVector2 object. As there are no dynamic data structures, nothing happens.
void BALL::TVector2< T >::dump | ( | std::ostream & | s =
std::cout , |
|
Size | depth =
0 |
|||
) | const |
Internal state dump.
Dump the current internal state of {*this} to the output ostream s with dumping depth depth .
s | - output stream where to output the internal state of {*this} | |
depth | - the dumping depth |
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
T BALL::TVector2< T >::getLength | ( | ) | const |
Return the length of the vector.
The length of the vector is calculated as .
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
T BALL::TVector2< T >::getSquareLength | ( | ) | const |
Return the squared length of the vector.
This method avoids the square root needed in getLength, so this method is preferred if possible.
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
const TVector2< T > & BALL::TVector2< T >::getUnit | ( | ) | [static] |
Return a vector with all components 1.
bool BALL::TVector2< T >::isValid | ( | ) | const [virtual] |
bool BALL::TVector2< T >::isZero | ( | ) | const |
Zero predicate.
The function Maths::isZero is used to compare the values with zero. Maths::isZero
References BALL::Maths::isZero(), BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
Referenced by BALL::TVector2< T >::isOrthogonalTo().
TVector2< T > & BALL::TVector2< T >::negate | ( | ) |
Negate the vector.
Negate the two components of the vector
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
TVector2< T > & BALL::TVector2< T >::normalize | ( | ) | throw (Exception::DivisionByZero) |
Normalize the vector.
The vector is scaled with its length: .
DivisionByZero | if the length of the vector is 0 |
References BALL::Maths::isZero(), BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
bool BALL::TVector2< T >::operator!= | ( | const TVector2< T > & | vector | ) | const |
Inequality operator.
The function Maths::isEqual is used to compare the values. Maths::isEqual
References BALL::Maths::isNotEqual(), BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
T BALL::TVector2< T >::operator* | ( | const TVector2< T > & | vector | ) | const |
Dot product.
Return the dot product of this vector and
vector
.
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
TVector2< T > BALL::TVector2< T >::operator* | ( | const T & | scalar | ) | const |
Scalar product.
Return TVector2(x * scalar, y * scalar)
.
The symmetric case is a global function.
scalar,the | scalar to multiply by |
scalar
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
TVector2< T > & BALL::TVector2< T >::operator*= | ( | const T & | scalar | ) |
Multiply by a scalar.
Multiply all components of the vector by a
scalar
value.
scalar | the to multiply by |
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
TVector2< T > & BALL::TVector2< T >::operator+= | ( | const TVector2< T > & | vector | ) |
Add a vector to this vector.
Add the components of vector
to this
vector.
vector | the vector to add |
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
TVector2< T > & BALL::TVector2< T >::operator-= | ( | const TVector2< T > & | vector | ) |
Subtract a vector from this vector.
vector | the vector to subtract |
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
TVector2< T > BALL::TVector2< T >::operator/ | ( | const T & | lambda | ) | const throw (Exception::DivisionByZero) |
Fraction of a vector.
Return TVector2(x / lambda,
y / lambda)
.
lambda | the scalar value to divide by |
Exception::DivisionByZero | if lambda == (T)0 |
TVector2< T > & BALL::TVector2< T >::operator/= | ( | const T & | lambda | ) | throw (Exception::DivisionByZero) |
Divide a vector by a scalar.
lambda | the scalar value to divide by |
Exception::DivisionByZero | if lambda == (T)0 |
TVector2< T > & BALL::TVector2< T >::operator= | ( | const T * | ptr | ) | throw (Exception::NullPointer) |
Array assignment operator.
Assigns the first two elements of an array to the vector components.
ptr | the array |
NullPointer | if ptr == 0 |
TVector2< T > & BALL::TVector2< T >::operator= | ( | const T & | value | ) |
Assignment operator.
Assign a constant value to the two vector components.
value | the constant to assign to x, y |
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
TVector2< T > & BALL::TVector2< T >::operator= | ( | const TVector2< T > & | v | ) |
Assignment operator.
Assign the vector components from another vector.
v | the vector to assign from |
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
bool BALL::TVector2< T >::operator== | ( | const TVector2< T > & | vector | ) | const |
Equality operator.
The function Maths::isEqual is used to compare the values. Maths::isEqual
References BALL::Maths::isEqual(), BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
const T & BALL::TVector2< T >::operator[] | ( | Position | position | ) | const throw (Exception::IndexOverflow) |
Constant array-like access to the components.
Exception::IndexOverflow | if index > 1 |
T & BALL::TVector2< T >::operator[] | ( | Position | position | ) | throw (Exception::IndexOverflow) |
Mutable array-like access to the components.
Exception::IndexOverflow | if index > 1 |
void BALL::TVector2< T >::persistentRead | ( | PersistenceManager & | pm | ) | throw (Exception::GeneralException)
[virtual] |
Persistent reading.
Reads a TVector2 object from a persistent stream.
pm | the persistence manager |
Reimplemented from BALL::PersistentObject.
void BALL::TVector2< T >::persistentWrite | ( | PersistenceManager & | pm, | |
const char * | name =
0 |
|||
) | const throw (Exception::GeneralException)
[virtual] |
Persistent writing.
Writes a TVector2 object to a persistent stream.
pm | the persistence manager |
Reimplemented from BALL::PersistentObject.
void BALL::TVector2< T >::set | ( | const TVector2< T > & | vector | ) |
Assign from another TVector2.
vector | the TVector2 object to assign from |
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
void BALL::TVector2< T >::set | ( | const T & | vx, | |
const T & | vy | |||
) |
Assign the vector components.
vx | the new x component | |
vy | the new y component |
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
void BALL::TVector2< T >::set | ( | const T & | value | ) |
Assign from a scalar.
Assign value
to the two vector
components.
value | the new value of the components |
References BALL::TVector2< T >::x, and BALL::TVector2< T >::y.
Referenced by BALL::TRegularData2D< ValueType >::clear(), and BALL::TFFT2D< ComplexTraits >::getGridCoordinates().