transform3d Class Reference

Handle 3D transformations, such as space group definitions. More...

#include <openbabel/math/transform3d.h>

Inheritance diagram for transform3d:

List of all members.

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
matrix3x3operator*= (const double &c)
matrix3x3operator/= (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
vector3operator+= (const vector3 &v)
vector3operator+= (const double *f)
vector3operator-= (const vector3 &v)
vector3operator-= (const double *f)
vector3operator*= (const double &c)
vector3operator*= (const matrix3x3 &)
vector3operator/= (const double &c)
void randomUnitVector (OBRandom *oeRand=NULL)
vector3normalize ()
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)


vector3 operator* (const matrix3x3 &, const vector3 &)
matrix3x3 operator* (const matrix3x3 &, const matrix3x3 &)
std::ostream & operator<< (std::ostream &, const matrix3x3 &)

Detailed Description

Handle 3D transformations, such as space group definitions.

version 2.2
See also:

Constructor & Destructor Documentation

transform3d ( void   )  [inline]

Referenced by transform3d::operator*().

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

Member Function Documentation

vector3 operator* ( const vector3 v  )  const
transform3d operator* ( const transform3d t  )  const
string DescribeAsString (  )  const
string DescribeAsValues (  )  const
void Normalize (  ) 

Friends And Related Function Documentation

vector3 operator* ( const matrix3x3 m,
const vector3 v 
) [friend, inherited]

Matrix-vector multiplication.

Calculates the product m*v of the matrix m and the column vector represented by v

matrix3x3 operator* ( const matrix3x3 A,
const matrix3x3 B 
) [friend, inherited]

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.

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines