BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members
BALL::TVector2< T > Class Template Reference

#include <BALL/MATHS/vector2.h>

Inheritance diagram for BALL::TVector2< T >:
BALL::PersistentObject BALL::Object BALL::AutoDeletable

Public Member Functions

Constructors and Destructors
 TVector2 ()
 
 TVector2 (const T &value)
 
 TVector2 (const T &vx, const T &vy)
 
 TVector2 (const TVector2 &vector)
 
 TVector2 (const T *ptr)
 
virtual ~TVector2 ()
 
virtual void clear ()
 
Persistence
virtual void persistentWrite (PersistenceManager &pm, const char *name=0) const
 
virtual void persistentRead (PersistenceManager &pm)
 
Arithmetic operators
const TVector2operator+ () const
 
TVector2 operator- () const
 
TVector2 operator+ (const TVector2 &b) const
 
TVector2 operator- (const TVector2 &b) const
 
TVector2operator+= (const TVector2 &vector)
 
TVector2operator-= (const TVector2 &vector)
 
TVector2 operator* (const T &scalar) const
 
TVector2operator*= (const T &scalar)
 
TVector2 operator/ (const T &lambda) const
 
TVector2operator/= (const T &lambda)
 
operator* (const TVector2 &vector) const
 
Geometric properties
getDistance (const TVector2 &vector) const
 
getSquareDistance (const TVector2 &vector) const
 
Predicates
bool operator== (const TVector2 &vector) const
 
bool operator!= (const TVector2 &vector) const
 
bool isZero () const
 
bool isOrthogonalTo (TVector2 &vector) const
 
Debugging and Diagnostics
void dump (std::ostream &s=std::cout, Size depth=0) const
 
bool isValid () const
 
- Public Member Functions inherited from BALL::PersistentObject
 PersistentObject ()
 
virtual ~PersistentObject ()
 
PersistenceManageroperator>> (PersistenceManager &pm) const
 
virtual void finalize ()
 
- Public Member Functions inherited from BALL::Object
 Object ()
 Default constructor. More...
 
 Object (const Object &object)
 Copy constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
const Objectoperator= (const Object &)
 
bool operator== (const Object &object) const
 
bool operator!= (const Object &object) const
 
bool operator< (const Object &object) const
 
bool operator<= (const Object &object) const
 
bool operator>= (const Object &object) const
 
bool operator> (const Object &object) const
 
int compare (const Object &object) const
 
virtual void dump (::std::ostream &s=std::cout, Size depth=0) const
 
Handle getHandle () const
 
- Public Member Functions inherited from BALL::AutoDeletable
virtual ~AutoDeletable ()
 
void * operator new (size_t size)
 
void operator delete (void *ptr)
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *ptr, void *)
 
bool isAutoDeletable () const
 
void setAutoDeletable (bool enable)
 

Public Attributes

Vector components

For easier access, the two components of the vector are public members.

x
 
y
 

Assignment

void set (const T &value)
 
void set (const T &vx, const T &vy)
 
void set (const TVector2 &vector)
 
TVector2operator= (const TVector2 &v)
 
TVector2operator= (const T &value)
 
TVector2operator= (const T *ptr)
 
getLength () const
 
getSquareLength () const
 
TVector2normalize ()
 
TVector2negate ()
 
T & operator[] (Position position)
 
const T & operator[] (Position position) const
 
static const TVector2getZero ()
 
static const TVector2getUnit ()
 

Additional Inherited Members

- Static Public Member Functions inherited from BALL::Object
static Handle getNextHandle ()
 
static Handle getNewHandle ()
 
- Static Public Member Functions inherited from BALL::AutoDeletable
static void clearLastPtr ()
 
- Protected Member Functions inherited from BALL::AutoDeletable
 AutoDeletable ()
 
 AutoDeletable (const AutoDeletable &auto_deletable, bool deep=false)
 

Detailed Description

template<typename T>
class BALL::TVector2< T >

Generic Two-Dimensional Vector.

Definition at line 33 of file vector2.h.

Constructor & Destructor Documentation

template<typename T >
BALL::TVector2< T >::TVector2 ( )

Default constructor. This method creates a new TVector2 object. The two components are initialized to (T)0.

Definition at line 386 of file vector2.h.

template<typename T>
BALL::TVector2< T >::TVector2 ( const T &  value)
explicit

Scalar constructor. Create a new vector with all components set to the same value.

Parameters
valuethe value of all components

Definition at line 394 of file vector2.h.

template<typename T>
BALL::TVector2< T >::TVector2 ( const T &  vx,
const T &  vy 
)

Detailed constructor. Create a new TVector2 object from two variables of type T.

Parameters
vxassigned to x
vyassigned to y

Definition at line 402 of file vector2.h.

template<typename T>
BALL::TVector2< T >::TVector2 ( const TVector2< T > &  vector)

Copy constructor. Create a new TVector2 object from another.

