SPtVector3< T > Class Template Reference

#include <spt_point3_vector3.h>

Inheritance diagram for SPtVector3< T >:

Inheritance graph
[legend]
Collaboration diagram for SPtVector3< T >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

SPtMatrix3x3< T > GetStarMatrix () const
Length ()
SPtVector3< T > & Norm ()
SPtMatrix3x3< T > operator* (const SPtVector3T< T > &) const
SPtVector3< T > & operator*= (T)
SPtVector3< T > & operator+= (const SPtVector3< T > &)
SPtVector3< T > operator- () const
SPtVector3< T > & operator-= (const SPtVector3< T > &)
SPtVector3< T > & operator/= (T)
SPtVector3< T > & operator= (const SPtVector3< T > &)
SPtVector3< T > & operator= (const SPtPoint3< T > &)
SPtVector3< T > & operator= (T)
SelfInnerProduct () const
SPtMatrix3x3< T > SelfOuterProduct () const
 SPtVector3 (const SPtPoint3< T > &start, const SPtPoint3< T > &end)
 SPtVector3 (const SPtPoint3< T > &p)
 SPtVector3 (const SPtVector3< T > &v)
 SPtVector3 (T xval, T yval, T zval)
 SPtVector3 ()

Friends

SPtVector3< T > CrossProduct (const SPtVector3< T > &v1, const SPtVector3< T > &v2)
DotProduct (const SPtVector3< T > &, const SPtVector3< T > &)
InnerProduct (const SPtVector3< T > &, const SPtVector3< T > &)
SPtVector3< T > operator% (const SPtVector3< T > &v1, const SPtVector3< T > &v2)
SPtVector3< T > operator* (const SPtMatrix3x3< T > &M, const SPtVector3< T > &v)
operator* (const SPtVector3< T > &v1, const SPtVector3< T > &v2)
SPtVector3< T > operator* (int s, const SPtVector3< T > &v)
SPtVector3< T > operator* (long s, const SPtVector3< T > &v)
SPtVector3< T > operator* (float s, const SPtVector3< T > &v)
SPtVector3< T > operator* (double s, const SPtVector3< T > &v)
SPtVector3< T > operator* (T s, const SPtVector3< T > &v)
SPtVector3< T > operator* (const SPtVector3< T > &v, int s)
SPtVector3< T > operator* (const SPtVector3< T > &v, long s)
SPtVector3< T > operator* (const SPtVector3< T > &v, float s)
SPtVector3< T > operator* (const SPtVector3< T > &v, double s)
SPtVector3< T > operator* (const SPtVector3< T > &v, T s)
SPtVector3< T > operator+ (const SPtVector3< T > &v1, const SPtVector3< T > &v2)
SPtVector3< T > operator- (const SPtVector3< T > &v1, const SPtVector3< T > &v2)
SPtVector3< T > operator/ (const SPtVector3< T > &v, int s)
SPtVector3< T > operator/ (const SPtVector3< T > &v, long s)
SPtVector3< T > operator/ (const SPtVector3< T > &v, float s)
SPtVector3< T > operator/ (const SPtVector3< T > &v, double s)


Detailed Description

template<typename T>
class SPtVector3< T >

Definition at line 67 of file spt_point3_vector3.h.


Constructor & Destructor Documentation

template<typename T>
SPtVector3< T >::SPtVector3 (  )  [inline]

Definition at line 133 of file spt_point3_vector3.h.

00133 : SPtSpace3< T >() { }

template<typename T>
SPtVector3< T >::SPtVector3 ( xval,
yval,
zval 
) [inline]

Definition at line 134 of file spt_point3_vector3.h.

00134 : SPtSpace3< T >( xval, yval, zval ) { }

template<typename T>
SPtVector3< T >::SPtVector3 ( const SPtVector3< T > &  v  )  [inline]

Definition at line 135 of file spt_point3_vector3.h.

00135 : SPtSpace3< T >( v.x, v.y, v.z ) { }

template<typename T>
SPtVector3< T >::SPtVector3 ( const SPtPoint3< T > &  p  )  [inline]

Definition at line 137 of file spt_point3_vector3.h.

00137 : SPtSpace3< T >( p.x, p.y, p.z ) { }

template<typename T>
SPtVector3< T >::SPtVector3 ( const SPtPoint3< T > &  start,
const SPtPoint3< T > &  end 
) [inline]

Definition at line 138 of file spt_point3_vector3.h.

00139         : SPtSpace3< T >( end.x - start.x, end.y - start.y, end.z - start.z ) { }


Member Function Documentation

template<typename T>
SPtMatrix3x3< T > SPtVector3< T >::GetStarMatrix (  )  const [inline]

Definition at line 387 of file spt_point3_vector3.h.

00388 {
00389     return SPtMatrix3x3< T >(    0, -z,  y,
00390                                  z,  0, -x,
00391                                 -y,  x,  0
00392                             );
00393 }

