dvm3_Vector Class Reference

#include <dvm3/dvm3_vector.h>

Collaboration diagram for dvm3_Vector:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ~dvm3_Vector ()
 dvm3_Vector ()
 dvm3_Vector (double x, double y, double z)
 dvm3_Vector (dvm3_Vector const &other)
void copy_from_cvec (double const *cv)
void copy_to_cvec (double *v) const
void init (double x, double y, double z)
dvm3_Vectoroperator= (dvm3_Vector const &rhs)
dvm3_Vectoroperator= (double rhs)
dvm3_Vectoroperator+= (dvm3_Vector const &rhs)
dvm3_Vectoroperator-= (dvm3_Vector const &rhs)
dvm3_Vectoroperator*= (dvm3_Vector const &rhs)
dvm3_Vectoroperator/= (dvm3_Vector const &rhs)
dvm3_Vectoroperator+= (double rhs)
dvm3_Vectoroperator-= (double rhs)
dvm3_Vectoroperator*= (double rhs)
dvm3_Vectoroperator/= (double rhs)
dvm3_Vectoroperator+ ()
dvm3_Vectoroperator- ()
double const & operator[] (int i) const
double & operator[] (int i)
double operator() (int i) const
double & operator() (int i)
double dot (dvm3_Vector const &v) const
void cross (dvm3_Vector const &v1, dvm3_Vector const &v2)
void lincomb (double c1, dvm3_Vector const &v1, double c2, dvm3_Vector const &v2)
std::ostream & print_on (std::ostream &os, char const pre[]="", char const post[]="") const
void cprint_on (FILE *of, char const prefix[]="", char const postfix[]="")
double unitize ()
int is_unit_vector (double const tol=100.0 *DBL_EPSILON) const
int is_orthogonal_to (dvm3_Vector const &other, double const tol=100.0 *DBL_EPSILON) const

Friends

class dvm3_Matrix
class dvm3_RotMat
dvm3_Vector operator+ (dvm3_Vector const &v1, dvm3_Vector const &v2)
dvm3_Vector operator- (dvm3_Vector const &v1, dvm3_Vector const &v2)
dvm3_Vector operator* (dvm3_Vector const &v1, dvm3_Vector const &v2)
dvm3_Vector operator/ (dvm3_Vector const &v1, dvm3_Vector const &v2)
dvm3_Vector operator+ (double r, dvm3_Vector const &v)
dvm3_Vector operator- (double r, dvm3_Vector const &v)
dvm3_Vector operator* (double r, dvm3_Vector const &v)
dvm3_Vector operator/ (double r, dvm3_Vector const &v)
dvm3_Vector operator+ (dvm3_Vector const &v, double r)
dvm3_Vector operator- (dvm3_Vector const &v, double r)
dvm3_Vector operator* (dvm3_Vector const &v, double r)
dvm3_Vector operator/ (dvm3_Vector const &v, double r)
std::ostream & operator<< (std::ostream &os, dvm3_Vector const &)
double unitize (dvm3_Vector &vu, dvm3_Vector const &vi)
double dot (dvm3_Vector const &v1, dvm3_Vector const &v2)
void cross (dvm3_Vector &result, dvm3_Vector const &v1, dvm3_Vector const &v2)
void lincomb (dvm3_Vector &result, double c1, dvm3_Vector const &v1, double c2, dvm3_Vector const &v2)
void dyad_product (dvm3_Matrix &, const dvm3_Vector &, const dvm3_Vector &)
void mvmult (dvm3_Vector &, const dvm3_Matrix &, const dvm3_Vector &)
void mtvmult (dvm3_Vector &, const dvm3_Matrix &, const dvm3_Vector &)


Detailed Description

A class representing a 3-vector of doubles with common numerical operations defined. The dvm3_Vector class is a simple class to handle common numerical operations on 3-vectors of doubles. Unless otherwise noted, the operations are component by component, e.g.,
    v1 * v2 = [v1(0) *v2(0), v1(1)*v2(1), v1(2)*v2(2)]
 * 

This is intended as a small component which can be inexpensively created on the stack; the constructors and destructor do not make use of dynamic allocation. The dvm3_Vector default constructor does not initialize the memory.

Note that dvm3_Vector inherits from a struct, dvm3_VPOD, which encapulates an array of doubles. The inheritence is protected; this implementation is exposed purely for efficiency considerations; users shall not assume that this implementation detail will not change in future. DO NOT rely on the fact that there is an array under the hood or on the naming of the data members within dvm3_VPOD.

Definition at line 106 of file dvm3_vector.h.


Member Function Documentation

double dvm3_Vector::unitize (  ) 

normalize this dvm3_Vector; return original length vector length.

Returns:
original length of this vector

int dvm3_Vector::is_unit_vector ( double const   tol = 100.0 *DBL_EPSILON  )  const

normalize this dvm3_Vector; return original length vector length.

Returns:
1 if vector is unit vector within tolerance tol.

int dvm3_Vector::is_orthogonal_to ( dvm3_Vector const &  other,
double const   tol = 100.0 *DBL_EPSILON 
) const

Test whether this vector and the other vector are orthogonal within tolerance tol.

Returns:
1 if this and other are orthogonal within tolerance tol.
Parameters:
tol tolerance for determining orthogonality


Friends And Related Function Documentation

double unitize ( dvm3_Vector vu,
dvm3_Vector const &  vi 
) [friend]

Normalize a vector

Returns:
original length of vi.
Parameters:
vu normalized version of vi
vi vector


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

Generated on Tue Dec 2 15:45:01 2008 for dvm3 by  doxygen 1.5.6