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

A specialized Affine transform that scales along the principal axis the scaling need not be uniform in the three-directions. More...

#include <Maps.h>

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

Public Types

using Ptr = SharedPtr< ScaleMap >
 
using ConstPtr = SharedPtr< const ScaleMap >
 
- Public Types inherited from openvdb::OPENVDB_VERSION_NAME::math::MapBase
using Ptr = SharedPtr< MapBase >
 
using ConstPtr = SharedPtr< const MapBase >
 
using MapFactory ) = Ptr(*)(
 

Public Member Functions

 ScaleMap ()
 
 ScaleMap (const Vec3d &scale)
 
 ScaleMap (const ScaleMap &other)
 
 ~ScaleMap () override=default
 
MapBase::Ptr copy () const override
 Return a MapBase::Ptr to a deep copy of this map. More...
 
MapBase::Ptr inverseMap () const override
 Return a new map representing the inverse of this map. More...
 
Name type () const override
 Return the name of this map's concrete type (e.g., "AffineMap"). More...
 
bool isLinear () const OPENVDB_MAP_FUNC_SPECIFIER
 Return true (a ScaleMap is always linear). More...
 
bool hasUniformScale () const OPENVDB_MAP_FUNC_SPECIFIER
 Return true if the values have the same magitude (eg. -1, 1, -1 would be a rotation). More...
 
Vec3d applyMap (const Vec3d &in) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the image of in under the map. More...
 
Vec3d applyInverseMap (const Vec3d &in) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the pre-image of in under the map. More...
 
Vec3d applyJacobian (const Vec3d &in, const Vec3d &) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the Jacobian of the map applied to in. More...
 
Vec3d applyJacobian (const Vec3d &in) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the Jacobian of the map applied to in. More...
 
Vec3d applyInverseJacobian (const Vec3d &in, const Vec3d &) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the Inverse Jacobian of the map applied to in (i.e. inverse map with out translation) More...
 
Vec3d applyInverseJacobian (const Vec3d &in) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the Inverse Jacobian of the map applied to in (i.e. inverse map with out translation) More...
 
Vec3d applyJT (const Vec3d &in, const Vec3d &) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the Jacobian Transpose of the map applied to in. More...
 
Vec3d applyJT (const Vec3d &in) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the Jacobian Transpose of the map applied to in. More...
 
Vec3d applyIJT (const Vec3d &in, const Vec3d &) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the transpose of the inverse Jacobian of the map applied to in. More...
 
Vec3d applyIJT (const Vec3d &in) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the transpose of the inverse Jacobian of the map applied to in. More...
 
Mat3d applyIJC (const Mat3d &in) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the Jacobian Curvature: zero for a linear map. More...
 
Mat3d applyIJC (const Mat3d &in, const Vec3d &, const Vec3d &) const OPENVDB_MAP_FUNC_SPECIFIER
 
double determinant (const Vec3d &) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the product of the scale values, ignores argument. More...
 
double determinant () const OPENVDB_MAP_FUNC_SPECIFIER
 Return the product of the scale values. More...
 
const Vec3dgetScale () const
 Return the scale values that define the map. More...
 
const Vec3dgetInvScaleSqr () const
 Return the square of the scale. Used to optimize some finite difference calculations. More...
 
const Vec3dgetInvTwiceScale () const
 Return 1/(2 scale). Used to optimize some finite difference calculations. More...
 
const Vec3dgetInvScale () const
 Return 1/(scale) More...
 
void read (std::istream &is) override
 read serialization More...
 
void write (std::ostream &os) const override
 write serialization More...
 
std::string str () const override
 string serialization, useful for debuging More...
 
bool isEqual (const MapBase &other) const override
 Return true if this map is equal to the given map. More...
 
bool operator== (const ScaleMap &other) const
 
bool operator!= (const ScaleMap &other) const
 
AffineMap::Ptr getAffineMap () const override
 Return a AffineMap equivalent to this map. More...
 
Vec3d voxelSize () const OPENVDB_MAP_FUNC_SPECIFIER
 Return the lengths of the images of the segments (0,0,0) − 1,0,0), (0,0,0) − (0,1,0) and (0,0,0) − (0,0,1). More...
 
Vec3d voxelSize (const Vec3d &) const OPENVDB_MAP_FUNC_SPECIFIER
 Return the lengths of the images of the segments (0,0,0) − 1,0,0), (0,0,0) − (0,1,0) and (0,0,0) − (0,0,1). More...
 
MapBase::Ptr preRotate (double radians, Axis axis) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map. More...
 
MapBase::Ptr preTranslate (const Vec3d &) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map. More...
 
MapBase::Ptr preScale (const Vec3d &) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map. More...
 
MapBase::Ptr preShear (double shear, Axis axis0, Axis axis1) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map. More...
 
MapBase::Ptr postRotate (double radians, Axis axis) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map. More...
 
MapBase::Ptr postTranslate (const Vec3d &) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map. More...
 
MapBase::Ptr postScale (const Vec3d &) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map. More...
 
MapBase::Ptr postShear (double shear, Axis axis0, Axis axis1) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map. More...
 
- Public Member Functions inherited from openvdb::OPENVDB_VERSION_NAME::math::MapBase
 MapBase (const MapBase &)=default
 
virtual ~MapBase ()=default
 
template<typename MapT >
bool isType () const
 Return true if this map is of concrete type MapT (e.g., AffineMap). More...
 

Static Public Member Functions

static MapBase::Ptr create ()
 Return a MapBase::Ptr to a new ScaleMap. More...
 
static bool isRegistered ()
 
static void registerMap ()
 
static Name mapType ()
 

Additional Inherited Members

