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

A specialized linear transform that performs a unitary maping i.e. rotation and or reflection. More...

#include <Maps.h>

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

Public Types

using Ptr = SharedPtr< UnitaryMap >
 
using ConstPtr = SharedPtr< const UnitaryMap >
 
- 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

 UnitaryMap ()
 default constructor makes an Idenity. More...
 
 UnitaryMap (const Vec3d &axis, double radians)
 
 UnitaryMap (Axis axis, double radians)
 
 UnitaryMap (const Mat3d &m)
 
 UnitaryMap (const Mat4d &m)
 
 UnitaryMap (const UnitaryMap &other)
 
 UnitaryMap (const UnitaryMap &first, const UnitaryMap &second)
 
 ~UnitaryMap () override=default
 
MapBase::Ptr copy () const override
 Returns a MapBase::Ptr to a deep copy of *this. More...
 
MapBase::Ptr inverseMap () const override
 Return a new map representing the inverse of this map. More...
 
Name type () const override
 Return UnitaryMap. More...
 
bool isLinear () const override
 Return true (a UnitaryMap is always linear). More...
 
bool hasUniformScale () const override
 Return false (by convention true) More...
 
bool isEqual (const MapBase &other) const override
 Return true if this map is equal to the given map. More...
 
bool operator== (const UnitaryMap &other) const
 
bool operator!= (const UnitaryMap &other) const
 
Vec3d applyMap (const Vec3d &in) const override
 Return the image of in under the map. More...
 
Vec3d applyInverseMap (const Vec3d &in) const override
 Return the pre-image of in under the map. More...
 
Vec3d applyJacobian (const Vec3d &in, const Vec3d &) const override
 Apply the Jacobian of this map to a vector. For a linear map this is equivalent to applying the map excluding translation. More...
 
Vec3d applyJacobian (const Vec3d &in) const override
 Return the Jacobian of the map applied to in. More...
 
Vec3d applyInverseJacobian (const Vec3d &in, const Vec3d &) const override
 Return the Inverse Jacobian of the map applied to in (i.e. inverse map with out translation) More...
 
Vec3d applyInverseJacobian (const Vec3d &in) const override
 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 override
 Return the Jacobian Transpose of the map applied to in. More...
 
Vec3d applyJT (const Vec3d &in) const override
 Return the Jacobian Transpose of the map applied to in. More...
 
Vec3d applyIJT (const Vec3d &in, const Vec3d &) const override
 Return the transpose of the inverse Jacobian of the map applied to in. More...
 
Vec3d applyIJT (const Vec3d &in) const override
 Return the transpose of the inverse Jacobian of the map applied to in. More...
 
Mat3d applyIJC (const Mat3d &in) const override
 Return the Jacobian Curvature: zero for a linear map. More...
 
Mat3d applyIJC (const Mat3d &in, const Vec3d &, const Vec3d &) const override
 
double determinant (const Vec3d &) const override
 Return the determinant of the Jacobian, ignores argument. More...
 
double determinant () const override
 Return the determinant of the Jacobian. More...
 
Vec3d voxelSize () const override
 Returns the lengths of the images of the segments $(0,0,0)-(1,0,0)$, $(0,0,0)-(0,1,0)$, $(0,0,0)-(0,0,1)$. More...
 
Vec3d voxelSize (const Vec3d &) const override
 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...
 
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...
 
AffineMap::Ptr getAffineMap () const override
 Return AffineMap::Ptr to an AffineMap equivalent to *this. 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 given rotation. More...
 
MapBase::Ptr preTranslate (const Vec3d &t) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the given translation. More...
 
MapBase::Ptr preScale (const Vec3d &v) const override
 Return a MapBase::Ptr to a new map that is the result of prepending the given scale. 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 given shear. More...
 
MapBase::Ptr postRotate (double radians, Axis axis) const override
 Return a MapBase::Ptr to a new map that is the result of appending the given rotation. More...
 
MapBase::Ptr postTranslate (const Vec3d &t) const override
 Return a MapBase::Ptr to a new map that is the result of appending the given translation. More...
 
MapBase::Ptr postScale (const Vec3d &v) const override
 Return a MapBase::Ptr to a new map that is the result of appending the given scale. 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 appending the given shear. 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 UnitaryMap. More...
 
static bool isRegistered ()
 
static void registerMap ()
 
static Name mapType ()
 Return UnitaryMap. More...
 

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 linear transform that performs a unitary maping i.e. rotation and or reflection.

Definition at line 1631 of file Maps.h.

Member Typedef Documentation

Constructor & Destructor Documentation

openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::UnitaryMap ( )
inline

default constructor makes an Idenity.

Definition at line 1638 of file Maps.h.

openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::UnitaryMap ( const Vec3d axis,
double  radians 
)
inline

Definition at line 1642 of file Maps.h.

openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::UnitaryMap ( Axis  axis,
double  radians 
)
inline

Definition at line 1649 of file Maps.h.

openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::UnitaryMap ( const Mat3d m)
inline

Definition at line 1656 of file Maps.h.

openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::UnitaryMap ( const Mat4d m)
inline

Definition at line 1668 of file Maps.h.

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

Definition at line 1693 of file Maps.h.

openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::UnitaryMap ( const UnitaryMap first,
const UnitaryMap second 
)
inline

Definition at line 1699 of file Maps.h.

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

Member Function Documentation

Mat3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyIJC ( const Mat3d in) const
inlineoverridevirtual

