HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
openvdb::OPENVDB_VERSION_NAME::math::MapBase Class Referenceabstract

Abstract base class for maps. More...

#include <Maps.h>

+ Inheritance diagram for openvdb::OPENVDB_VERSION_NAME::math::MapBase:

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< AffineMapgetAffineMap () const =0
 
virtual Name type () const =0
 Return the name of this map's concrete type (e.g., "AffineMap"). More...
 
template<typename MapT >
bool isType () const
 Return true if this map is of concrete type MapT (e.g., AffineMap). More...
 
virtual bool isEqual (const MapBase &other) const =0
 Return true if this map is equal to the given map. More...
 
virtual bool isLinear () const =0
 Return true if this map is linear. More...
 
virtual bool hasUniformScale () const =0
 Return true if the spacing between the image of latice is uniform in all directions. More...
 
virtual Vec3d applyMap (const Vec3d &in) const =0
 
virtual Vec3d applyInverseMap (const Vec3d &in) 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 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 inverseMap () const =0
 Return a new map representing the inverse of this map. More...
 
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. More...
 
virtual Vec3d applyIJT (const Vec3d &in, const Vec3d &domainPos) 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. More...
 
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) More...
 
virtual Vec3d voxelSize (const Vec3d &) 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) More...
 
virtual MapBase::Ptr preRotate (double radians, Axis axis=X_AXIS) const =0
 Methods to update the map. More...
 
virtual MapBase::Ptr preTranslate (const Vec3d &) const =0
 Methods to update the map. More...
 
virtual MapBase::Ptr preScale (const Vec3d &) const =0
 Methods to update the map. More...
 
virtual MapBase::Ptr preShear (double shear, Axis axis0, Axis axis1) const =0
 Methods to update the map. More...
 
virtual MapBase::Ptr postRotate (double radians, Axis axis=X_AXIS) const =0
 Methods to update the map. More...
 
virtual MapBase::Ptr postTranslate (const Vec3d &) const =0
 Methods to update the map. More...
 
virtual MapBase::Ptr postScale (const Vec3d &) const =0
 Methods to update the map. More...
 
virtual MapBase::Ptr postShear (double shear, Axis axis0, Axis axis1) const =0
 Methods to update the map. More...
 
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. More...
 
virtual Vec3d applyJacobian (const Vec3d &in, const Vec3d &domainPos) const =0
 Apply the Jacobian of this map to a vector. For a linear map this is equivalent to applying the map excluding translation. More...
 
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. More...
 
virtual Vec3d applyInverseJacobian (const Vec3d &in, const Vec3d &domainPos) 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. More...
 
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. More...
 
virtual Vec3d applyJT (const Vec3d &in, const Vec3d &domainPos) 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. More...
 

Protected Member Functions

 MapBase ()
 

Static Protected Member Functions

template<typename MapT >
static bool isEqualBase (const MapT &self, const MapBase &other)
 

Detailed Description

Abstract base class for maps.

Definition at line 134 of file Maps.h.

Member Typedef Documentation

