HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Maps.h File Reference
#include "Math.h"
#include "Mat4.h"
#include "Vec3.h"
#include "BBox.h"
#include "Coord.h"
#include <openvdb/io/io.h>
#include <openvdb/util/Name.h>
#include <openvdb/Types.h>
#include <cmath>
#include <iostream>
#include <map>
#include <string>
+ Include dependency graph for Maps.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openvdb::OPENVDB_VERSION_NAME::math::CompoundMap< T1, T2 >
 Creates the composition of two maps, each of which could be a composition. In the case that each component of the composition classified as linear an acceleration AffineMap is stored. More...
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_linear< T >
 Map traits. More...
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_linear< AffineMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_linear< ScaleMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_linear< UniformScaleMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_linear< UnitaryMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_linear< TranslationMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_linear< ScaleTranslateMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_linear< UniformScaleTranslateMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_linear< CompoundMap< T1, T2 > >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_uniform_scale< T >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_uniform_scale< UniformScaleMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_uniform_scale_translate< T >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_uniform_scale_translate< TranslationMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_uniform_scale_translate< UniformScaleTranslateMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_scale< T >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_scale< ScaleMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_scale_translate< T >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_scale_translate< ScaleTranslateMap >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_uniform_diagonal_jacobian< T >
 
struct  openvdb::OPENVDB_VERSION_NAME::math::is_diagonal_jacobian< T >
 
class  openvdb::OPENVDB_VERSION_NAME::math::MapBase
 Abstract base class for maps. More...
 
class  openvdb::OPENVDB_VERSION_NAME::math::MapRegistry
 Threadsafe singleton object for accessing the map type-name dictionary. Associates a map type-name with a factory function. More...
 
class  openvdb::OPENVDB_VERSION_NAME::math::AffineMap
 A general linear transform using homogeneous coordinates to perform rotation, scaling, shear and translation. More...
 
class  openvdb::OPENVDB_VERSION_NAME::math::ScaleMap
 A specialized Affine transform that scales along the principal axis the scaling need not be uniform in the three-directions. More...
 
class  openvdb::OPENVDB_VERSION_NAME::math::UniformScaleMap
 A specialized Affine transform that scales along the principal axis the scaling is uniform in the three-directions. More...
 
class  openvdb::OPENVDB_VERSION_NAME::math::TranslationMap
 A specialized linear transform that performs a translation. More...
 
class  openvdb::OPENVDB_VERSION_NAME::math::ScaleTranslateMap
 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...
 
class  openvdb::OPENVDB_VERSION_NAME::math::UniformScaleTranslateMap
 A specialized Affine transform that uniformaly scales along the principal axis and then translates the result. More...
 
class  openvdb::OPENVDB_VERSION_NAME::math::UnitaryMap
 A specialized linear transform that performs a unitary maping i.e. rotation and or reflection. More...
 
class  openvdb::OPENVDB_VERSION_NAME::math::NonlinearFrustumMap
 This map is composed of three steps. First it will take a box of size (Lx X Ly X Lz) defined by a member data bounding box and map it into a frustum with near plane (1 X Ly/Lx) and prescribed depth Then this frustum is transformed by an internal second map: most often a uniform scale, but other effects can be achieved by accumulating translation, shear and rotation: these are all applied to the second map. More...
 
class  openvdb::OPENVDB_VERSION_NAME::math::CompoundMap< T1, T2 >
 Creates the composition of two maps, each of which could be a composition. In the case that each component of the composition classified as linear an acceleration AffineMap is stored. More...
 

Namespaces

 openvdb
 
 openvdb::OPENVDB_VERSION_NAME
 
 openvdb::OPENVDB_VERSION_NAME::math
 

Typedefs

using openvdb::OPENVDB_VERSION_NAME::math::UnitaryAndTranslationMap = CompoundMap< UnitaryMap, TranslationMap >
 
using openvdb::OPENVDB_VERSION_NAME::math::SpectralDecomposedMap = CompoundMap< CompoundMap< UnitaryMap, ScaleMap >, UnitaryMap >
 
using openvdb::OPENVDB_VERSION_NAME::math::SymmetricMap = SpectralDecomposedMap
 
using openvdb::OPENVDB_VERSION_NAME::math::FullyDecomposedMap = CompoundMap< SymmetricMap, UnitaryAndTranslationMap >
 
using openvdb::OPENVDB_VERSION_NAME::math::PolarDecomposedMap = CompoundMap< SymmetricMap, UnitaryMap >
 

Functions

OPENVDB_API SharedPtr
< SymmetricMap > 
openvdb::OPENVDB_VERSION_NAME::math::createSymmetricMap (const Mat3d &m)
 Utility methods. More...
 
OPENVDB_API SharedPtr
< FullyDecomposedMap > 
openvdb::OPENVDB_VERSION_NAME::math::createFullyDecomposedMap (const Mat4d &m)
 General decomposition of a Matrix into a Unitary (e.g. rotation) following a Symmetric (e.g. stretch & shear) More...
 
OPENVDB_API SharedPtr
< PolarDecomposedMap > 
openvdb::OPENVDB_VERSION_NAME::math::createPolarDecomposedMap (const Mat3d &m)
 Decomposes a general linear into translation following polar decomposition. More...
 
OPENVDB_API SharedPtr< MapBase > openvdb::OPENVDB_VERSION_NAME::math::simplify (SharedPtr< AffineMap > affine)
 reduces an AffineMap to a ScaleMap or a ScaleTranslateMap when it can More...
 
OPENVDB_API Mat4d openvdb::OPENVDB_VERSION_NAME::math::approxInverse (const Mat4d &mat)
 Returns the left pseudoInverse of the input matrix when the 3x3 part is symmetric otherwise it zeros the 3x3 and reverses the translation. More...