|
soma-io 6.0.6
|
Polymorphic base class for spatial transformations. More...
#include <soma-io/transformation/transformation.h>


Public Member Functions | |
| virtual | ~Transformation () |
| virtual Transformation & | operator= (const Transformation &other) |
| virtual bool | isIdentity () const |
| Test if the transformation can safely be omitted. | |
| carto::Object | header () |
| const carto::Object | header () const |
| void | setHeader (carto::Object ph) |
| virtual std::vector< double > | transform (const std::vector< double > &pos) const =0 |
| virtual std::vector< float > | transform (const std::vector< float > &pos) const |
| virtual std::vector< int > | transform (const std::vector< int > &pos) const |
| virtual std::vector< double > | transformVector (const std::vector< double > &pos) const |
| virtual std::vector< float > | transformVector (const std::vector< float > &pos) const |
| virtual std::vector< int > | transformVector (const std::vector< int > &pos) const |
| virtual bool | invertible () const |
| Test if the transformation can be inverted. | |
| virtual std::unique_ptr< Transformation > | getInverse () const |
| Obtain the inverse transformation. | |
| virtual bool | isDirect () const =0 |
| true if the transformation is direct, false if it changes orientation | |
Public Member Functions inherited from carto::RCObject | |
| RCObject () | |
| RCObject (const RCObject &) | |
| RCObject & | operator= (const RCObject &) |
| virtual | ~RCObject () |
Static Public Member Functions | |
| template<typename T> | |
| static std::vector< T > | vadd (const std::vector< T > &v1, const std::vector< T > &v2) |
| vector arithmetics, as convenience static functions | |
| template<typename T> | |
| static std::vector< T > | vsub (const std::vector< T > &v1, const std::vector< T > &v2) |
| vector arithmetics, as convenience static functions | |
| template<typename T> | |
| static std::vector< T > | vadd (const std::vector< T > &v1, const T &v2) |
| vector arithmetics, as convenience static functions | |
| template<typename T> | |
| static std::vector< T > | vsub (const std::vector< T > &v1, const T &v2) |
| vector arithmetics, as convenience static functions | |
| template<typename T> | |
| static std::vector< T > | vadd (const T &v1, const std::vector< T > &v2) |
| vector arithmetics, as convenience static functions | |
| template<typename T> | |
| static std::vector< T > | vsub (const T &v1, const std::vector< T > &v2) |
| vector arithmetics, as convenience static functions | |
Protected Member Functions | |
| Transformation () | |
Protected Attributes | |
| carto::Object | _header |
Additional Inherited Members | |
Public Types inherited from carto::RCObject | |
| typedef int | RefCounterType |
Polymorphic base class for spatial transformations.
In Soma-IO 5.1 (2022) the header() has beed added in the base Transformation class, whereas it used to be only in Aims AffineTransformation3d. Now all transformations variants have a header.
Definition at line 57 of file transformation.h.
|
virtual |
|
protected |
|
inlinevirtual |
Obtain the inverse transformation.
This method should only be called if invertible() returns true. Otherwise, it will throw an exception if the transformation is not actually invertible.
Reimplemented in soma::AffineTransformation3dBase, and soma::AffineTransformationBase.
Definition at line 112 of file transformation.h.
|
inline |
Definition at line 80 of file transformation.h.
References _header.
|
inline |
Definition at line 81 of file transformation.h.
References _header.
|
inlinevirtual |
Test if the transformation can be inverted.
getInverse() can be called if this method returns true, in order to obtain the inverse transformation.
Reimplemented in soma::AffineTransformation3dBase, and soma::AffineTransformationBase.
Definition at line 102 of file transformation.h.
|
pure virtual |
true if the transformation is direct, false if it changes orientation
Implemented in soma::AffineTransformationBase.
|
inlinevirtual |
Test if the transformation can safely be omitted.
This method returns true only if the transformation behaves exactly like an identity transformation (notably, the transform methods will always return the input coordinates unchanged).
Reimplemented in soma::AffineTransformation3dBase, and soma::AffineTransformationBase.
Definition at line 75 of file transformation.h.
|
virtual |
References Transformation().
| void soma::Transformation::setHeader | ( | carto::Object | ph | ) |
|
pure virtual |
Implemented in soma::AffineTransformation3dBase, soma::AffineTransformationBase, and soma::Transformation3d.
References transform(), and transformVector().
Referenced by soma::AffineTransformation3dBase::transform(), soma::AffineTransformation3dBase::transform(), soma::AffineTransformationBase::transform(), soma::AffineTransformationBase::transform(), transform(), transform(), transform(), and transformVector().
|
inlinevirtual |
Reimplemented in soma::AffineTransformation3dBase, soma::AffineTransformationBase, and soma::Transformation3d.
Definition at line 195 of file transformation.h.
References transform().
|
inlinevirtual |
Reimplemented in soma::AffineTransformation3dBase, soma::AffineTransformationBase, and soma::Transformation3d.
Definition at line 204 of file transformation.h.
References transform().
|
inlinevirtual |
Reimplemented in soma::AffineTransformation3dBase, and soma::Transformation3d.
Definition at line 217 of file transformation.h.
References transform(), and transformVector().
Referenced by transform(), transformVector(), transformVector(), and transformVector().
|
inlinevirtual |
Reimplemented in soma::AffineTransformation3dBase, and soma::Transformation3d.
Definition at line 229 of file transformation.h.
References transformVector().
|
inlinevirtual |
Reimplemented in soma::AffineTransformation3dBase, and soma::Transformation3d.
Definition at line 238 of file transformation.h.
References transformVector().
|
inlinestatic |
vector arithmetics, as convenience static functions
Definition at line 435 of file transformation.h.
References vadd().
Referenced by isDirect(), vadd(), vadd(), and vadd().
|
inlinestatic |
vector arithmetics, as convenience static functions
Definition at line 479 of file transformation.h.
References vadd().
|
inlinestatic |
vector arithmetics, as convenience static functions
Definition at line 509 of file transformation.h.
References vadd().
|
inlinestatic |
vector arithmetics, as convenience static functions
Definition at line 457 of file transformation.h.
References vsub().
Referenced by isDirect(), vsub(), vsub(), and vsub().
|
inlinestatic |
vector arithmetics, as convenience static functions
Definition at line 494 of file transformation.h.
References vsub().
|
inlinestatic |
vector arithmetics, as convenience static functions
Definition at line 524 of file transformation.h.
References vsub().
|
protected |
Definition at line 146 of file transformation.h.