Return the Jacobian Curvature: zero for a linear map.

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

Definition at line 1781 of file Maps.h.

Mat3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyIJC ( const Mat3d in,
const Vec3d ,
const Vec3d  
) const
inlineoverridevirtual

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

Definition at line 1782 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyIJT ( const Vec3d in,
const Vec3d  
) const
inlineoverridevirtual

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

Ignores second argument

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

Definition at line 1777 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyIJT ( const Vec3d in) const
inlineoverridevirtual

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

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

Definition at line 1779 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyInverseJacobian ( const Vec3d in,
const Vec3d  
) const
inlineoverridevirtual

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

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

Definition at line 1757 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyInverseJacobian ( const Vec3d in) const
inlineoverridevirtual

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

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

Definition at line 1762 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyInverseMap ( const Vec3d in) const
inlineoverridevirtual

Return the pre-image of in under the map.

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

Definition at line 1749 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyJacobian ( const Vec3d in,
const Vec3d domainPos 
) const
inlineoverridevirtual

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.

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

Definition at line 1751 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyJacobian ( const Vec3d in) const
inlineoverridevirtual

Return the Jacobian of the map applied to in.

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

Definition at line 1753 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyJT ( const Vec3d in,
const Vec3d  
) const
inlineoverridevirtual

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.

Definition at line 1768 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyJT ( const Vec3d in) const
inlineoverridevirtual

Return the Jacobian Transpose of the map applied to in.

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

Definition at line 1770 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::applyMap ( const Vec3d in) const
inlineoverridevirtual

Return the image of in under the map.

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

Definition at line 1747 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::copy ( void  ) const
inlineoverridevirtual

Returns a MapBase::Ptr to a deep copy of *this.

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

Definition at line 1709 of file Maps.h.

static MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::create ( )
inlinestatic

Return a MapBase::Ptr to a new UnitaryMap.

Definition at line 1707 of file Maps.h.

double openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::determinant ( const Vec3d ) const
inlineoverridevirtual

Return the determinant of the Jacobian, ignores argument.

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

Definition at line 1787 of file Maps.h.

double openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::determinant ( ) const
inlineoverridevirtual

Return the determinant of the Jacobian.

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

Definition at line 1789 of file Maps.h.

AffineMap::Ptr openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::getAffineMap ( ) const
inlineoverridevirtual

Return AffineMap::Ptr to an AffineMap equivalent to *this.

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

Definition at line 1818 of file Maps.h.

bool openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::hasUniformScale ( ) const
inlineoverridevirtual

Return false (by convention true)

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

Definition at line 1734 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::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.

Definition at line 1711 of file Maps.h.

bool openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::isEqual ( const MapBase other) const
inlineoverridevirtual

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

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

Definition at line 1736 of file Maps.h.

bool openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::isLinear ( ) const
inlineoverridevirtual

Return true (a UnitaryMap is always linear).

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

Definition at line 1731 of file Maps.h.

static bool openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::isRegistered ( )
inlinestatic

Definition at line 1716 of file Maps.h.

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

Return UnitaryMap.

Definition at line 1728 of file Maps.h.

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

Definition at line 1745 of file Maps.h.

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

Definition at line 1738 of file Maps.h.

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

Return a MapBase::Ptr to a new map that is the result of appending the given rotation.

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

Definition at line 1857 of file Maps.h.

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

Return a MapBase::Ptr to a new map that is the result of appending the given scale.

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

Definition at line 1873 of file Maps.h.

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

Return a MapBase::Ptr to a new map that is the result of appending the given shear.

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

Definition at line 1881 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::postTranslate ( const Vec3d t) const
inlineoverridevirtual

Return a MapBase::Ptr to a new map that is the result of appending the given translation.

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

Definition at line 1865 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::preRotate ( double  radians,
Axis  axis 
) const
inlineoverridevirtual

Return a MapBase::Ptr to a new map that is the result of prepending the given rotation.

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

Definition at line 1824 of file Maps.h.

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

Return a MapBase::Ptr to a new map that is the result of prepending the given scale.

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

Definition at line 1840 of file Maps.h.

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

Return a MapBase::Ptr to a new map that is the result of prepending the given shear.

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

Definition at line 1848 of file Maps.h.

MapBase::Ptr openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::preTranslate ( const Vec3d t) const
inlineoverridevirtual

Return a MapBase::Ptr to a new map that is the result of prepending the given translation.

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

Definition at line 1832 of file Maps.h.

void openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::read ( std::istream &  is)
inlineoverridevirtual

read serialization

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

Definition at line 1800 of file Maps.h.

static void openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::registerMap ( )
inlinestatic

Definition at line 1718 of file Maps.h.

std::string openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::str ( ) const
inlineoverridevirtual

string serialization, useful for debuging

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

Definition at line 1811 of file Maps.h.

Name openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::type ( ) const
inlineoverridevirtual

Return UnitaryMap.

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

Definition at line 1726 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::voxelSize ( ) const
inlineoverridevirtual

Returns the lengths of the images of the segments $(0,0,0)-(1,0,0)$, $(0,0,0)-(0,1,0)$, $(0,0,0)-(0,0,1)$.

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

Definition at line 1796 of file Maps.h.

Vec3d openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap::voxelSize ( const Vec3d ) const
inlineoverridevirtual

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)

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

Definition at line 1797 of file Maps.h.

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

write serialization

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

Definition at line 1806 of file Maps.h.


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