OpenVDB: ScaleTranslateMap Class Reference

OpenVDB 5.2.0

Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | List of all members
ScaleTranslateMap Class Reference

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

`#include <Maps.h>`

Inherits MapBase.

Inherited by UniformScaleTranslateMap.

## Public Types
using | Ptr = SharedPtr< ScaleTranslateMap >
using | ConstPtr = SharedPtr< const ScaleTranslateMap >
using | MapFactory = Ptr(*)()

## Public Member Functions
| ScaleTranslateMap ()
| ScaleTranslateMap (const Vec3d &scale, const Vec3d &translate)
| ScaleTranslateMap (const ScaleMap &scale, const TranslationMap &translate)
| ScaleTranslateMap (const ScaleTranslateMap &other)
| ~ScaleTranslateMap () 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 override
| Return `true` (a ScaleTranslateMap is always linear). More...
bool | hasUniformScale () const override
| Return `true` if the scale values have the same magnitude (eg. -1, 1, -1 would be a rotation). More...
Vec3d | applyMap (const Vec3d &in) const override
| Return the image of `under` the map. More...
Vec3d | applyInverseMap (const Vec3d &in) const override
| Return the pre-image of `under` the map. More...
Vec3d | applyJacobian (const Vec3d &in, const Vec3d &) const override
| Return the Jacobian of the map applied to in. 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 product of the scale values, ignores argument. More...
double | determinant () const override
| Return the product of the scale values. More...
Vec3d | voxelSize () const override
| Return the absolute values of the scale values. More...
Vec3d | voxelSize (const Vec3d &) const override
| Return the absolute values of the scale values, ignores argument. More...
const Vec3d & | getScale () const
| Returns the scale values. More...
const Vec3d & | getTranslation () const
| Returns the translation. More...
const Vec3d & | getInvScaleSqr () const
| Return the square of the scale. Used to optimize some finite difference calculations. More...
const Vec3d & | getInvTwiceScale () const
| Return 1/(2 scale). Used to optimize some finite difference calculations. More...
const Vec3d & | getInvScale () 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 ScaleTranslateMap &other) const
bool | operator!= (const ScaleTranslateMap &other) const
AffineMap::Ptr | getAffineMap () const override
| Return AffineMap::Ptr to an AffineMap equivalent to *this. More...
template<typename MapT >
bool | isType () const
| Return `true` if this map is of concrete type `MapT` (e.g., AffineMap). 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. More...
MapBase::Ptr | preTranslate (const Vec3d &t) const override
| Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation. More...
MapBase::Ptr | preScale (const Vec3d &v) const override
| Return a MapBase::Ptr to a new map that is the result of prepending the appropraite operation. 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. More...
MapBase::Ptr | postRotate (double radians, Axis axis) const override
| Return a MapBase::Ptr to a new map that is the result of postfixing the appropraite operation. More...
MapBase::Ptr | postTranslate (const Vec3d &t) const override
| Return a MapBase::Ptr to a new map that is the result of postfixing the appropraite operation. More...
MapBase::Ptr | postScale (const Vec3d &v) const override
| Return a MapBase::Ptr to a new map that is the result of postfixing the appropraite operation. 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 postfixing the appropraite operation. More...

## Static Public Member Functions
static MapBase::Ptr | create ()
| Return a MapBase::Ptr to a new ScaleTranslateMap. More...
static bool | isRegistered ()
static void | registerMap ()
static Name | mapType ()

## Static Protected Member Functions
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, and then translates the result.

## Member Typedef Documentation

## ◆ ConstPtr

using ConstPtr = SharedPtr<const ScaleTranslateMap>

## ◆ MapFactory

using MapFactory = Ptr (*)()
| inherited

## ◆ Ptr

using Ptr = SharedPtr<ScaleTranslateMap>

## Constructor & Destructor Documentation

## ◆ ScaleTranslateMap() [1/4]

ScaleTranslateMap | ( |  | ) |
| inline

## ◆ ScaleTranslateMap() [2/4]

ScaleTranslateMap | ( | const Vec3d & | scale,
|  | const Vec3d & | translate
| ) |  |
| inline

## ◆ ScaleTranslateMap() [3/4]

ScaleTranslateMap | ( | const ScaleMap & | scale,
|  | const TranslationMap & | translate
| ) |  |
| inline

## ◆ ScaleTranslateMap() [4/4]

ScaleTranslateMap | ( | const ScaleTranslateMap & | other | ) |
| inline

## ◆ ~ScaleTranslateMap()

