OpenVDB  1.1.0
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
MapBase Class Reference

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").
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
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 Vec3d voxelSize () const =0
 Method to return the local size of a voxel.
virtual Vec3d voxelSize (const Vec3d &) const =0
 Method to return the local size of a voxel.
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
 Methods to update the map.
virtual MapBase::Ptr preScale (const Vec3d &) const =0
 Methods to update the map.
virtual MapBase::Ptr preShear (double shear, Axis axis0, Axis axis1) const =0
 Methods to update the map.
virtual MapBase::Ptr postRotate (double radians, Axis axis=X_AXIS) const =0
 Methods to update the map.
virtual MapBase::Ptr postTranslate (const Vec3d &) const =0
 Methods to update the map.
virtual MapBase::Ptr postScale (const Vec3d &) const =0
 Methods to update the map.
virtual MapBase::Ptr postShear (double shear, Axis axis0, Axis axis1) const =0
 Methods to update the map.

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 std::string str ( ) 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 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: