+
class ROOT::Math::Transform3D
-
library: libMathCore
#include "Transform3D.h"
Display options:
Show inherited
Show non-public

class ROOT::Math::Transform3D

Function Members (Methods)

public:
~Transform3D()
voidGetComponents(double* begin) const
voidGetComponents(double& xx, double& xy, double& xz, double& dx, double& yx, double& yy, double& yz, double& dy, double& zx, double& zy, double& zz, double& dz) const
voidGetDecomposition(ROOT::Math::Rotation3D& r, ROOT::Math::Transform3D::Vector& v) const
ROOT::Math::Transform3DInverse() const
voidInvert()
booloperator!=(const ROOT::Math::Transform3D& rhs) const
ROOT::Math::Transform3D::Pointoperator()(const ROOT::Math::Transform3D::Point& p) const
ROOT::Math::Transform3D::Vectoroperator()(const ROOT::Math::Transform3D::Vector& v) const
ROOT::Math::Plane3Doperator()(const ROOT::Math::Plane3D& plane) const
ROOT::Math::Transform3Doperator*(const ROOT::Math::Transform3D& t) const
ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>operator*(const ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>& v) const
ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>operator*(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>& v) const
ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >operator*(const ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >& v) const
ROOT::Math::Transform3D&operator*=(const ROOT::Math::Transform3D& t)
ROOT::Math::Transform3D&operator=(const ROOT::Math::Transform3D&)
booloperator==(const ROOT::Math::Transform3D& rhs) const
ROOT::Math::Rotation3DRotation() const
voidSetComponents(double* begin, double* end)
voidSetComponents(double xx, double xy, double xz, double dx, double yx, double yy, double yz, double dy, double zx, double zy, double zz, double dz)
ROOT::Math::Transform3DTransform3D()
ROOT::Math::Transform3DTransform3D(const ROOT::Math::Rotation3D& r)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::AxisAngle& r)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::EulerAngles& r)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::Quaternion& r)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::RotationX& r)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::RotationY& r)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::RotationZ& r)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::Transform3D::Vector& v)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::Translation3D& t)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::Transform3D&)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::Rotation3D& r, const ROOT::Math::Transform3D::Vector& v)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::Rotation3D& r, const ROOT::Math::Translation3D& t)
ROOT::Math::Transform3DTransform3D(double* begin, double* end)
ROOT::Math::Transform3DTransform3D(const ROOT::Math::Transform3D::Point& fr0, const ROOT::Math::Transform3D::Point& fr1, const ROOT::Math::Transform3D::Point& fr2, const ROOT::Math::Transform3D::Point& to0, const ROOT::Math::Transform3D::Point& to1, const ROOT::Math::Transform3D::Point& to2)
ROOT::Math::Transform3DTransform3D(double xx, double xy, double xz, double dx, double yx, double yy, double yz, double dy, double zx, double zy, double zz, double dz)
ROOT::Math::Translation3DTranslation() const
protected:
voidAssignFrom(const ROOT::Math::Rotation3D& r)
voidAssignFrom(const ROOT::Math::Transform3D::Vector& v)
voidAssignFrom(const ROOT::Math::Rotation3D& r, const ROOT::Math::Transform3D::Vector& v)
voidSetIdentity()

Data Members

public:
enum ETransform3DMatrixIndex { kXX
kXY
kXZ
kDX
kYX
kYY
kYZ
kDY
kZX
kZY
kZZ
kDZ
};
private:
doublefM[12]

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

Transform3D(const ROOT::Math::Transform3D::Point& fr0, const ROOT::Math::Transform3D::Point& fr1, const ROOT::Math::Transform3D::Point& fr2, const ROOT::Math::Transform3D::Point& to0, const ROOT::Math::Transform3D::Point& to1, const ROOT::Math::Transform3D::Point& to2)
 takes impl. from CLHEP ( E.Chernyaev). To be checked
