A general linear transform using homogeneous coordinates to perform rotation, scaling, shear and translation.
More...
Public Member Functions |
| AffineMap () |
| AffineMap (const Mat3d &m) |
| AffineMap (const Mat4d &m) |
| AffineMap (const AffineMap &other) |
| AffineMap (const AffineMap &first, const AffineMap &second) |
| constructor that merges the matrixes for two affine maps
|
| ~AffineMap () |
MapBase::Ptr | copy () const |
| Return a MapBase::Ptr to a deep copy of this map.
|
Name | type () const |
| Return the name of this map's concrete type (e.g., "AffineMap" ).
|
bool | isLinear () const |
| Return true (an AffineMap is always linear).
|
bool | hasUniformScale () const |
| Return false ( test if this is unitary with translation )
|
virtual bool | isEqual (const MapBase &other) const |
| Return true if this map is equal to the given map.
|
bool | operator== (const AffineMap &other) const |
bool | operator!= (const AffineMap &other) const |
AffineMap & | operator= (const AffineMap &other) |
Vec3d | applyMap (const Vec3d &in) const |
| Return the image of in under the map.
|
Vec3d | applyInverseMap (const Vec3d &in) const |
| Return the pre-image of in under the map.
|
Vec3d | applyIJT (const Vec3d &in, const Vec3d &) const |
| Return the transpose of the inverse Jacobian of the map applied to in.
|
Vec3d | applyIJT (const Vec3d &in) const |
| Return the transpose of the inverse Jacobian of the map applied to in .
|
Mat3d | applyIJC (const Mat3d &m) const |
| Return the Jacobian Curvature: zero for a linear map.
|
Mat3d | applyIJC (const Mat3d &in, const Vec3d &, const Vec3d &) const |
double | determinant (const Vec3d &) const |
| Return the determinant of the Jacobian, ignores argument.
|
double | determinant () const |
| Return the determinant of the Jacobian.
|
bool | isIdentity () const |
| Return true if the underlying matrix is approximately an identity.
|
bool | isDiagonal () const |
| Return true if the underylying matrix is diagonal.
|
bool | isScale () const |
| Return true if the map is equivalent to a ScaleMap.
|
bool | isScaleTranslate () const |
| Return true if the map is equivalent to a ScaleTranslateMap.
|
void | read (std::istream &is) |
| read serialization
|
void | write (std::ostream &os) const |
| write serialization
|
std::string | str () const |
| string serialization, useful for debugging
|
boost::shared_ptr
< FullyDecomposedMap > | createDecomposedMap () |
| on-demand decomposition of the affine map
|
AffineMap::Ptr | getAffineMap () const |
| Return AffineMap::Ptr to a deep copy of the current AffineMap.
|
AffineMap::Ptr | inverse () const |
| Return AffineMap::Ptr to the inverse of this map.
|
Mat4d | getMat4 () const |
| Return the matrix representation of this AffineMap.
|
const Mat4d & | getConstMat4 () const |
const Mat3d & | getConstJacobianInv () const |
template<typename MapT > |
bool | isType () const |
| Return true if this map is of concrete type MapT (e.g., AffineMap).
|
|
Vec3d | voxelSize () const |
| Return the lengths of the images of the segments (0,0,0)-(1,0,0), (0,0,0)-(0,1,0) and (0,0,0)-(0,0,1).
|
Vec3d | voxelSize (const Vec3d &) const |
| Return the lengths of the images of the segments (0,0,0)-(1,0,0), (0,0,0)-(0,1,0) and (0,0,0)-(0,0,1).
|
|
void | accumPreRotation (Axis axis, double radians) |
| Methods that modify the existing affine map by pre-applying the given operation.
|
void | accumPreScale (const Vec3d &v) |
| Methods that modify the existing affine map by pre-applying the given operation.
|
void | accumPreTranslation (const Vec3d &v) |
| Methods that modify the existing affine map by pre-applying the given operation.
|
void | accumPreShear (Axis axis0, Axis axis1, double shear) |
| Methods that modify the existing affine map by pre-applying the given operation.
|
|
void | accumPostRotation (Axis axis, double radians) |
| Methods that modify the existing affine map by post-applying the given operation.
|
void | accumPostScale (const Vec3d &v) |
| Methods that modify the existing affine map by post-applying the given operation.
|
void | accumPostTranslation (const Vec3d &v) |
| Methods that modify the existing affine map by post-applying the given operation.
|
void | accumPostShear (Axis axis0, Axis axis1, double shear) |
| Methods that modify the existing affine map by post-applying the given operation.
|
|
MapBase::Ptr | preRotate (double radians, Axis axis=X_AXIS) const |
| Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation.
|
MapBase::Ptr | preTranslate (const Vec3d &t) const |
| Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation.
|
MapBase::Ptr | preScale (const Vec3d &s) const |
| Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation.
|
MapBase::Ptr | preShear (double shear, Axis axis0, Axis axis1) const |
| Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation.
|
|
MapBase::Ptr | postRotate (double radians, Axis axis=X_AXIS) const |
| Return a MapBase::Ptr to a new map that is the result of postfixing the appropraite operation.
|
MapBase::Ptr | postTranslate (const Vec3d &t) const |
| Return a MapBase::Ptr to a new map that is the result of postfixing the appropraite operation.
|
MapBase::Ptr | postScale (const Vec3d &s) const |
| Return a MapBase::Ptr to a new map that is the result of postfixing the appropraite operation.
|
MapBase::Ptr | postShear (double shear, Axis axis0, Axis axis1) const |
| Return a MapBase::Ptr to a new map that is the result of postfixing the appropraite operation.
|
A general linear transform using homogeneous coordinates to perform rotation, scaling, shear and translation.