Homogeneous coordinate transformation. More...
#include <transform.h>
Public Member Functions | |
Transform () | |
Create the identity transform. | |
Transform (const Eigen::Matrix4f &trafo) | |
Create a new transform instance for the given matrix. | |
Transform (const Eigen::Matrix4f &trafo, const Eigen::Matrix4f &inv) | |
Create a new transform instance for the given matrix and its inverse. | |
const Eigen::Matrix4f & | getMatrix () const |
Return the underlying matrix. | |
const Eigen::Matrix4f & | getInverseMatrix () const |
Return the inverse of the underlying matrix. | |
Transform | inverse () const |
Return the inverse transformation. | |
Transform | operator* (const Transform &t) const |
Concatenate with another transform. | |
Vector3f | operator* (const Vector3f &v) const |
Apply the homogeneous transformation to a 3D vector. | |
Normal3f | operator* (const Normal3f &n) const |
Apply the homogeneous transformation to a 3D normal. | |
Point3f | operator* (const Point3f &p) const |
Transform a point by an arbitrary matrix in homogeneous coordinates. | |
Ray3f | operator* (const Ray3f &r) const |
Apply the homogeneous transformation to a ray. | |
std::string | toString () const |
Return a string representation. | |
Homogeneous coordinate transformation.
This class stores a general homogeneous coordinate tranformation, such as rotation, translation, uniform or non-uniform scaling, and perspective transformations. The inverse of this transformation is also recorded here, since it is required when transforming normal vectors.
Definition at line 35 of file transform.h.