void Invert()
 Name: Transform3D::inverse                     Date:    24.09.96
 Author: E.Chernyaev (IHEP/Protvino)            Revised:

 Function: Find inverse affine transformation.
void SetIdentity()
set identity ( identity rotation and zero translation)
void AssignFrom(const ROOT::Math::Rotation3D& r, const ROOT::Math::Transform3D::Vector& v)
 assignment  from rotation + translation
void AssignFrom(const Rotation3D & r)
 assign from only a rotation  (null translation)
void AssignFrom(const XYZVector & v)
 assign from a translation only (identity rotations)
Plane3D operator()(const Plane3D & plane)
 transformations on a 3D plane
Transform3D()
Default constructor (identy rotation) + zero translation

Transform3D(IT begin, IT end)
Construct given a pair of pointers or iterators defining the
beginning and end of an array of 12 Scalars

SetComponents(double* begin, double* end)
Transform3D( const Rotation3D & r, const Vector & v)
Construct from a rotation and then a translation described by a Vector

Transform3D( const Rotation3D & r, const Translation3D & t)
Construct from a rotation and then a translation described by a Translation3D class

Transform3D( const ARotation & r, const DisplacementVector3D<CoordSystem,Tag> & v)
Construct from a rotation (any rotation object)  and then a translation
(represented by any DisplacementVector)
The requirements on the rotation and vector objects are that they can be transformed in a
Rotation3D class and in a Cartesian3D Vector

Transform3D( const ARotation & r, const Translation3D & t)
Construct from a rotation (any rotation object)  and then a translation
represented by a Translation3D class
The requirements on the rotation is that it can be transformed in a
Rotation3D class

Transform3D( const Vector & v, const Rotation3D & r)
Construct from a translation and then a rotation (inverse assignment)

 is equivalent from having first the rotation and then the translation vector rotated
explicit Transform3D( const Rotation3D & r)
Construct from a 3D Rotation only with zero translation

explicit Transform3D( const AxisAngle & r)
 convenience methods for the other rotations (cannot use templates for conflict with LA)
explicit Transform3D( const EulerAngles & r)
explicit Transform3D( const Quaternion & r)
explicit Transform3D( const RotationX & r)
 TO DO: implement direct methods for axial rotations without going through Rotation3D
explicit Transform3D( const RotationY & r)
explicit Transform3D( const RotationZ & r)
explicit Transform3D( const DisplacementVector3D<CoordSystem,Tag> & v)
Construct from a translation only, represented by any DisplacementVector3D
and with an identity rotation

SetComponents(m)
Transform3D & operator=(const ROOT::Math::Transform3D& )
Construct from a linear algebra matrix of size at least 3x4,
which must support operator()(i,j) to obtain elements (0,0) thru (2,3).
The 3x3 sub-block is assumed to be the rotation part and the translations vector
are described by the 4-th column

void GetComponents(IT begin, IT end)
Get the 12 matrix components into data specified by an iterator begin
and another to the end of the desired data (12 past start).

void GetComponents(double* begin) const
Get the 12 matrix components into data specified by an iterator begin

void GetDecomposition(ROOT::Math::Rotation3D& r, ROOT::Math::Transform3D::Vector& v) const
Get the rotation and translation vector representing the 3D transformation

Point operator()(const Point & p)
 operations on points and vectors

Transformation operation for Position Vector in Cartesian coordinate
For a Position Vector first a rotatio and then a translation is applied

Vector operator()(const Vector & v)
Transformation operation for Displacement Vectors in Cartesian coordinate
For the Displacement Vectors only the rotation applies - no translations

Transform3D Inverse()
Return the inverse of the transformation.

return ! operator==(const ROOT::Math::Transform3D& rhs) const

Author: E.Chernyaev (IHEP/Protvino) Revised:
Last update: root/mathcore:$Name: $:$Id: Transform3D.cxx,v 1.14 2007/06/21 14:13:12 moneta Exp $
Copyright (c) 2005 , LCG ROOT MathLib Team *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.