A change of coordinates from "definition" space (domain) to "model" space (codomain). More...
#include <brep.hpp>
Public Member Functions | |
| Coordinate_change (Mat< 3 > translate=Mat< 3 >::Zero(), Mat< 3, 3 > transform=Mat< 3, 3 >::Identity()) | |
| Mat< 3 > | to_model (Mat< 3 > definition) const |
| Applies the coordinate transformation. | |
| Mat< 3 > | to_definition (Mat< 3 > model) const |
| Inverts the coordinate transformation. | |
| Mat< 3, 3 > | transform () const |
| Obtains the transformation matrix, if you care. | |
| Mat< 3 > | translate () const |
| Obtains the translation vector, if you care. | |
| Coordinate_change | operator() (Coordinate_change that) const |
Returns a Coordinate_change which is the composition of this and that. | |
A change of coordinates from "definition" space (domain) to "model" space (codomain).
Consists of a linear transformation (usually unitary) followed by a translation.
| hexed::brep::Coordinate_change::Coordinate_change | ( | Mat< 3 > | translate = Mat< 3 >::Zero(), |
| Mat< 3, 3 > | transform = Mat< 3, 3 >::Identity() ) |
transform must be invertible. | Coordinate_change hexed::brep::Coordinate_change::operator() | ( | Coordinate_change | that | ) | const |
Returns a Coordinate_change which is the composition of this and that.
I.e., (*this)(that).to_model(x) == this->to_model(that.to_model(x)).
Inverts the coordinate transformation.
to_definition(to_model(x)) == to_model(to_definition(x)) = x.
Applies the coordinate transformation.
Specifically, the result is translate() + transform()*defintion.