template<typename T>
T SPtVector3< T >::Length (  )  [inline]

Definition at line 267 of file spt_point3_vector3.h.

00267 { return sqrt( x*x + y*y + z*z ); }

template<typename T>
SPtVector3< T > & SPtVector3< T >::Norm (  )  [inline]

Definition at line 271 of file spt_point3_vector3.h.

00272 {
00273     T len = Length();
00274     if ( fabs(len) < 1E-40 )    len = 1.0;
00275     x /= len;
00276     y /= len;
00277     z /= len;
00278     return *this;
00279 }

template<typename T>
SPtMatrix3x3< T > SPtVector3< T >::operator* ( const SPtVector3T< T > &  V  )  const [inline]

Definition at line 357 of file spt_point3_vector3.h.

00358 {
00359     return SPtMatrix3x3< T >(   x*V.x, x*V.y, x*V.z,
00360                                 y*V.x, y*V.y, y*V.z,
00361                                 z*V.x, z*V.y, z*V.z
00362                             );
00363 }

template<typename T>
SPtVector3< T > & SPtVector3< T >::operator*= ( s  )  [inline]

Definition at line 332 of file spt_point3_vector3.h.

00333 {
00334     x *= s;
00335     y *= s;
00336     z *= s;
00337     return *this;
00338 }

template<typename T>
SPtVector3< T > & SPtVector3< T >::operator+= ( const SPtVector3< T > &  v  )  [inline]

Definition at line 312 of file spt_point3_vector3.h.

00313 {
00314     x += v.x;
00315     y += v.y;
00316     z += v.z;
00317     return *this;
00318 }

template<typename T>
SPtVector3< T > SPtVector3< T >::operator- (  )  const [inline]

Definition at line 352 of file spt_point3_vector3.h.

00353 {   return SPtVector3< T >( -x, -y, -z );   }

template<typename T>
SPtVector3< T > & SPtVector3< T >::operator-= ( const SPtVector3< T > &  v  )  [inline]

Definition at line 322 of file spt_point3_vector3.h.

00323 {
00324     x -= v.x;
00325     y -= v.y;
00326     z -= v.z;
00327     return *this;
00328 }

template<typename T>
SPtVector3< T > & SPtVector3< T >::operator/= ( s  )  [inline]

Definition at line 342 of file spt_point3_vector3.h.

00343 {
00344     x /= s;
00345     y /= s;
00346     z /= s;
00347     return *this;
00348 }

template<typename T>
SPtVector3< T > & SPtVector3< T >::operator= ( const SPtVector3< T > &  v  )  [inline]

Definition at line 302 of file spt_point3_vector3.h.

00303 {
00304     x = v.x;
00305     y = v.y;
00306     z = v.z;
00307     return *this;
00308 }

template<typename T>
SPtVector3< T > & SPtVector3< T >::operator= ( const SPtPoint3< T > &  p  )  [inline]

Definition at line 292 of file spt_point3_vector3.h.

00293 {
00294     x = p.x;
00295     y = p.y;
00296     z = p.z;
00297     return *this;
00298 }

template<typename T>
SPtVector3< T > & SPtVector3< T >::operator= ( s  )  [inline]

Definition at line 284 of file spt_point3_vector3.h.

00285 {
00286     x = y = z = s;
00287     return *this;
00288 }

template<typename T>
T SPtVector3< T >::SelfInnerProduct (  )  const [inline]

Definition at line 367 of file spt_point3_vector3.h.

00368 {
00369     return x*x + y*y + z*z;
00370 }

template<typename T>
SPtMatrix3x3< T > SPtVector3< T >::SelfOuterProduct (  )  const [inline]

Definition at line 374 of file spt_point3_vector3.h.

00375 {
00376     return SPtMatrix3x3< T >(   x*x, x*y, x*z,
00377                                 y*x, y*y, y*z,
00378                                 z*x, z*y, z*z
00379                             );
00380 }


Friends And Related Function Documentation

template<typename T>
SPtVector3< T > CrossProduct ( const SPtVector3< T > &  v1,
const SPtVector3< T > &  v2 
) [friend]

Definition at line 114 of file spt_point3_vector3.h.

00115     {   return SPtVector3< T >( v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x );  }

template<typename T>
T DotProduct ( const SPtVector3< T > &  ,
const SPtVector3< T > &   
) [friend]

template<typename T>
T InnerProduct ( const SPtVector3< T > &  ,
const SPtVector3< T > &   
) [friend]

template<typename T>
SPtVector3< T > operator% ( const SPtVector3< T > &  v1,
const SPtVector3< T > &  v2 
) [friend]

Definition at line 116 of file spt_point3_vector3.h.

00117     {   return SPtVector3< T >( v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x );  }

template<typename T>
SPtVector3< T > operator* ( const SPtMatrix3x3< T > &  M,
const SPtVector3< T > &  v 
) [friend]