using openvdb::OPENVDB_VERSION_NAME::math::MapBase::MapFactory = Ptr (*)(

Definition at line 139 of file Maps.h.

Constructor & Destructor Documentation

openvdb::OPENVDB_VERSION_NAME::math::MapBase::MapBase ( const MapBase )
default
virtual openvdb::OPENVDB_VERSION_NAME::math::MapBase::~MapBase ( )
virtualdefault
openvdb::OPENVDB_VERSION_NAME::math::MapBase::MapBase ( )
inlineprotected

Definition at line 247 of file Maps.h.

Member Function Documentation

virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::applyIJT ( const Vec3d in) const
pure virtual
virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::applyIJT ( const Vec3d in,
const Vec3d domainPos 
) const
pure virtual
virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::applyInverseJacobian ( const Vec3d in) const
pure virtual

Apply the InverseJacobian of this map to a vector. For a linear map this is equivalent to applying the map inverse excluding translation.

Warning
Houdini 12.5 uses an earlier version of OpenVDB, and maps created with that version lack a virtual table entry for this method. Do not call this method from Houdini 12.5.

Implemented in openvdb::OPENVDB_VERSION_NAME::math::NonlinearFrustumMap, openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleTranslateMap, openvdb::OPENVDB_VERSION_NAME::math::TranslationMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleMap, and openvdb::OPENVDB_VERSION_NAME::math::AffineMap.

virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::applyInverseJacobian ( const Vec3d in,
const Vec3d domainPos 
) const
pure virtual

Apply the InverseJacobian of this map to a vector. For a linear map this is equivalent to applying the map inverse excluding translation.

Warning
Houdini 12.5 uses an earlier version of OpenVDB, and maps created with that version lack a virtual table entry for this method. Do not call this method from Houdini 12.5.

Implemented in openvdb::OPENVDB_VERSION_NAME::math::NonlinearFrustumMap, openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleTranslateMap, openvdb::OPENVDB_VERSION_NAME::math::TranslationMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleMap, and openvdb::OPENVDB_VERSION_NAME::math::AffineMap.

virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::applyJacobian ( const Vec3d in) const
pure virtual

Apply the Jacobian of this map to a vector. For a linear map this is equivalent to applying the map excluding translation.

Warning
Houdini 12.5 uses an earlier version of OpenVDB, and maps created with that version lack a virtual table entry for this method. Do not call this method from Houdini 12.5.

Implemented in openvdb::OPENVDB_VERSION_NAME::math::NonlinearFrustumMap, openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleTranslateMap, openvdb::OPENVDB_VERSION_NAME::math::TranslationMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleMap, and openvdb::OPENVDB_VERSION_NAME::math::AffineMap.

virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::applyJacobian ( const Vec3d in,
const Vec3d domainPos 
) const
pure virtual

Apply the Jacobian of this map to a vector. For a linear map this is equivalent to applying the map excluding translation.

Warning
Houdini 12.5 uses an earlier version of OpenVDB, and maps created with that version lack a virtual table entry for this method. Do not call this method from Houdini 12.5.

Implemented in openvdb::OPENVDB_VERSION_NAME::math::NonlinearFrustumMap, openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleTranslateMap, openvdb::OPENVDB_VERSION_NAME::math::TranslationMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleMap, and openvdb::OPENVDB_VERSION_NAME::math::AffineMap.

virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::applyJT ( const Vec3d in) const
pure virtual

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.

Warning
Houdini 12.5 uses an earlier version of OpenVDB, and maps created with that version lack a virtual table entry for this method. Do not call this method from Houdini 12.5.

Implemented in openvdb::OPENVDB_VERSION_NAME::math::NonlinearFrustumMap, openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleTranslateMap, openvdb::OPENVDB_VERSION_NAME::math::TranslationMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleMap, and openvdb::OPENVDB_VERSION_NAME::math::AffineMap.

virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::applyJT ( const Vec3d in,
const Vec3d domainPos 
) const
pure virtual

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.

Warning
Houdini 12.5 uses an earlier version of OpenVDB, and maps created with that version lack a virtual table entry for this method. Do not call this method from Houdini 12.5.

Implemented in openvdb::OPENVDB_VERSION_NAME::math::NonlinearFrustumMap, openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleTranslateMap, openvdb::OPENVDB_VERSION_NAME::math::TranslationMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleMap, and openvdb::OPENVDB_VERSION_NAME::math::AffineMap.

virtual bool openvdb::OPENVDB_VERSION_NAME::math::MapBase::hasUniformScale ( ) const
pure virtual
virtual MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::MapBase::inverseMap ( ) const
pure virtual

Return a new map representing the inverse of this map.

Exceptions
NotImplementedErrorif the map is a NonlinearFrustumMap.
Warning
Houdini 12.5 uses an earlier version of OpenVDB, and maps created with that version lack a virtual table entry for this method. Do not call this method from Houdini 12.5.

Implemented in openvdb::OPENVDB_VERSION_NAME::math::NonlinearFrustumMap, openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap, openvdb::OPENVDB_VERSION_NAME::math::UniformScaleTranslateMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleTranslateMap, openvdb::OPENVDB_VERSION_NAME::math::TranslationMap, openvdb::OPENVDB_VERSION_NAME::math::UniformScaleMap, openvdb::OPENVDB_VERSION_NAME::math::ScaleMap, and openvdb::OPENVDB_VERSION_NAME::math::AffineMap.

template<typename MapT >
static bool openvdb::OPENVDB_VERSION_NAME::math::MapBase::isEqualBase ( const MapT &  self,
const MapBase other 
)
inlinestaticprotected

Definition at line 250 of file Maps.h.

template<typename MapT >
bool openvdb::OPENVDB_VERSION_NAME::math::MapBase::isType ( ) const
inline

Return true if this map is of concrete type MapT (e.g., AffineMap).

Definition at line 150 of file Maps.h.

virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::voxelSize ( ) const
pure virtual
virtual Vec3d openvdb::OPENVDB_VERSION_NAME::math::MapBase::voxelSize ( const Vec3d ) const
pure virtual

The documentation for this class was generated from the following file: