IMP logo
IMP Reference Guide  develop.d247202c1c,2019/10/23
The Integrative Modeling Platform
IMP::algebra::Transformation3D Class Reference

Simple 3D transformation class. More...

#include <IMP/algebra/Transformation3D.h>

+ Inheritance diagram for IMP::algebra::Transformation3D:

Detailed Description

Simple 3D transformation class.

The rotation is applied first, and then the point is translated.

See Also
IMP::core::Transform See geometric primitives for more information.

Definition at line 36 of file Transformation3D.h.

Public Member Functions

 Transformation3D ()
 Default construct (makes an invalid transformation) More...
 
 Transformation3D (const Rotation3D &r, const Vector3D &t=Vector3D(0, 0, 0))
 Basic constructor. More...
 
 Transformation3D (const Vector3D &t)
 Construct a transformation with an identity rotation. More...
 
Transformation3D get_inverse () const
 
bool get_is_valid () const
 
const Rotation3Dget_rotation () const
 Return the rotation associated with this transformation. More...
 
Vector3D get_transformed (const Vector3D &o) const
 Transform. More...
 
void get_transformed_adjoint (const Vector3D &v, const Vector3D &Dw, Vector3D *Dv, Transformation3DAdjoint *DT) const
 Get adjoint of inputs to get_transformed from adjoint of output. More...
 
TransformedVector3DAdjoint get_transformed_adjoint (const Vector3D &v, const Vector3D &Dw) const
 Get adjoint of inputs to get_transformed from adjoint of output. More...
 
const Vector3Dget_translation () const
 Return the translation vector associated with this transformation. More...
 
Vector3D operator* (const Vector3D &v) const
 Apply transformation (rotate and then translate) More...
 
Transformation3D operator* (const Transformation3D &tr) const
 
const Transformation3Doperator*= (const Transformation3D &o)
 
Transformation3D operator/ (const Transformation3D &b) const
 Compute the transformation which, when composed with b, gives *this. More...
 
const Transformation3Doperator/= (const Transformation3D &o)
 
void show (std::ostream &out=std::cout) const
 

Constructor & Destructor Documentation

IMP::algebra::Transformation3D::Transformation3D ( )

Default construct (makes an invalid transformation)

Definition at line 40 of file Transformation3D.h.

IMP::algebra::Transformation3D::Transformation3D ( const Rotation3D r,
const Vector3D t = Vector3D(0, 0, 0) 
)

Basic constructor.

Definition at line 42 of file Transformation3D.h.

IMP::algebra::Transformation3D::Transformation3D ( const Vector3D t)

Construct a transformation with an identity rotation.

Definition at line 45 of file Transformation3D.h.

Member Function Documentation

bool IMP::algebra::Transformation3D::get_is_valid ( ) const
Returns
true if the 3D transformation is valid; false if the transformation was initialized only with the empty constructor, or it was initialized with an invalid rotation.

Definition at line 113 of file Transformation3D.h.

const Rotation3D& IMP::algebra::Transformation3D::get_rotation ( ) const

Return the rotation associated with this transformation.

Definition at line 98 of file Transformation3D.h.

Vector3D IMP::algebra::Transformation3D::get_transformed ( const Vector3D o) const

Transform.

Definition at line 49 of file Transformation3D.h.

void IMP::algebra::Transformation3D::get_transformed_adjoint ( const Vector3D v,
const Vector3D Dw,
Vector3D Dv,
Transformation3DAdjoint *  DT 
) const

Get adjoint of inputs to get_transformed from adjoint of output.

Compute the adjoint (reverse-mode sensitivity) of input vector to get_transformed and this transformation from the adjoint of the output vector.

TransformedVector3DAdjoint IMP::algebra::Transformation3D::get_transformed_adjoint ( const Vector3D v,
const Vector3D Dw 
) const

Get adjoint of inputs to get_transformed from adjoint of output.

Compute the adjoint (reverse-mode sensitivity) of input vector to get_transformed and this transformation from the adjoint of the output vector.

const Vector3D& IMP::algebra::Transformation3D::get_translation ( ) const

Return the translation vector associated with this transformation.

Definition at line 101 of file Transformation3D.h.

Vector3D IMP::algebra::Transformation3D::operator* ( const Vector3D v) const

Apply transformation (rotate and then translate)

Definition at line 72 of file Transformation3D.h.

Transformation3D IMP::algebra::Transformation3D::operator* ( const Transformation3D tr) const

Compose two rigid transformation such that for any vector v (rt1*rt2)*v = rt1*(rt2*v)

Definition at line 75 of file Transformation3D.h.

+ Here is the call graph for this function:

Transformation3D IMP::algebra::Transformation3D::operator/ ( const Transformation3D b) const

Compute the transformation which, when composed with b, gives *this.

That is a(x)== d(b(x)) for all x.

For consistency, this should probably have a nice name, but I don't know what name to give it.

Definition at line 88 of file Transformation3D.h.

+ Here is the call graph for this function:


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