OpenVDB: MapBase Class Reference

OpenVDB 3.1.0

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
MapBase Class Referenceabstract

Abstract base class for maps. More...

`#include <Maps.h>`

Inherited by AffineMap, NonlinearFrustumMap, ScaleMap, ScaleTranslateMap, TranslationMap, and UnitaryMap.

## Public Types
typedef boost::shared_ptr< MapBase > | Ptr
typedef boost::shared_ptr< const MapBase > | ConstPtr
typedef Ptr(* | MapFactory) ()

## Public Member Functions
virtual | ~MapBase ()
virtual boost::shared_ptr< AffineMap > | getAffineMap () 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.

## Member Typedef Documentation

typedef boost::shared_ptr<const MapBase> ConstPtr

typedef Ptr(* MapFactory) ()

typedef boost::shared_ptr<MapBase> Ptr

## Constructor & Destructor Documentation

virtual ~MapBase | ( |  | ) |
| inlinevirtual

MapBase | ( |  | ) |
| inlineprotected

## Member Function Documentation

virtual Mat3d applyIJC | ( | const Mat3d & | m | ) | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Mat3d applyIJC | ( | const Mat3d & | m,
|  | const Vec3d & | v,
|  | const Vec3d & | domainPos
| ) |  | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d applyIJT | ( | const Vec3d & | in | ) | const
| pure virtual

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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d applyIJT | ( | const Vec3d & | in,
|  | const Vec3d & | domainPos
| ) |  | const
| pure virtual

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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d 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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d 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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d applyInverseMap | ( | const Vec3d & | in | ) | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d 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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d 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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d 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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d 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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d applyMap | ( | const Vec3d & | in | ) | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual MapBase::Ptr copy | ( |  | ) | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, UniformScaleTranslateMap, ScaleTranslateMap, TranslationMap, UniformScaleMap, ScaleMap, and AffineMap.

virtual double determinant | ( |  | ) | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual double determinant | ( | const Vec3d & |  | ) | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual boost::shared_ptr<AffineMap> getAffineMap | ( |  | ) | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual bool hasUniformScale | ( |  | ) | const
| pure virtual

Return `true` if the spacing between the image of latice is uniform in all directions.

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual MapBase::Ptr inverseMap | ( |  | ) | const
| pure virtual

Return a new map representing the inverse of this map.

Exceptions

  NotImplementedError | if 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 NonlinearFrustumMap, UnitaryMap, UniformScaleTranslateMap, ScaleTranslateMap, TranslationMap, UniformScaleMap, ScaleMap, and AffineMap.

virtual bool isEqual | ( | const MapBase & | other | ) | const
| pure virtual

Return `true` if this map is equal to the given map.

Implemented in NonlinearFrustumMap, UnitaryMap, UniformScaleTranslateMap, ScaleTranslateMap, TranslationMap, UniformScaleMap, ScaleMap, and AffineMap.

static bool isEqualBase | ( | const MapT & | self,
|  | const MapBase & | other
| ) |  |
| inlinestaticprotected

virtual bool isLinear | ( |  | ) | const
| pure virtual

Return `true` if this map is linear.

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

bool isType | ( |  | ) | const
| inline

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

virtual MapBase::Ptr postRotate | ( | double | radians,
|  | Axis | axis = `X_AXIS`
| ) |  | const
| pure virtual

Methods to update the map.

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual MapBase::Ptr postScale | ( | const Vec3d & |  | ) | const
| pure virtual

Methods to update the map.

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual MapBase::Ptr postShear | ( | double | shear,
|  | Axis | axis0,
|  | Axis | axis1
| ) |  | const
| pure virtual

Methods to update the map.

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual MapBase::Ptr postTranslate | ( | const Vec3d & |  | ) | const
| pure virtual

Methods to update the map.

Implemented in NonlinearFrustumMap, UnitaryMap, UniformScaleTranslateMap, ScaleTranslateMap, TranslationMap, UniformScaleMap, ScaleMap, and AffineMap.

virtual MapBase::Ptr preRotate | ( | double | radians,
|  | Axis | axis = `X_AXIS`
| ) |  | const
| pure virtual

Methods to update the map.

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual MapBase::Ptr preScale | ( | const Vec3d & |  | ) | const
| pure virtual

Methods to update the map.

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual MapBase::Ptr preShear | ( | double | shear,
|  | Axis | axis0,
|  | Axis | axis1
| ) |  | const
| pure virtual

Methods to update the map.

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual MapBase::Ptr preTranslate | ( | const Vec3d & |  | ) | const
| pure virtual

Methods to update the map.

Implemented in NonlinearFrustumMap, UnitaryMap, UniformScaleTranslateMap, ScaleTranslateMap, TranslationMap, UniformScaleMap, ScaleMap, and AffineMap.

virtual void read | ( | std::istream & |  | ) |
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual std::string str | ( |  | ) | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Name type | ( |  | ) | const
| pure virtual

Return the name of this map's concrete type (e.g., `"AffineMap"`).

Implemented in NonlinearFrustumMap, UnitaryMap, UniformScaleTranslateMap, ScaleTranslateMap, TranslationMap, UniformScaleMap, ScaleMap, and AffineMap.

virtual Vec3d voxelSize | ( |  | ) | const
| 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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual Vec3d voxelSize | ( | const Vec3d & |  | ) | const
| 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 NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

virtual void write | ( | std::ostream & |  | ) | const
| pure virtual

Implemented in NonlinearFrustumMap, UnitaryMap, ScaleTranslateMap, TranslationMap, ScaleMap, and AffineMap.

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

- Maps.h