OpenVDB  0.104.0
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 Vec3d applyIJT (const Vec3d &in) const =0
 
virtual Vec3d applyIJT (const Vec3d &in, const Vec3d &pos) const =0
 
virtual Mat3d applyIJC (const Mat3d &m) const =0
 
virtual Mat3d applyIJC (const Mat3d &m, const Vec3d &v, const Vec3d &pos) 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 rotate (double radians, Axis axis=X_AXIS) const =0
 Deprecated API for updating the map; use preRotate() instead. More...
 
virtual MapBase::Ptr translate (const Vec3d &) const =0
 Deprecated API for updating the map; use postTranslate() instead. More...
 
virtual MapBase::Ptr scale (const Vec3d &) const =0
 Deprecated API for updating the map; use preScale() instead. More...
 
virtual MapBase::Ptr shear (double shear, Axis axis0, Axis axis1) const =0
 Deprecated API for updating the map; use preShear() instead. More...
 
virtual Vec3d voxelSize () const =0
 Method to return the local size of a voxel. More...
 
virtual Vec3d voxelSize (const Vec3d &) const =0
 Method to return the local size of a voxel. More...
 
virtual Vec3d voxelDimensions () const =0
 Deprecated API to return local size of a voxel, use voxelSize() instead. More...
 
virtual Vec3d voxelDimensions (const Vec3d &) const =0
 Deprecated API to return local size of a voxel, use voxelSize() instead. 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...
 

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
virtual Mat3d applyIJC ( const Mat3d &  m,
const Vec3d &  v,
const Vec3d &  pos 
) const
pure virtual
virtual Vec3d applyIJT ( const Vec3d &  in) const
pure virtual
virtual Vec3d applyIJT ( const Vec3d &  in,
const Vec3d &  pos 
) const
pure virtual
virtual Vec3d applyInverseMap ( const Vec3d &  in) const
pure virtual
virtual Vec3d applyMap ( const Vec3d &  in) const
pure virtual
virtual MapBase::Ptr copy ( ) const
pure virtual
virtual double determinant ( ) const
pure virtual
virtual double determinant ( const Vec3d &  ) const
pure virtual
virtual boost::shared_ptr<AffineMap> getAffineMap ( ) const
pure virtual
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 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
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
virtual void read ( std::istream &  )
pure virtual
virtual MapBase::Ptr rotate ( double  radians,
Axis  axis = X_AXIS 
) const
pure virtual

Deprecated API for updating the map; use preRotate() instead.

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

virtual MapBase::Ptr scale ( const Vec3d &  ) const
pure virtual

Deprecated API for updating the map; use preScale() instead.

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

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

Deprecated API for updating the map; use preShear() instead.

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

virtual std::string str ( ) const
pure virtual
virtual MapBase::Ptr translate ( const Vec3d &  ) const
pure virtual
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 voxelDimensions ( ) const
pure virtual

Deprecated API to return local size of a voxel, use voxelSize() instead.

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

virtual Vec3d voxelDimensions ( const Vec3d &  ) const
pure virtual

Deprecated API to return local size of a voxel, use voxelSize() instead.

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

virtual Vec3d voxelSize ( ) const
pure virtual

Method to return the local size of a voxel.

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.

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

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

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