- Protected Member Functions inherited from openvdb::OPENVDB_VERSION_NAME::math::MapBase
 MapBase ()
 
- Static Protected Member Functions inherited from openvdb::OPENVDB_VERSION_NAME::math::MapBase
template<typename MapT >
static bool isEqualBase (const MapT &self, const MapBase &other)
 

Detailed Description

A specialized Affine transform that scales along the principal axis the scaling need not be uniform in the three-directions.

Note
This class is not marked final because UniformScaleMap inherits from it, so some of the member methods are marked final instead.

Definition at line 669 of file Maps.h.

Member Typedef Documentation

Constructor & Destructor Documentation

openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::ScaleMap ( )
inline

Definition at line 675 of file Maps.h.

openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::ScaleMap ( const Vec3d scale)
inline

Definition at line 679 of file Maps.h.

openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::ScaleMap ( const ScaleMap other)
inline

Definition at line 693 of file Maps.h.

openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::~ScaleMap ( )
overridedefault

Member Function Documentation

Mat3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyIJC ( const Mat3d in) const
inlinevirtual
Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyIJT ( const Vec3d in,
const Vec3d  
) const
inlinevirtual

Return the transpose of the inverse Jacobian of the map applied to in.

Ignores second argument

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 781 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyIJT ( const Vec3d in) const
inlinevirtual
Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyInverseJacobian ( const Vec3d in,
const Vec3d  
) const
inlinevirtual

Return the Inverse Jacobian of the map applied to in (i.e. inverse map with out translation)

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 764 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyInverseJacobian ( const Vec3d in) const
inlinevirtual

Return the Inverse Jacobian of the map applied to in (i.e. inverse map with out translation)

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 769 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyInverseMap ( const Vec3d in) const
inlinevirtual
Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyJacobian ( const Vec3d in,
const Vec3d  
) const
inlinevirtual
Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyJacobian ( const Vec3d in) const
inlinevirtual
Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyJT ( const Vec3d in,
const Vec3d  
) const
inlinevirtual

Return the Jacobian Transpose of the map applied to in.

This tranforms range-space gradients to domain-space gradients

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 775 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyJT ( const Vec3d in) const
inlinevirtual
Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::applyMap ( const Vec3d in) const
inlinevirtual
static MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::create ( )
inlinestatic

Return a MapBase::Ptr to a new ScaleMap.

Definition at line 706 of file Maps.h.

double openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::determinant ( const Vec3d ) const
inlinevirtual
double openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::determinant ( ) const
inlinevirtual
AffineMap::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::getAffineMap ( ) const
inlineoverridevirtual
const Vec3d& openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::getInvScale ( ) const
inline

Return 1/(scale)

Definition at line 816 of file Maps.h.

const Vec3d& openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::getInvScaleSqr ( ) const
inline

Return the square of the scale. Used to optimize some finite difference calculations.

Definition at line 812 of file Maps.h.

const Vec3d& openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::getInvTwiceScale ( ) const
inline

Return 1/(2 scale). Used to optimize some finite difference calculations.

Definition at line 814 of file Maps.h.

const Vec3d& openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::getScale ( ) const
inline

Return the scale values that define the map.

Definition at line 809 of file Maps.h.

bool openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::hasUniformScale ( ) const
inlinevirtual
MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::inverseMap ( ) const
inlineoverridevirtual

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.

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 710 of file Maps.h.

bool openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::isLinear ( ) const
inlinevirtual
static bool openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::isRegistered ( )
inlinestatic

Definition at line 714 of file Maps.h.

static Name openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::mapType ( )
inlinestatic

Definition at line 724 of file Maps.h.

Definition at line 862 of file Maps.h.

bool openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::operator== ( const ScaleMap other) const
inline

Definition at line 855 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::postRotate ( double  radians,
Axis  axis 
) const
inlineoverridevirtual

Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map.

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 896 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::postScale ( const Vec3d v) const
inlineoverridevirtual

Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map.

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 985 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::postShear ( double  shear,
Axis  axis0,
Axis  axis1 
) const
inlineoverridevirtual

Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map.

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 904 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::postTranslate ( const Vec3d t) const
inlineoverridevirtual
MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::preRotate ( double  radians,
Axis  axis 
) const
inlineoverridevirtual

Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map.

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 875 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::preScale ( const Vec3d v) const
inlineoverridevirtual

Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map.

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 973 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::preShear ( double  shear,
Axis  axis0,
Axis  axis1 
) const
inlineoverridevirtual

Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation to the existing map.

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 884 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::preTranslate ( const Vec3d t) const
inlineoverridevirtual
void openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::read ( std::istream &  is)
inlineoverridevirtual
static void openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::registerMap ( )
inlinestatic

Definition at line 716 of file Maps.h.

std::string openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::str ( ) const
inlineoverridevirtual
Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::voxelSize ( ) const
inlinevirtual

Return the lengths of the images of the segments (0,0,0) − 1,0,0), (0,0,0) − (0,1,0) and (0,0,0) − (0,0,1).

This is equivalent to the absolute values of the scale values

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 822 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::voxelSize ( const Vec3d ) const
inlinevirtual

Return the lengths of the images of the segments (0,0,0) − 1,0,0), (0,0,0) − (0,1,0) and (0,0,0) − (0,0,1).

This is equivalent to the absolute values of the scale values

Implements openvdb::OPENVDB_VERSION_NAME::math::MapBase.

Reimplemented in openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER, and openvdb::OPENVDB_VERSION_NAME::math::OPENVDB_MAP_CLASS_SPECIFIER.

Definition at line 823 of file Maps.h.

void openvdb::OPENVDB_VERSION_NAME::math::ScaleMap::write ( std::ostream &  os) const
inlineoverridevirtual

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