#include <dvm3/dvm3_vector.h>
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_Vector & | operator= (dvm3_Vector const &rhs) |
dvm3_Vector & | operator= (double rhs) |
dvm3_Vector & | operator+= (dvm3_Vector const &rhs) |
dvm3_Vector & | operator-= (dvm3_Vector const &rhs) |
dvm3_Vector & | operator*= (dvm3_Vector const &rhs) |
dvm3_Vector & | operator/= (dvm3_Vector const &rhs) |
dvm3_Vector & | operator+= (double rhs) |
dvm3_Vector & | operator-= (double rhs) |
dvm3_Vector & | operator*= (double rhs) |
dvm3_Vector & | operator/= (double rhs) |
dvm3_Vector & | operator+ () |
dvm3_Vector & | operator- () |
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 &) |
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.
double dvm3_Vector::unitize | ( | ) |
normalize this dvm3_Vector; return original length vector length.
int dvm3_Vector::is_unit_vector | ( | double const | tol = 100.0 *DBL_EPSILON |
) | const |
normalize this dvm3_Vector; return original length vector length.
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.
tol | tolerance for determining orthogonality |
double unitize | ( | dvm3_Vector & | vu, | |
dvm3_Vector const & | vi | |||
) | [friend] |
Normalize a vector
vu | normalized version of vi | |
vi | vector |