IMP Reference Guide
develop.7cb8855c60,2024/10/08
The Integrative Modeling Platform
|
Simple 3D transformation class. More...
#include <IMP/algebra/Transformation3D.h>
Simple 3D transformation class.
The rotation is applied first, and then the point is translated.
Definition at line 37 of file Transformation3D.h.
Public Member Functions | |
Transformation3D (const Transformation3D &)=default | |
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 Rotation3D & | get_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 Vector3D & | get_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 Transformation3D & | operator*= (const Transformation3D &o) |
Transformation3D | operator/ (const Transformation3D &b) const |
Compute the transformation which, when composed with b, gives *this. More... | |
const Transformation3D & | operator/= (const Transformation3D &o) |
Transformation3D & | operator= (const Transformation3D &)=default |
void | show (std::ostream &out=std::cout) const |
IMP::algebra::Transformation3D::Transformation3D | ( | ) |
Default construct (makes an invalid transformation)
Definition at line 41 of file Transformation3D.h.
IMP::algebra::Transformation3D::Transformation3D | ( | const Rotation3D & | r, |
const Vector3D & | t = Vector3D(0, 0, 0) |
||
) |
Basic constructor.
Definition at line 43 of file Transformation3D.h.
IMP::algebra::Transformation3D::Transformation3D | ( | const Vector3D & | t | ) |
Construct a transformation with an identity rotation.
Definition at line 46 of file Transformation3D.h.
bool IMP::algebra::Transformation3D::get_is_valid | ( | ) | const |
Definition at line 114 of file Transformation3D.h.
const Rotation3D& IMP::algebra::Transformation3D::get_rotation | ( | ) | const |
Return the rotation associated with this transformation.
Definition at line 99 of file Transformation3D.h.
Transform.
Definition at line 50 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 102 of file Transformation3D.h.
Apply transformation (rotate and then translate)
Definition at line 73 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 76 of file Transformation3D.h.
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 89 of file Transformation3D.h.