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

getX () const
getY () const
getZ () const
getLength () const
bool isReal () const
Operators
Vectoroperator= (const Vector &vec)
Vectoroperator= (const VecXY &vecxy)
bool operator== (const Vector &vec) const
const Vectoroperator+ (const Vector &vec) const
Vectoroperator+= (const Vector &vec)
const Vectoroperator- (const Vector &vec) const
Vectoroperator-= (const Vector &vec)
const double operator * (const Vector &vec) const
 Dot (scalar) product.
const Vectoroperator^ (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

x
y
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 startX,
startY,
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.