sparkle::Vector< T > Class Template Reference
[Sparkle Helper Library]

A proper 3D geometric vector implementation. More...

#include <maths.h>

Collaboration diagram for sparkle::Vector< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

ctors/dtor
 Vector (T startX, T startY, T startZ=0)
 Vector (const Vector &copyVector)
 Vector (VecXY copyVecXY)
 Vector (bool status=true)
Setters
Not necessarily const

void setX (T newX)
void setY (T newY)
void setZ (T newZ)
Getters
Not necessarily const

T getX () const
T getY () const
T getZ () const
T getLength () const
bool isReal () const
Operators
Vector & operator= (const Vector &vec)
Vector & operator= (const VecXY &vecxy)
bool operator== (const Vector &vec) const
const Vector & operator+ (const Vector &vec) const
Vector & operator+= (const Vector &vec)
const Vector & operator- (const Vector &vec) const
Vector & operator-= (const Vector &vec)
const double operator * (const Vector &vec) const
 Dot (scalar) product.
const Vector & operator^ (const Vector &vec) const
 Cross (vector) product.
const Vector< double > & operator^ (const double &scalar) const
Vector< double > & operator^= (const double &scalar)
const Vector< double > & operator * (const double &scalar) const
Vector< double > & operator *= (const double &scalar)
const Vector< double > & operator/ (const double &scalar) const
Vector< double > & operator/= (const double &scalar)
const Vector< double > & operator% (const double &scalar) const
Vector< double > & operator%= (const double &scalar)

Protected Attributes

T x
T y
T z
bool real

Detailed Description

template<class T>
class sparkle::Vector< T >

A proper 3D geometric vector implementation.


Constructor & Destructor Documentation

template<class T>
sparkle::Vector< T >::Vector (  T  startX,
T  startY,
T  startZ = 0
)  [inline]
 

Constructor

Parameters:
startX Initial X value
startY Initial Y value
startZ Initial Z value


Member Function Documentation

template<class T>
Vector& sparkle::Vector< T >::operator= (  const Vector< T > &  vec  )  [inline]
 

Set

template<class T>
Vector& sparkle::Vector< T >::operator= (  const VecXY &  vecxy  )  [inline]
 

Set

template<class T>
bool sparkle::Vector< T >::operator== (  const Vector< T > &  vec  )  const [inline]
 

See if dimensions equate

template<class T>
const Vector& sparkle::Vector< T >::operator+ (  const Vector< T > &  vec  )  const [inline]
 

Add two vectors

template<class T>
Vector& sparkle::Vector< T >::operator+= (  const Vector< T > &  vec  )  [inline]
 

Add a vector to this one

template<class T>
const Vector& sparkle::Vector< T >::operator- (  const Vector< T > &  vec  )  const [inline]
 

Subtract one vector from another

template<class T>
Vector& sparkle::Vector< T >::operator-= (  const Vector< T > &  vec  )  [inline]
 

Subtract a vector from this one

template<class T>
const double sparkle::Vector< T >::operator * (  const Vector< T > &  vec  )  const [inline]
 

Dot (scalar) product.

Dot (scalar) product

template<class T>
const Vector& sparkle::Vector< T >::operator^ (  const Vector< T > &  vec  )  const [inline]
 

Cross (vector) product.

Cross (vector) product

template<class T>
const Vector<double>& sparkle::Vector< T >::operator^ (  const double &  scalar  )  const [inline]
 

Multiply vector by a scale factor Same as Vector::operator*

template<class T>
Vector<double>& sparkle::Vector< T >::operator^= (  const double &  scalar  )  [inline]
 

Multiply vector by a scale factor Same as Vector::operator*

template<class T>
const Vector<double>& sparkle::Vector< T >::operator * (  const double &  scalar  )  const [inline]
 

Multiply vector by a scale factor Same as Vector::operator^

template<class T>
Vector<double>& sparkle::Vector< T >::operator *= (  const double &  scalar  )  [inline]
 

Same as Vector::operator^

template<class T>
const Vector<double>& sparkle::Vector< T >::operator/ (  const double &  scalar  )  const [inline]
 

Divide vector by a scale factor

template<class T>
Vector<double>& sparkle::Vector< T >::operator/= (  const double &  scalar  )  [inline]
 

Divide vector by a scale factor

Warning:
sparkle::Vector<int> vec(2,4,8);
vec = (vec/3.0)*3.0; 
Will lose information as int(int/double). See Vector::operator%

template<class T>
const Vector<double>& sparkle::Vector< T >::operator% (  const double &  scalar  )  const [inline]
 

Modulus of vector by scale factor

template<class T>
Vector<double>& sparkle::Vector< T >::operator%= (  const double &  scalar  )  [inline]
 

Modulus of vector by scale factor


Hosted by SourceForge.net Logo Generated on Sat Sep 16 01:51:09 2006 for Sparkle by Doxygen 1.4.6.