Definition at line 120 of file spt_point3_vector3.h.

00121     {
00122         return SPtVector3< T >( M.Get(0,0)*v.x + M.Get(0,1)*v.y + M.Get(0,2)*v.z,
00123                                 M.Get(1,0)*v.x + M.Get(1,1)*v.y + M.Get(1,2)*v.z,
00124                                 M.Get(2,0)*v.x + M.Get(2,1)*v.y + M.Get(2,2)*v.z
00125                                );
00126     }

template<typename T>
T operator* ( const SPtVector3< T > &  v1,
const SPtVector3< T > &  v2 
) [friend]

Definition at line 110 of file spt_point3_vector3.h.

00111     {   return ( v1.x*v2.x + v1.y*v2.y + v1.z*v2.z );   };

template<typename T>
SPtVector3< T > operator* ( int  s,
const SPtVector3< T > &  v 
) [friend]

Definition at line 96 of file spt_point3_vector3.h.

00097     {   return v * s;   }

template<typename T>
SPtVector3< T > operator* ( long  s,
const SPtVector3< T > &  v 
) [friend]

Definition at line 94 of file spt_point3_vector3.h.

00095     {   return v * s;   }

template<typename T>
SPtVector3< T > operator* ( float  s,
const SPtVector3< T > &  v 
) [friend]

Definition at line 92 of file spt_point3_vector3.h.

00093     {   return v * s;   }

template<typename T>
SPtVector3< T > operator* ( double  s,
const SPtVector3< T > &  v 
) [friend]

template<typename T>
SPtVector3< T > operator* ( s,
const SPtVector3< T > &  v 
) [friend]

Definition at line 88 of file spt_point3_vector3.h.

00089     {   return v * s;   }

template<typename T>
SPtVector3< T > operator* ( const SPtVector3< T > &  v,
int  s 
) [friend]

Definition at line 85 of file spt_point3_vector3.h.

00086     {   return  SPtVector3< T >( v.x * s, v.y * s, v.z * s );   }

template<typename T>
SPtVector3< T > operator* ( const SPtVector3< T > &  v,
long  s 
) [friend]

Definition at line 83 of file spt_point3_vector3.h.

00084     {   return  SPtVector3< T >( v.x * s, v.y * s, v.z * s );   }

template<typename T>
SPtVector3< T > operator* ( const SPtVector3< T > &  v,
float  s 
) [friend]

Definition at line 81 of file spt_point3_vector3.h.

00082     {   return  SPtVector3< T >( v.x * s, v.y * s, v.z * s );   }

template<typename T>
SPtVector3< T > operator* ( const SPtVector3< T > &  v,
double  s 
) [friend]

template<typename T>
SPtVector3< T > operator* ( const SPtVector3< T > &  v,
s 
) [friend]

Definition at line 77 of file spt_point3_vector3.h.

00078     {   return  SPtVector3< T >( v.x * s, v.y * s, v.z * s );   }

template<typename T>
SPtVector3< T > operator+ ( const SPtVector3< T > &  v1,
const SPtVector3< T > &  v2 
) [friend]

Definition at line 71 of file spt_point3_vector3.h.

00072     {   return SPtVector3< T >( v1.x + v2.x, v1.y + v2.y, v1.z + v2.z );    }

template<typename T>
SPtVector3< T > operator- ( const SPtVector3< T > &  v1,
const SPtVector3< T > &  v2 
) [friend]

Definition at line 74 of file spt_point3_vector3.h.

00075     {   return SPtVector3< T >( v1.x - v2.x, v1.y - v2.y, v1.z - v2.z );    }

template<typename T>
SPtVector3< T > operator/ ( const SPtVector3< T > &  v,
int  s 
) [friend]

Definition at line 105 of file spt_point3_vector3.h.

00106     {   return SPtVector3< T >( v.x / s, v.y / s, v.z / s );    }

template<typename T>
SPtVector3< T > operator/ ( const SPtVector3< T > &  v,
long  s 
) [friend]

Definition at line 103 of file spt_point3_vector3.h.

00104     {   return SPtVector3< T >( v.x / s, v.y / s, v.z / s );    }

template<typename T>
SPtVector3< T > operator/ ( const SPtVector3< T > &  v,
float  s 
) [friend]

Definition at line 101 of file spt_point3_vector3.h.

00102     {   return SPtVector3< T >( v.x / s, v.y / s, v.z / s );    }

template<typename T>
SPtVector3< T > operator/ ( const SPtVector3< T > &  v,
double  s 
) [friend]

Definition at line 99 of file spt_point3_vector3.h.

00100     {   return SPtVector3< T >( v.x / s, v.y / s, v.z / s );    }


The documentation for this class was generated from the following file:

Generated on Mon Oct 13 11:45:58 2008 for TAPs by  doxygen 1.5.6