OpenVDB 10.0.1
|
Abstract base class for maps. More...
#include <openvdb/math/Maps.h>
Public Types | |
using | Ptr = SharedPtr< MapBase > |
using | ConstPtr = SharedPtr< const MapBase > |
using | MapFactory = Ptr(*)() |
Public Member Functions | |
MapBase (const MapBase &)=default | |
virtual | ~MapBase ()=default |
virtual SharedPtr< AffineMap > | getAffineMap () const =0 |
virtual Name | type () const =0 |
Return the name of this map's concrete type (e.g., "AffineMap" ). | |
template<typename MapT > | |
bool | isType () const |
Return true if this map is of concrete type MapT (e.g., AffineMap). | |
virtual bool | isEqual (const MapBase &other) const =0 |
Return true if this map is equal to the given map. | |
virtual bool | isLinear () const =0 |
Return true if this map is linear. | |
virtual bool | hasUniformScale () const =0 |
Return true if the spacing between the image of latice is uniform in all directions. | |
virtual Vec3d | applyMap (const Vec3d &in) const =0 |
virtual Vec3d | applyInverseMap (const Vec3d &in) const =0 |
virtual Vec3d | applyIJT (const Vec3d &in) const =0 |
Apply the Inverse Jacobian Transpose of this map to a vector. For a linear map this is equivalent to applying the transpose of inverse map excluding translation. | |
virtual Vec3d | applyIJT (const Vec3d &in, const Vec3d &domainPos) const =0 |
virtual Mat3d | applyIJC (const Mat3d &m) const =0 |
virtual Mat3d | applyIJC (const Mat3d &m, const Vec3d &v, const Vec3d &domainPos) const =0 |
virtual double | determinant () const =0 |
virtual double | determinant (const Vec3d &) const =0 |
virtual Vec3d | voxelSize () const =0 |
Method to return the local size of a voxel. When a location is specified as an argument, it is understood to be be in the domain of the map (i.e. index space) | |
virtual Vec3d | voxelSize (const Vec3d &) const =0 |
virtual void | read (std::istream &)=0 |
virtual void | write (std::ostream &) const =0 |
virtual std::string | str () const =0 |
virtual MapBase::Ptr | copy () const =0 |
virtual MapBase::Ptr | preRotate (double radians, Axis axis=X_AXIS) const =0 |
Methods to update the map. | |
virtual MapBase::Ptr | preTranslate (const Vec3d &) const =0 |
virtual MapBase::Ptr | preScale (const Vec3d &) const =0 |
virtual MapBase::Ptr | preShear (double shear, Axis axis0, Axis axis1) const =0 |
virtual MapBase::Ptr | postRotate (double radians, Axis axis=X_AXIS) const =0 |
virtual MapBase::Ptr | postTranslate (const Vec3d &) const =0 |
virtual MapBase::Ptr | postScale (const Vec3d &) const =0 |
virtual MapBase::Ptr | postShear (double shear, Axis axis0, Axis axis1) const =0 |
virtual Vec3d | applyJacobian (const Vec3d &in) const =0 |
Apply the Jacobian of this map to a vector. For a linear map this is equivalent to applying the map excluding translation. | |
virtual Vec3d | applyJacobian (const Vec3d &in, const Vec3d &domainPos) const =0 |
virtual Vec3d | applyInverseJacobian (const Vec3d &in) const =0 |
Apply the InverseJacobian of this map to a vector. For a linear map this is equivalent to applying the map inverse excluding translation. | |
virtual Vec3d | applyInverseJacobian (const Vec3d &in, const Vec3d &domainPos) const =0 |
virtual Vec3d | applyJT (const Vec3d &in) const =0 |
Apply the Jacobian transpose of this map to a vector. For a linear map this is equivalent to applying the transpose of the map excluding translation. | |
virtual Vec3d | applyJT (const Vec3d &in, const Vec3d &domainPos) const =0 |
virtual MapBase::Ptr | inverseMap () const =0 |
Return a new map representing the inverse of this map. | |
Protected Member Functions | |
MapBase () | |
Static Protected Member Functions | |
template<typename MapT > | |
static bool | isEqualBase (const MapT &self, const MapBase &other) |
Abstract base class for maps.
using MapFactory = Ptr (*)() |
|
virtualdefault |
|
inlineprotected |
Implemented in ScaleMap, ScaleTranslateMap, UnitaryMap, NonlinearFrustumMap, AffineMap, and TranslationMap.
|
pure virtual |
Implemented in NonlinearFrustumMap, ScaleMap, ScaleTranslateMap, AffineMap, UnitaryMap, and TranslationMap.
Apply the Inverse Jacobian Transpose of this map to a vector. For a linear map this is equivalent to applying the transpose of inverse map excluding translation.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Implemented in NonlinearFrustumMap, ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, and UnitaryMap.
Apply the InverseJacobian of this map to a vector. For a linear map this is equivalent to applying the map inverse excluding translation.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Apply the Jacobian of this map to a vector. For a linear map this is equivalent to applying the map excluding translation.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Apply the Jacobian transpose of this map to a vector. For a linear map this is equivalent to applying the transpose of the map excluding translation.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in AffineMap, ScaleMap, UniformScaleMap, TranslationMap, ScaleTranslateMap, UniformScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Implemented in AffineMap, ScaleMap, TranslationMap, ScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Return true
if the spacing between the image of latice is uniform in all directions.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Return a new map representing the inverse of this map.
NotImplementedError | if the map is a NonlinearFrustumMap. |
Implemented in AffineMap, ScaleMap, UniformScaleMap, TranslationMap, ScaleTranslateMap, UniformScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Return true
if this map is equal to the given map.
Implemented in AffineMap, ScaleMap, UniformScaleMap, TranslationMap, ScaleTranslateMap, UniformScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
inlinestaticprotected |
|
pure virtual |
Return true
if this map is linear.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
|
inline |
Return true
if this map is of concrete type MapT
(e.g., AffineMap).
|
pure virtual |
Implemented in ScaleMap, TranslationMap, ScaleTranslateMap, UnitaryMap, AffineMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in ScaleMap, AffineMap, NonlinearFrustumMap, TranslationMap, ScaleTranslateMap, and UnitaryMap.
|
pure virtual |
Implemented in AffineMap, ScaleMap, TranslationMap, ScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in ScaleMap, UniformScaleMap, AffineMap, TranslationMap, ScaleTranslateMap, UniformScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Methods to update the map.
Implemented in ScaleMap, TranslationMap, ScaleTranslateMap, UnitaryMap, AffineMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in ScaleMap, AffineMap, NonlinearFrustumMap, TranslationMap, ScaleTranslateMap, and UnitaryMap.
|
pure virtual |
Implemented in AffineMap, ScaleMap, TranslationMap, ScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in ScaleMap, UniformScaleMap, AffineMap, TranslationMap, ScaleTranslateMap, UniformScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in AffineMap, ScaleMap, TranslationMap, ScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in AffineMap, ScaleMap, TranslationMap, ScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Return the name of this map's concrete type (e.g., "AffineMap"
).
Implemented in AffineMap, ScaleMap, UniformScaleMap, TranslationMap, ScaleTranslateMap, UniformScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Method to return the local size of a voxel. When a location is specified as an argument, it is understood to be be in the domain of the map (i.e. index space)
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
Implemented in ScaleMap, ScaleTranslateMap, AffineMap, TranslationMap, UnitaryMap, and NonlinearFrustumMap.
|
pure virtual |
Implemented in AffineMap, ScaleMap, TranslationMap, ScaleTranslateMap, UnitaryMap, and NonlinearFrustumMap.