Loading...
Searching...
No Matches
UnitaryMap Class Referencefinal

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

`#include <openvdb/math/Maps.h>`

Inheritance diagram for UnitaryMap:

## Public Types

using | Ptr = SharedPtr<UnitaryMap>
using | ConstPtr = SharedPtr<const UnitaryMap>
using | MapFactory = Ptr (*)()

## Public Member Functions

| UnitaryMap ()
| default constructor makes an Idenity.
| 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.
MapBase::Ptr | inverseMap () const override
| Return a new map representing the inverse of this map.
Name | type () const override
| Return `UnitaryMap`.
bool | isLinear () const override
| Return `true` (a UnitaryMap is always linear).
bool | hasUniformScale () const override
| Return `false` (by convention true)
bool | isEqual (const MapBase &other) const override
| Return `true` if this map is equal to the given map.
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.
Vec3d | applyInverseMap (const Vec3d &in) const override
| Return the pre-image of `in` under the map.
Vec3d | applyJacobian (const Vec3d &in, const Vec3d &) const override
Vec3d | applyJacobian (const Vec3d &in) const override
| Return the Jacobian of the map applied to in.
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)
Vec3d | applyInverseJacobian (const Vec3d &in) const override
| Return the Inverse Jacobian of the map applied to in (i.e. inverse map with out translation)
Vec3d | applyJT (const Vec3d &in, const Vec3d &) const override
| Return the Jacobian Transpose of the map applied to in.
Vec3d | applyJT (const Vec3d &in) const override
| Return the Jacobian Transpose of the map applied to in.
Vec3d | applyIJT (const Vec3d &in, const Vec3d &) const override
| Return the transpose of the inverse Jacobian of the map applied to in.
Vec3d | applyIJT (const Vec3d &in) const override
| Return the transpose of the inverse Jacobian of the map applied to `in`.
Mat3d | applyIJC (const Mat3d &in) const override
| Return the Jacobian Curvature: zero for a linear map.
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.
double | determinant () const override
| Return the determinant of the Jacobian.
void | read (std::istream &is) override
| read serialization
void | write (std::ostream &os) const override
| write serialization
std::string | str () const override
| string serialization, useful for debuging
AffineMap::Ptr | getAffineMap () const override
| Return AffineMap::Ptr to an AffineMap equivalent to *this.
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.
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.
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.
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.
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.
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.
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.
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.
template<typename MapT>
bool | isType () const
| Return `true` if this map is of concrete type `MapT` (e.g., AffineMap).
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) and (0,0,0) − (0,0,1).
Vec3d | voxelSize (const Vec3d &) const override
| Returns 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).

## Static Public Member Functions

static MapBase::Ptr | create ()
| Return a MapBase::Ptr to a new UnitaryMap.
static bool | isRegistered ()
static void | registerMap ()
static Name | mapType ()
| Return `UnitaryMap`.

## Static Protected Member Functions

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.

## Member Typedef Documentation

## ConstPtr

using ConstPtr = SharedPtr<const UnitaryMap>

## MapFactory

using MapFactory = Ptr (*)()

inherited

## Ptr

using Ptr = SharedPtr<UnitaryMap>

## Constructor & Destructor Documentation

## UnitaryMap() [1/7]

UnitaryMap | ( |  | ) |

inline

default constructor makes an Idenity.

## UnitaryMap() [2/7]

UnitaryMap | ( | const Vec3d & | axis,
|  | double | radians )

inline

## UnitaryMap() [3/7]

UnitaryMap | ( | Axis | axis,
|  | double | radians )

inline

## UnitaryMap() [4/7]

UnitaryMap | ( | const Mat3d & | m | ) |

inline

## UnitaryMap() [5/7]

UnitaryMap | ( | const Mat4d & | m | ) |

inline

## UnitaryMap() [6/7]

UnitaryMap | ( | const UnitaryMap & | other | ) |

inline

## UnitaryMap() [7/7]

UnitaryMap | ( | const UnitaryMap & | first,
|  | const UnitaryMap & | second )

inline

## ~UnitaryMap()

~UnitaryMap | ( |  | ) |

overridedefault

## Member Function Documentation

## applyIJC() [1/2]

Mat3d applyIJC | ( | const Mat3d & | in | ) | const

inlineoverridevirtual

Return the Jacobian Curvature: zero for a linear map.

Implements MapBase.

## applyIJC() [2/2]

Mat3d applyIJC | ( | const Mat3d & | in,
|  | const Vec3d & | ,
|  | const Vec3d & | ) const

inlineoverridevirtual

Implements MapBase.

## applyIJT() [1/2]

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

inlineoverridevirtual

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

