![]() |
ImFusion SDK 4.3
|
#include <AnatomyPlugin/include/ImFusion/AnatomyPlugin/ScaledIso3.h>
Class for representing uniformly scaled elements of E(3), where E(3) is the Euclidean group, i.e linear transformations that are isometries on R^3 Strictly speaking, such transformations are defined by a scaling (around the origin), translation, and a rotation around the origin. More...
Class for representing uniformly scaled elements of E(3), where E(3) is the Euclidean group, i.e linear transformations that are isometries on R^3 Strictly speaking, such transformations are defined by a scaling (around the origin), translation, and a rotation around the origin.
However, if we do not know the location of the object, it becomes hard to separate the effects of rotation and translation; a small rotation around the origin is equivalent to a large translation far away together with a small rotation there. Since conceptually we do not want to treat a small rotation around a far-away point like a large translation, it becomes necessary to not only store the (affine) transformation but also some kind of center point.
This center point is stored together with the transformation.
Mathematically, the transformation defined by a ScaledIso3 object is given by first scaling, then rotation, and then translation. i.e. total = translation * rotation * scaling where both the rotation and scaling is around a fixed center point defined at construction. For translation only, the center point is irrelevant and may therefore be left unspecified.
Public Member Functions | |
ScaledIso3 (const std::optional< vec3 > ¢er) | |
ScaledIso3 (const vec3 ¢erPoint, const mat3 &orthogonal, const vec3 &translation, double scale) | |
void | recenter (const vec3 &newCenter) |
mat4 | scaleMat () const |
mat4 | transMat () const |
mat4 | rotationMat () const |
ScaledIso3 | inverse () const |
mat3 | linearPart () const |
ScaledIso3 | operator* (const ScaledIso3 &other) const |
vec3 | operator* (const vec3 &other) const |
ScaledIso3 | conjugate (const ScaledIso3 &g) const |
mat4 | toMatrix () const |
mat3 & | orthogonal () |
const mat3 & | orthogonal () const |
vec3 & | translation () |
const vec3 & | translation () const |
double & | scale () |
const double & | scale () const |
const std::optional< vec3 > & | center () const |
void | setCenter (const vec3 ¢er) |
Static Public Member Functions | |
static ScaledIso3 | identity () |