Parameters
vectorthe TVector2 object to be copied

Definition at line 410 of file vector2.h.

template<typename T>
BALL_INLINE BALL::TVector2< T >::TVector2 ( const T *  ptr)

Array constructor. This constructor creates a TVector3 object from the first two elements pointed to by ptr.

Parameters
ptrthe array to construct from
Exceptions
NullPointerif ptr == 0

Definition at line 424 of file vector2.h.

template<typename T >
BALL::TVector2< T >::~TVector2 ( )
virtual

Destructor. Destructs the TVector2 object. As there are no dynamic data structures, nothing happens.

Definition at line 418 of file vector2.h.

Member Function Documentation

template<typename T >
void BALL::TVector2< T >::clear ( )
virtual

Clear method The values are set to 0.

Reimplemented from BALL::Object.

Definition at line 436 of file vector2.h.

template<typename T >
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 .

Parameters
s- output stream where to output the internal state of {*this}
depth- the dumping depth

Definition at line 754 of file vector2.h.

template<typename T >
BALL_INLINE T BALL::TVector2< T >::getDistance ( const TVector2< T > &  vector) const

Return the distance to another vector.

Definition at line 700 of file vector2.h.

template<typename T >
BALL_INLINE T BALL::TVector2< T >::getLength ( ) const

Return the length of the vector. The length of the vector is calculated as $\sqrt{x^2 + y^2}$.

Returns
T, the vector length

Definition at line 517 of file vector2.h.

template<typename T >
BALL_INLINE T BALL::TVector2< T >::getSquareDistance ( const TVector2< T > &  vector) const

Return the squared distance to another vector.

Definition at line 710 of file vector2.h.

template<typename T >
BALL_INLINE 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.

Returns
T, $x^2 + y^2$

Definition at line 524 of file vector2.h.

template<typename T >
BALL_INLINE const TVector2< T > & BALL::TVector2< T >::getUnit ( )
static

Return a vector with all components 1.

Returns
: TVector4(1, 1, 1, 1)

Definition at line 563 of file vector2.h.

template<typename T >
BALL_INLINE const TVector2< T > & BALL::TVector2< T >::getZero ( )
static

Return a vector with all components 0.

Definition at line 555 of file vector2.h.

template<typename T >
BALL_INLINE bool BALL::TVector2< T >::isOrthogonalTo ( TVector2< T > &  vector) const

Orthogonality predicate.

Definition at line 734 of file vector2.h.

template<typename T >
BALL_INLINE bool BALL::TVector2< T >::isValid ( ) const
virtual

Test if instance is valid. Always returns true.

Returns
bool true

Reimplemented from BALL::Object.

Definition at line 741 of file vector2.h.

template<typename T >
BALL_INLINE bool BALL::TVector2< T >::isZero ( ) const

Zero predicate. The function Maths::isZero is used to compare the values with zero. Maths::isZero

Definition at line 748 of file vector2.h.

template<typename T >
TVector2< T > & BALL::TVector2< T >::negate ( )

Negate the vector. Negate the two components of the vector

Returns
T, a reference to {*this} vector

Definition at line 546 of file vector2.h.

template<typename T >
TVector2< T > & BALL::TVector2< T >::normalize ( )

Normalize the vector. The vector is scaled with its length: $\{x|y|z\} *= \sqrt{x^2 + y^2}$.

Returns
T, a reference to the normalized vector
Exceptions
DivisionByZeroif the length of the vector is 0

Definition at line 530 of file vector2.h.

template<typename T >
BALL_INLINE bool BALL::TVector2< T >::operator!= ( const TVector2< T > &  vector) const

Inequality operator. The function Maths::isEqual is used to compare the values. Maths::isEqual

Returns
bool, true if the two vectors differ in at least one component, false otherwise

Definition at line 727 of file vector2.h.

template<typename T>
BALL_INLINE 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.

Parameters
scalar,thescalar to multiply by
Returns
TVector2, the scalar product of this vector and scalar

Definition at line 653 of file vector2.h.

template<typename T>
BALL_INLINE T BALL::TVector2< T >::operator* ( const TVector2< T > &  vector) const

Dot product. Return the dot product of this vector and vector.

Definition at line 693 of file vector2.h.

template<typename T>
BALL_INLINE TVector2< T > & BALL::TVector2< T >::operator*= ( const T &  scalar)

Multiply by a scalar. Multiply all components of the vector by a scalar value.

Parameters
scalarthe to multiply by
Returns
TVector2&, {*this}

Definition at line 660 of file vector2.h.

template<typename T >
BALL_INLINE const TVector2< T > & BALL::TVector2< T >::operator+ ( ) const

Positive sign.

Definition at line 605 of file vector2.h.

template<typename T >
BALL_INLINE TVector2< T > BALL::TVector2< T >::operator+ ( const TVector2< T > &  b) const

Addition.

Definition at line 619 of file vector2.h.