~ScaleTranslateMap | ( |  | ) |
| 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 Vec3d & |
| ) |  | const
| inlineoverridevirtual

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

Ignores second argument

Implements MapBase.

## ◆ applyIJT() [2/2]

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

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

Implements MapBase.

## ◆ applyInverseJacobian() [1/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.

## ◆ applyInverseJacobian() [2/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.

## ◆ applyInverseMap()

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

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

Implements MapBase.

## ◆ applyJacobian() [1/2]

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

Return the Jacobian of the map applied to in.

Implements MapBase.

## ◆ applyJacobian() [2/2]

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

Return the Jacobian of the map applied to in.

Implements MapBase.

## ◆ applyJT() [1/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.

## ◆ applyJT() [2/2]

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

Return the Jacobian Transpose of the map applied to in.

Implements MapBase.

## ◆ applyMap()

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

Return the image of `under` the map.

Implements MapBase.

## ◆ copy()

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

Return a MapBase::Ptr to a deep copy of this map.

Implements MapBase.

Reimplemented in UniformScaleTranslateMap.

## ◆ create()

static MapBase::Ptr create | ( |  | ) |
| inlinestatic

Return a MapBase::Ptr to a new ScaleTranslateMap.

## ◆ determinant() [1/2]

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

Return the product of the scale values, ignores argument.

Implements MapBase.

## ◆ determinant() [2/2]

double determinant | ( |  | ) | const
| inlineoverridevirtual

Return the product of the scale values.

Implements MapBase.

## ◆ getAffineMap()

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

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

Implements MapBase.

## ◆ getInvScale()

const Vec3d& getInvScale | ( |  | ) | const
| inline

Return 1/(scale)

## ◆ getInvScaleSqr()

const Vec3d& getInvScaleSqr | ( |  | ) | const
| inline

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

## ◆ getInvTwiceScale()

const Vec3d& getInvTwiceScale | ( |  | ) | const
| inline

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

## ◆ getScale()

const Vec3d& getScale | ( |  | ) | const
| inline

Returns the scale values.

## ◆ getTranslation()

const Vec3d& getTranslation | ( |  | ) | const
| inline

Returns the translation.

## ◆ hasUniformScale()

bool hasUniformScale | ( |  | ) | const
| inlineoverridevirtual

Return `true` if the scale values have the same magnitude (eg. -1, 1, -1 would be a rotation).

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.

Reimplemented in UniformScaleTranslateMap.

## ◆ isEqual()

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

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

Implements MapBase.

Reimplemented in UniformScaleTranslateMap.

## ◆ isEqualBase()

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

## ◆ isLinear()

bool isLinear | ( |  | ) | const
| inlineoverridevirtual

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

Implements MapBase.

## ◆ isRegistered()

static bool isRegistered | ( |  | ) |
| inlinestatic

## ◆ isType()

bool isType | ( |  | ) | const
| inlineinherited

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

## ◆ mapType()

static Name mapType | ( |  | ) |
| inlinestatic

## ◆ operator!=()

bool operator!= | ( | const ScaleTranslateMap & | other | ) | const
| inline

## ◆ operator==()

bool operator== | ( | const ScaleTranslateMap & | 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 postfixing the appropraite operation.

Implements MapBase.

## ◆ postScale()

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

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

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 postfixing the appropraite operation.

Implements MapBase.

## ◆ postTranslate()

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

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

Implements MapBase.

Reimplemented in UniformScaleTranslateMap.

## ◆ 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 appropraite operation.

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 appropraite operation.

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 appropraite operation.

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 appropraite operation.

Implements MapBase.

Reimplemented in UniformScaleTranslateMap.

## ◆ read()

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

read serialization

Implements MapBase.

## ◆ registerMap()

static void registerMap | ( |  | ) |
| inlinestatic

## ◆ str()

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

string serialization, useful for debuging

Implements MapBase.

## ◆ type()

Name type | ( |  | ) | const
| inlineoverridevirtual

Return the name of this map's concrete type (e.g., `"AffineMap"`).

Implements MapBase.

Reimplemented in UniformScaleTranslateMap.

## ◆ voxelSize() [1/2]

Vec3d voxelSize | ( |  | ) | const
| inlineoverridevirtual

Return the absolute values of the scale values.

Implements MapBase.

## ◆ voxelSize() [2/2]

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

Return the absolute values of the scale values, ignores argument.

Implements MapBase.

## ◆ write()

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

write serialization

Implements MapBase.

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

- Maps.h