GenLib2::SSTransform Class Reference

Spatial similarity transformation. More...

#include <sstransf.h>

List of all members.

Public Member Functions

 SSTransform ()
 default constructor with: $s = 1, r_o = 0, R = I$
void set_translation (double dx, double dy, double dz)
 set translation vector
void set_rot_matrix (const DRotMatrix3 &rm)
 set rotation matrix
void set_scale (double s)
 set scale factor
void set_rot_matrix (double eps_x, double eps_y, double eps_z)
 set/get scale correction (s = 1 + m)
void transform (double x1, double y1, double z1, double &x2, double &y2, double &z2) const
 transformation of position vector $r_1 r_2$
void inv_transform (double x2, double y2, double z2, double &x1, double &y1, double &z1) const
 inverse transformation of position vector $r_2 r_1$
bool read (istream &is)
 read transformation parameters: scale and translation vector Parametrisation of rotation matrix:
  • for small rotations (Euler angles)

void print (ostream &os) const
 print transformation parameters
void invert ()
 invert transformation parameters

Private Attributes

double _dx
 translation in X
double _dy
 translation in Y
double _dz
 translation in Z
DRotMatrix3 _rot_matrix
 rotation matrix
double _scale
 scale


Detailed Description

Spatial similarity transformation.

Also known as 7-parameter transformation or Helmert transformation. Transformation between two 3-dimensional cartesian coordinate systems in the general case by three translations, an orthogonal rotation matrix and a scale:

\[ r_2 = r_o + s R r_1 \]

and with the inverse transformation:

\[ r_1 = {1}{s} (r_2 - r_o) R^T \]

where

{tabular}{ll} $r_1 = (X_1, Y_1, Z_1)$ & position vector in system 1\ $r_2 = (X_2, Y_2, Z_2)$ & position vector in system 2\ $r_o = (X_o, Y_o, Z_o)$ & translation vector or origin \ $s$ & scale factor \ $R$ & rotation matrix. \ {tabular}

The 7 transformation parameters are dervied by a set of points common to both coordinate systems.

In geodetic applications this transformation is called Bursa-Wolf-model. See Heck: Rechenverfahren und Auswertemodelle der Landesvermessung (1980, pp. 48, 345, 378) and Torge: Geodesy (1980, pp. 189).

Author:
Dirk Stallmann

Member Function Documentation

void GenLib2::SSTransform::set_rot_matrix ( double  eps_x,
double  eps_y,
double  eps_z 
)

set/get scale correction (s = 1 + m)

set rotation matrix for small rotations (Euler angles). Attention: The differential rotations have in the template class RotMatrix3 the opposite sign!

References _rot_matrix.


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

Generated on Wed Aug 6 15:46:43 2008 by  doxygen 1.5.5