Handle 3D transformations, such as space group definitions. More...
#include <openbabel/math/transform3d.h>
Public Member Functions | |
transform3d (void) | |
transform3d (const matrix3x3 &m, const vector3 &v) | |
transform3d (double s) | |
transform3d (vector3 row1, vector3 row2, vector3 row3, vector3 translation) | |
transform3d (double d[3][3], double t[3]) | |
vector3 | operator* (const vector3 &) const |
transform3d | operator* (const transform3d &) const |
std::string | DescribeAsString () const |
std::string | DescribeAsValues () const |
void | Normalize () |
Private Member Functions | |
void | GetArray (double *m) |
const double & | operator() (int row, int column) const |
double & | operator() (int row, int column) |
matrix3x3 | inverse (void) const |
matrix3x3 | transpose (void) const |
void | randomRotation (OBRandom &rnd) |
double | determinant () const |
bool | isSymmetric (void) const |
bool | isOrthogonal (void) const |
bool | isDiagonal (void) const |
bool | isUnitMatrix (void) const |
double | Get (int row, int column) const |
void | Set (int row, int column, double v) |
void | SetColumn (int column, const vector3 &v) |
void | SetRow (int row, const vector3 &v) |
vector3 | GetColumn (unsigned int col) const |
vector3 | GetRow (unsigned int row) const |
matrix3x3 & | operator*= (const double &c) |
matrix3x3 & | operator/= (const double &c) |
void | SetupRotMat (double x, double y, double z) |
void | PlaneReflection (const vector3 &norm) |
void | RotAboutAxisByAngle (const vector3 &axis, const double angle) |
void | FillOrth (double alpha, double beta, double gamma, double a, double b, double c) |
matrix3x3 | findEigenvectorsIfSymmetric (vector3 &eigenvals) const |
void | Set (const double inX, const double inY, const double inZ) |
void | Set (const double *c) |
void | SetX (const double inX) |
void | SetY (const double inY) |
void | SetZ (const double inZ) |
double | GetX () const |
double | GetY () const |
double | GetZ () const |
void | Get (double *c) |
double | operator[] (unsigned int i) const |
const double * | AsArray () const |
vector3 & | operator+= (const vector3 &v) |
vector3 & | operator+= (const double *f) |
vector3 & | operator-= (const vector3 &v) |
vector3 & | operator-= (const double *f) |
vector3 & | operator*= (const double &c) |
vector3 & | operator*= (const matrix3x3 &) |
vector3 & | operator/= (const double &c) |
void | randomUnitVector (OBRandom *oeRand=NULL) |
vector3 & | normalize () |
bool | CanBeNormalized () const |
double | length_2 () const |
double | length () const |
const double & | x () const |
double & | x () |
const double & | y () const |
double & | y () |
const double & | z () const |
double & | z () |
int | operator== (const vector3 &) const |
int | operator!= (const vector3 &other) const |
bool | IsApprox (const vector3 &other, const double &precision) const |
double | distSq (const vector3 &vv) const |
bool | createOrthoVector (vector3 &v) const |
Static Private Member Functions | |
static void | jacobi (unsigned int n, double *a, double *d, double *v) |
Friends | |
vector3 | operator* (const matrix3x3 &, const vector3 &) |
matrix3x3 | operator* (const matrix3x3 &, const matrix3x3 &) |
std::ostream & | operator<< (std::ostream &, const matrix3x3 &) |
Handle 3D transformations, such as space group definitions.
transform3d | ( | void | ) | [inline] |
transform3d | ( | const matrix3x3 & | m, |
const vector3 & | v | ||
) | [inline] |
transform3d | ( | double | s ) | [inline] |
transform3d | ( | vector3 | row1, |
vector3 | row2, | ||
vector3 | row3, | ||
vector3 | translation | ||
) | [inline] |
Constructs a matrix from row vectors.
transform3d | ( | double | d[3][3], |
double | t[3] | ||
) | [inline] |
Constructs a matrix from a 3x3-array of doubles.
The first index represents the row, the second index the column
transform3d operator* | ( | const transform3d & | t ) | const |
string DescribeAsString | ( | ) | const |
string DescribeAsValues | ( | ) | const |
void Normalize | ( | ) |
Matrix-vector multiplication.
Calculates the product m*v of the matrix m and the column vector represented by v
Matrix-matrix multiplication.
std::ostream& operator<< | ( | std::ostream & | co, |
const matrix3x3 & | m | ||
) | [friend, inherited] |
Output a text representation of a matrix.
Print a text representation of the matrix in the standardized form: [ a, b, c ]
[ d, e, f ]
[ g, h, i ]
where the letters represent the appropriate entries in the matrix. Uses the standard output format for the individual entries, separated by ", " for each column, and [ ] indicating each row.