Implements MapBase.

## applyIJT() [2/2]

Vec3d 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 MapBase.

## applyInverseJacobian() [1/2]

Vec3d applyInverseJacobian | ( | const Vec3d & | in | ) | const

inlineoverridevirtual

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

Implements MapBase.

## applyInverseJacobian() [2/2]

Vec3d 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 MapBase.

## applyInverseMap()

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

inlineoverridevirtual

Return the pre-image of `in` under the map.

Implements MapBase.

## applyJacobian() [1/2]

Vec3d applyJacobian | ( | const Vec3d & | in | ) | const

inlineoverridevirtual

Return the Jacobian of the map applied to in.

Implements MapBase.

## applyJacobian() [2/2]

Vec3d applyJacobian | ( | const Vec3d & | in,
|  | const Vec3d & | ) const

inlineoverridevirtual

Implements MapBase.

## applyJT() [1/2]

Vec3d applyJT | ( | const Vec3d & | in | ) | const

inlineoverridevirtual

Return the Jacobian Transpose of the map applied to in.

Implements MapBase.

## applyJT() [2/2]

Vec3d 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 MapBase.

## applyMap()

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

inlineoverridevirtual

Return the image of `in` under the map.

Implements MapBase.

## copy()

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

inlineoverridevirtual

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

Implements MapBase.

## create()

MapBase::Ptr create | ( |  | ) |

inlinestatic

Return a MapBase::Ptr to a new UnitaryMap.

## determinant() [1/2]

double determinant | ( |  | ) | const

inlineoverridevirtual

Return the determinant of the Jacobian.

Implements MapBase.

## determinant() [2/2]

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

inlineoverridevirtual

Return the determinant of the Jacobian, ignores argument.

Implements MapBase.

## getAffineMap()

AffineMap::Ptr getAffineMap | ( |  | ) | const

inlineoverridevirtual

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

Implements MapBase.

## hasUniformScale()

bool hasUniformScale | ( |  | ) | const

inlineoverridevirtual

Return `false` (by convention true)

Implements MapBase.

## inverseMap()

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

inlineoverridevirtual

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.

Implements MapBase.

## isEqual()

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

inlineoverridevirtual

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

Implements MapBase.

## isEqualBase()

template<typename MapT>

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

inlinestaticprotectedinherited

## isLinear()

bool isLinear | ( |  | ) | const

inlineoverridevirtual

Return `true` (a UnitaryMap is always linear).

Implements MapBase.

## isRegistered()

bool isRegistered | ( |  | ) |

inlinestatic

## isType()

template<typename MapT>

bool isType | ( |  | ) | const

inlineinherited

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

## mapType()

Name mapType | ( |  | ) |

inlinestatic

Return `UnitaryMap`.

## operator!=()

bool operator!= | ( | const UnitaryMap & | other | ) | const

inline

## operator==()

bool operator== | ( | const UnitaryMap & | other | ) | const

inline

## postRotate()

MapBase::Ptr 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 MapBase.

## postScale()

MapBase::Ptr postScale | ( | const Vec3d & | v | ) | const

inlineoverridevirtual

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

Implements MapBase.

## postShear()

MapBase::Ptr 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 MapBase.

## postTranslate()

MapBase::Ptr postTranslate | ( | const Vec3d & | t | ) | const

inlineoverridevirtual

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

Implements MapBase.

## preRotate()

MapBase::Ptr 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 MapBase.

## preScale()

MapBase::Ptr preScale | ( | const Vec3d & | v | ) | const

inlineoverridevirtual

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

Implements MapBase.

## preShear()

MapBase::Ptr 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 MapBase.

## preTranslate()

MapBase::Ptr preTranslate | ( | const Vec3d & | t | ) | const

inlineoverridevirtual

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

Implements MapBase.

## read()

void read | ( | std::istream & | is | ) |

inlineoverridevirtual

read serialization

Implements MapBase.

## registerMap()

void registerMap | ( |  | ) |

inlinestatic

## str()

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

inlineoverridevirtual

string serialization, useful for debuging

Implements MapBase.

## type()

Name type | ( |  | ) | const

inlineoverridevirtual

Return `UnitaryMap`.

Implements MapBase.

## voxelSize() [1/2]

Vec3d voxelSize | ( |  | ) | const

inlineoverridevirtual

Returns 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).

Implements MapBase.

## voxelSize() [2/2]

Vec3d voxelSize | ( | const Vec3d & |  | ) | const

inlineoverridevirtual

Returns 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).

Implements MapBase.

## write()

void write | ( | std::ostream & | os | ) | const

inlineoverridevirtual

write serialization

Implements MapBase.