|
soma-io 6.0.6
|
Affine 3D transformation. More...
#include <soma-io/transformation/affinetransformation3d_base.h>


Public Member Functions | |
| AffineTransformation3dBase () | |
| Create an identity transformation. | |
| AffineTransformation3dBase (const AffineTransformation3dBase &other) | |
| AffineTransformation3dBase (const std::vector< float > &mat) | |
| Create a AffineTransformation3d from a 4x4 matrix given as a line vector. | |
| AffineTransformation3dBase (const carto::Object mat) | |
| Create a AffineTransformation3d from a 4x4 matrix given as a line vector in an Object. | |
| virtual | ~AffineTransformation3dBase () |
| virtual AffineTransformation3dBase & | operator= (const AffineTransformation3dBase &other) |
| virtual AffineTransformation3dBase & | operator= (const std::vector< float > &other) |
| virtual AffineTransformation3dBase & | operator= (const carto::Object other) |
| AffineTransformation3dBase & | operator*= (const AffineTransformation3dBase &trans) |
| AffineTransformation3dBase | operator- () const |
| virtual bool | operator== (const AffineTransformation3dBase &) const |
| virtual void | extendOrder (unsigned n) |
| Point3dd | transform (double x, double y, double z) const |
| Point3dd | transform (const Point3dd &pos) const |
| Point3df | transform (const Point3df &pos) const |
| Point3df | transform (float x, float y, float z) const |
| Point3d | transform (const Point3d &p) const |
| Point3di | transform (const Point3di &p) const |
| Point3di | transform (int x, int y, int z) const |
| virtual std::vector< double > | transform (const std::vector< double > &pos) const |
| virtual std::vector< float > | transform (const std::vector< float > &pos) const |
| virtual std::vector< int > | transform (const std::vector< int > &pos) const |
| Point3dd | transformVector (const Point3dd &vec) const |
| Point3df | transformVector (const Point3df &dir) const |
| Point3df | transformVector (const Point3di &dir) const |
| Point3dd | transformVector (double x, double y, double z) const |
| Point3df | transformVector (float x, float y, float z) const |
| Point3di | transformVector (int x, int y, int z) 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 |
| Point3dd | transformNormal (const Point3dd &dir) const |
| Point3df | transformNormal (const Point3df &dir) const |
| Point3dd | transformNormal (double x, double y, double z) const |
| Point3df | transformNormal (float x, float y, float z) const |
| Point3dd | transformUnitNormal (const Point3dd &dir) const |
| Point3df | transformUnitNormal (const Point3df &dir) const |
| Point3dd | transformUnitNormal (double x, double y, double z) const |
| Point3df | transformUnitNormal (float x, float y, float z) const |
| bool | isIdentity () const CARTO_OVERRIDE |
| Test if the transformation can safely be omitted. | |
| virtual void | setToIdentity () |
| std::unique_ptr< AffineTransformation3dBase > | inverse () const |
| bool | invertible () const CARTO_OVERRIDE |
| Test if the transformation can be inverted. | |
| std::unique_ptr< Transformation > | getInverse () const CARTO_OVERRIDE |
| Obtain the inverse transformation. | |
| virtual void | scale (const Point3df &sizeFrom, const Point3df &sizeTo) |
| void | setTranslation (Point3df trans) |
| void | fromColumnVector (const float *vec) |
| transform a column vector to an AffineTransformation3d (useful for conversions from OpenGL matrices) | |
Public Member Functions inherited from soma::Transformation3d | |
| virtual | ~Transformation3d () |
| Point3dd | transform (double x, double y, double z) const |
| Point3dd | transform (const Point3dd &pos) const |
| Point3df | transform (const Point3df &dir) const |
| Point3df | transform (float x, float y, float z) const |
| Point3d | transform (const Point3d &p) const |
| Point3di | transform (const Point3di &p) const |
| Point3di | transform (int x, int y, int z) const |
Public Member Functions inherited from soma::Transformation | |
| virtual | ~Transformation () |
| virtual Transformation & | operator= (const Transformation &other) |
| carto::Object | header () |
| const carto::Object | header () const |
| void | setHeader (carto::Object ph) |
Public Member Functions inherited from carto::RCObject | |
| RCObject () | |
| RCObject (const RCObject &) | |
| RCObject & | operator= (const RCObject &) |
| virtual | ~RCObject () |
Public Member Functions inherited from soma::AffineTransformationBase | |
| AffineTransformationBase (int order=3) | |
| AffineTransformationBase (const AffineTransformationBase &other) | |
| AffineTransformationBase (const std::vector< float > &mat) | |
| Create a AffineTransformation3d from a matrix given as a line vector. | |
| AffineTransformationBase (const carto::Object mat) | |
| Create a AffineTransformation from a NxN matrix given as a line vector in an Object. | |
| virtual | ~AffineTransformationBase () |
| virtual AffineTransformationBase & | operator= (const AffineTransformationBase &other) |
| virtual bool | operator== (const AffineTransformationBase &) const |
| AffineTransformationBase & | operator*= (const AffineTransformationBase &trans) |
| AffineTransformationBase | operator- () const |
| void | negate () |
| bool | isIdentity () const CARTO_OVERRIDE |
| Test if the transformation can safely be omitted. | |
| bool | isDirect () const override |
| true if the transformation is direct, false if it changes orientation | |
| bool | invertible () const CARTO_OVERRIDE |
| Test if the transformation can be inverted. | |
| std::unique_ptr< AffineTransformationBase > | inverse () const |
| std::unique_ptr< Transformation > | getInverse () const CARTO_OVERRIDE |
| Obtain the inverse transformation. | |
| int | order () const |
| virtual void | squeezeOrder (unsigned n, bool check=true, bool notify_fail=true) |
| Table< float > & | matrix () |
| const Table< float > & | matrix () const |
| std::vector< float > | toVector () const |
| conversions and IO) | |
| std::vector< float > | toColumnVector () const |
| transform AffineTransformation3d to a column vector (useful for conversions to OpenGL matrices) | |
| void | fromColumnVector (const std::vector< float > &vec) |
| transform a column vector to an AffineTransformation3d (useful for conversions from OpenGL matrices) | |
| void | fromColumnVector (const float *vec, unsigned size) |
| transform a column vector to an AffineTransformation3d (useful for conversions from OpenGL matrices) | |
Protected Member Functions | |
| Point3dd | transformDouble (double x, double y, double z) const CARTO_OVERRIDE |
| Point3df | transformFloat (float x, float y, float z) const CARTO_OVERRIDE |
| Point3di | transformInt (int x, int y, int z) const CARTO_OVERRIDE |
| virtual Point3dd | transformVectorPoint3dd (const Point3dd &vec) const |
| virtual Point3df | transformVectorPoint3df (const Point3df &dir) const |
| virtual Point3dd | transformVectorDouble (double x, double y, double z) const |
| virtual Point3df | transformVectorFloat (float x, float y, float z) const |
| virtual Point3di | transformVectorInt (int x, int y, int z) const |
| virtual Point3dd | transformNormalPoint3dd (const Point3dd &dir) const |
| virtual Point3df | transformNormalPoint3df (const Point3df &dir) const |
| virtual Point3dd | transformNormalDouble (double x, double y, double z) const |
| virtual Point3df | transformNormalFloat (float x, float y, float z) const |
Protected Member Functions inherited from soma::Transformation3d | |
| Transformation3d () | |
| virtual Point3dd | transformPoint3dd (const Point3dd &pos) const |
| virtual Point3df | transformPoint3df (const Point3df &dir) const |
| virtual Point3d | transformPoint3d (const Point3d &p) const |
| virtual Point3di | transformPoint3di (const Point3di &p) const |
Protected Member Functions inherited from soma::Transformation | |
| Transformation () | |
Additional Inherited Members | |
Public Types inherited from carto::RCObject | |
| typedef int | RefCounterType |
Static Public Member Functions inherited from soma::Transformation | |
| 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 | |
Static Public Attributes inherited from soma::AffineTransformationBase | |
| static float | epsilon |
| used to test equality on elements | |
Protected Attributes inherited from soma::Transformation | |
| carto::Object | _header |
Protected Attributes inherited from soma::AffineTransformationBase | |
| Table< float > | _matrix |
Affine 3D transformation.
A new transformation classes tree has been setup to allow non-linear transformations: see Transformation and Transformation3d. AffineTransformation3d now inherits Transformation3d.
Definition at line 182 of file affinetransformation3d_base.h.
| soma::AffineTransformation3dBase::AffineTransformation3dBase | ( | ) |
Create an identity transformation.
Referenced by AffineTransformation3dBase(), inverse(), operator*=(), operator-(), operator=(), operator=(), operator=(), operator==(), transformNormalDouble(), and transformVector().
| soma::AffineTransformation3dBase::AffineTransformation3dBase | ( | const AffineTransformation3dBase & | other | ) |
References AffineTransformation3dBase().
| soma::AffineTransformation3dBase::AffineTransformation3dBase | ( | const std::vector< float > & | mat | ) |
Create a AffineTransformation3d from a 4x4 matrix given as a line vector.
| soma::AffineTransformation3dBase::AffineTransformation3dBase | ( | const carto::Object | mat | ) |
Create a AffineTransformation3d from a 4x4 matrix given as a line vector in an Object.
|
virtual |
|
virtual |
Reimplemented from soma::AffineTransformationBase.
| void soma::AffineTransformation3dBase::fromColumnVector | ( | const float * | vec | ) |
transform a column vector to an AffineTransformation3d (useful for conversions from OpenGL matrices)
References fromColumnVector().
Referenced by fromColumnVector().
|
virtual |
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 from soma::Transformation.
References getInverse().
Referenced by getInverse().
| std::unique_ptr< AffineTransformation3dBase > soma::AffineTransformation3dBase::inverse | ( | ) | const |
References AffineTransformation3dBase(), and inverse().
Referenced by inverse().
|
virtual |
Test if the transformation can be inverted.
getInverse() can be called if this method returns true, in order to obtain the inverse transformation.
Reimplemented from soma::Transformation.
References invertible().
Referenced by invertible().
|
virtual |
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 from soma::Transformation.
| AffineTransformation3dBase & soma::AffineTransformation3dBase::operator*= | ( | const AffineTransformation3dBase & | trans | ) |
References AffineTransformation3dBase().
| AffineTransformation3dBase soma::AffineTransformation3dBase::operator- | ( | ) | const |
References AffineTransformation3dBase().
|
virtual |
References AffineTransformation3dBase().
|
virtual |
Reimplemented from soma::AffineTransformationBase.
References AffineTransformation3dBase().
|
virtual |
Reimplemented from soma::AffineTransformationBase.
References AffineTransformation3dBase().
|
virtual |
References AffineTransformation3dBase().
|
virtual |
Reimplemented from soma::AffineTransformationBase.
References setToIdentity().
Referenced by setToIdentity().
| void soma::AffineTransformation3dBase::setTranslation | ( | Point3df | trans | ) |
References setTranslation().
Referenced by setTranslation().
Definition at line 218 of file affinetransformation3d_base.h.
References soma::Transformation3d::transform().
Definition at line 212 of file affinetransformation3d_base.h.
References soma::Transformation3d::transform().
Definition at line 214 of file affinetransformation3d_base.h.
References soma::Transformation3d::transform().
Definition at line 220 of file affinetransformation3d_base.h.
References soma::Transformation3d::transform().
|
inlinevirtual |
Reimplemented from soma::Transformation3d.
Definition at line 225 of file affinetransformation3d_base.h.
References soma::AffineTransformationBase::transform().
|
inlinevirtual |
Reimplemented from soma::Transformation3d.
Definition at line 228 of file affinetransformation3d_base.h.
References soma::Transformation::transform().
|
inlinevirtual |
Reimplemented from soma::Transformation3d.
Definition at line 230 of file affinetransformation3d_base.h.
References soma::Transformation::transform().
|
inline |
Definition at line 210 of file affinetransformation3d_base.h.
References soma::Transformation3d::transform().
|
inline |
Definition at line 216 of file affinetransformation3d_base.h.
References soma::Transformation3d::transform().
|
inline |
Definition at line 222 of file affinetransformation3d_base.h.
References soma::Transformation3d::transform().
|
protectedvirtual |
|
protectedvirtual |
Reimplemented from soma::Transformation3d.
References transformFloat().
Referenced by transformFloat().
|
protectedvirtual |
Reimplemented from soma::Transformation3d.
References transformInt(), transformVectorPoint3dd(), and transformVectorPoint3df().
Referenced by transformInt().
Definition at line 401 of file affinetransformation3d_base.h.
References transformNormal(), and transformNormalPoint3dd().
Referenced by transformNormal(), transformNormal(), transformNormal(), transformNormal(), transformNormalFloat(), transformNormalPoint3dd(), transformNormalPoint3df(), transformUnitNormal(), and transformVector().
Definition at line 394 of file affinetransformation3d_base.h.
References transformNormal(), and transformNormalPoint3df().
|
inline |
Definition at line 380 of file affinetransformation3d_base.h.
References transformNormal(), and transformNormalDouble().
|
inline |
Definition at line 387 of file affinetransformation3d_base.h.
References transformNormal(), and transformNormalFloat().
|
protectedvirtual |
References AffineTransformation3dBase(), transformNormalDouble(), and transformNormalFloat().
Referenced by transformNormal(), and transformNormalDouble().
|
inlineprotectedvirtual |
Definition at line 439 of file affinetransformation3d_base.h.
References transformNormal().
Referenced by transformNormal(), and transformNormalDouble().
|
inlineprotectedvirtual |
Definition at line 432 of file affinetransformation3d_base.h.
References transformNormal(), and transformNormalPoint3dd().
Referenced by transformNormal(), transformNormalPoint3dd(), and transformVectorInt().
|
inlineprotectedvirtual |
Definition at line 422 of file affinetransformation3d_base.h.
References transformNormal(), and transformNormalPoint3df().
Referenced by transformNormal(), transformNormalPoint3df(), and transformVectorInt().
Definition at line 469 of file affinetransformation3d_base.h.
References transformUnitNormal().
Referenced by transformUnitNormal(), transformUnitNormal(), transformUnitNormal(), and transformVector().
Definition at line 458 of file affinetransformation3d_base.h.
References transformUnitNormal().
|
inline |
Definition at line 450 of file affinetransformation3d_base.h.
References transformNormal().
|
inline |
Definition at line 476 of file affinetransformation3d_base.h.
References transformUnitNormal().
Definition at line 334 of file affinetransformation3d_base.h.
References transformVector(), and transformVectorPoint3dd().
Referenced by transformVector(), transformVector(), transformVector(), transformVector(), transformVector(), transformVector(), transformVector(), transformVector(), transformVector(), and transformVectorPoint3dd().
Definition at line 327 of file affinetransformation3d_base.h.
References transformVector(), and transformVectorPoint3df().
References transformNormal(), transformUnitNormal(), and transformVector().
|
inlinevirtual |
Reimplemented from soma::Transformation3d.
Definition at line 341 of file affinetransformation3d_base.h.
References transformVector(), and transformVectorDouble().
|
inlinevirtual |
Reimplemented from soma::Transformation3d.
Definition at line 354 of file affinetransformation3d_base.h.
References transformVector(), and transformVectorFloat().
|
inlinevirtual |
Reimplemented from soma::Transformation3d.
Definition at line 367 of file affinetransformation3d_base.h.
References transformVector(), and transformVectorInt().
|
inline |
Definition at line 306 of file affinetransformation3d_base.h.
References AffineTransformation3dBase(), transformVector(), and transformVectorDouble().
|
inline |
Definition at line 313 of file affinetransformation3d_base.h.
References transformVector(), and transformVectorFloat().
|
inline |
Definition at line 320 of file affinetransformation3d_base.h.
References transformVector(), and transformVectorInt().
|
protectedvirtual |
References transformVectorDouble().
Referenced by transformVector(), transformVector(), and transformVectorDouble().
|
protectedvirtual |
References transformVectorFloat().
Referenced by transformVector(), transformVector(), transformVectorFloat(), and transformVectorPoint3df().
|
protectedvirtual |
References transformNormalPoint3dd(), transformNormalPoint3df(), and transformVectorInt().
Referenced by transformVector(), transformVector(), and transformVectorInt().
|
inlineprotectedvirtual |
Definition at line 415 of file affinetransformation3d_base.h.
References transformVector(), and transformVectorPoint3dd().
Referenced by transformInt(), transformVector(), and transformVectorPoint3dd().
|
inlineprotectedvirtual |
Definition at line 408 of file affinetransformation3d_base.h.
References transformVectorFloat(), and transformVectorPoint3df().
Referenced by transformInt(), transformVector(), and transformVectorPoint3df().