template<typename T >
BALL_INLINE TVector2< T > & BALL::TVector2< T >::operator+= ( const TVector2< T > &  vector)

Add a vector to this vector. Add the components of vector to this vector.

Parameters
vectorthe vector to add
Returns
TVector2&, {*this}

Definition at line 633 of file vector2.h.

template<typename T >
BALL_INLINE TVector2< T > BALL::TVector2< T >::operator- ( ) const

Negative sign.

Definition at line 612 of file vector2.h.

template<typename T >
BALL_INLINE TVector2< T > BALL::TVector2< T >::operator- ( const TVector2< T > &  b) const

Subtraction.

Definition at line 626 of file vector2.h.

template<typename T >
BALL_INLINE TVector2< T > & BALL::TVector2< T >::operator-= ( const TVector2< T > &  vector)

Subtract a vector from this vector.

Parameters
vectorthe vector to subtract
Returns
TVector2&, {*this}

Definition at line 643 of file vector2.h.

template<typename T>
TVector2< T > BALL::TVector2< T >::operator/ ( const T &  lambda) const

Fraction of a vector. Return TVector2(x / lambda, y / lambda).

Parameters
lambdathe scalar value to divide by
Returns
TVector2&
Exceptions
Exception::DivisionByZeroif lambda == (T)0

Definition at line 669 of file vector2.h.

template<typename T>
TVector2< T > & BALL::TVector2< T >::operator/= ( const T &  lambda)

Divide a vector by a scalar.

Parameters
lambdathe scalar value to divide by
Returns
TVector2&, {*this}
Exceptions
Exception::DivisionByZeroif lambda == (T)0

Definition at line 679 of file vector2.h.

template<typename T >
BALL_INLINE TVector2< T > & BALL::TVector2< T >::operator= ( const TVector2< T > &  v)

Assignment operator. Assign the vector components from another vector.

Parameters
vthe vector to assign from

Definition at line 483 of file vector2.h.

template<typename T>
BALL_INLINE TVector2< T > & BALL::TVector2< T >::operator= ( const T &  value)

Assignment operator. Assign a constant value to the two vector components.

Parameters
valuethe constant to assign to x, y

Definition at line 507 of file vector2.h.

template<typename T>
BALL_INLINE TVector2< T > & BALL::TVector2< T >::operator= ( const T *  ptr)

Array assignment operator. Assigns the first two elements of an array to the vector components.

Parameters
ptrthe array
Exceptions
NullPointerif ptr == 0

Definition at line 493 of file vector2.h.

template<typename T >
BALL_INLINE bool BALL::TVector2< T >::operator== ( const TVector2< T > &  vector) const

Equality operator. The function Maths::isEqual is used to compare the values. Maths::isEqual

Returns
bool, true if all two vector components are equal, false otherwise

Definition at line 720 of file vector2.h.

template<typename T >
BALL_INLINE T & BALL::TVector2< T >::operator[] ( Position  position)

Mutable array-like access to the components.

Exceptions
Exception::IndexOverflowif index > 1

Definition at line 571 of file vector2.h.

template<typename T >
BALL_INLINE const T & BALL::TVector2< T >::operator[] ( Position  position) const

Constant array-like access to the components.

Exceptions
Exception::IndexOverflowif index > 1

Definition at line 588 of file vector2.h.

template<typename T >
void BALL::TVector2< T >::persistentRead ( PersistenceManager pm)
virtual

Persistent reading. Reads a TVector2 object from a persistent stream.

Parameters
pmthe persistence manager
Exceptions
Exception::GeneralException

Reimplemented from BALL::PersistentObject.

Definition at line 451 of file vector2.h.

template<typename T >
void BALL::TVector2< T >::persistentWrite ( PersistenceManager pm,
const char *  name = 0 
) const
virtual

Persistent writing. Writes a TVector2 object to a persistent stream.

Parameters
pmthe persistence manager

Reimplemented from BALL::PersistentObject.

Definition at line 442 of file vector2.h.

template<typename T>
BALL_INLINE void BALL::TVector2< T >::set ( const T &  value)

Assign from a scalar. Assign value to the two vector components.

Parameters
valuethe new value of the components

Definition at line 459 of file vector2.h.

template<typename T>
BALL_INLINE void BALL::TVector2< T >::set ( const T &  vx,
const T &  vy 
)

Assign the vector components.

Parameters
vxthe new x component
vythe new y component

Definition at line 467 of file vector2.h.

template<typename T>
BALL_INLINE void BALL::TVector2< T >::set ( const TVector2< T > &  vector)

Assign from another TVector2.

Parameters
vectorthe TVector2 object to assign from

Definition at line 475 of file vector2.h.

Member Data Documentation

template<typename T>
T BALL::TVector2< T >::x

x component of the vector

Definition at line 372 of file vector2.h.

template<typename T>
T BALL::TVector2< T >::y

y component of the vector

Definition at line 376 of file vector2.h.