OpenVDB
12.0.0
|
Namespaces | |
internal | |
mat3_internal | |
pcg | |
Classes | |
class | AffineMap |
A general linear transform using homogeneous coordinates to perform rotation, scaling, shear and translation. More... | |
class | BaseStencil |
class | BBox |
Axis-aligned bounding box. More... | |
struct | BIAS_SCHEME |
struct | BIAS_SCHEME< FIRST_BIAS > |
struct | BIAS_SCHEME< HJWENO5_BIAS > |
struct | BIAS_SCHEME< SECOND_BIAS > |
struct | BIAS_SCHEME< THIRD_BIAS > |
struct | BIAS_SCHEME< WENO5_BIAS > |
class | BoxStencil |
class | CompoundMap |
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 | Conversion |
Dummy class for tag dispatch of conversion constructors. More... | |
class | Coord |
Signed (x, y, z) 32-bit integer coordinates. More... | |
class | CoordBBox |
Axis-aligned bounding box of signed integer coordinates. More... | |
struct | CPT |
Compute the closest-point transform to a level set. More... | |
struct | CPT_RANGE |
Compute the closest-point transform to a level set. More... | |
struct | Curl |
Compute the curl of a vector-valued grid using differencing of various orders in the space defined by the range of the map. More... | |
struct | Curl< UniformScaleMap, CD_2ND > |
Full template specialization of Curl. More... | |
struct | Curl< UniformScaleMap, DiffScheme > |
Partial template specialization of Curl. More... | |
struct | Curl< UniformScaleTranslateMap, CD_2ND > |
Full template specialization of Curl. More... | |
struct | Curl< UniformScaleTranslateMap, DiffScheme > |
Partial template specialization of Curl. More... | |
class | CurvatureStencil |
struct | D1 |
struct | D1< BD_1ST > |
struct | D1< BD_2ND > |
struct | D1< BD_3RD > |
struct | D1< BD_HJWENO5 > |
struct | D1< BD_WENO5 > |
struct | D1< CD_2ND > |
struct | D1< CD_2NDT > |
struct | D1< CD_4TH > |
struct | D1< CD_6TH > |
struct | D1< FD_1ST > |
struct | D1< FD_2ND > |
struct | D1< FD_3RD > |
struct | D1< FD_HJWENO5 > |
struct | D1< FD_WENO5 > |
struct | D1Vec |
struct | D1Vec< CD_2ND > |
struct | D1Vec< CD_2NDT > |
struct | D1Vec< CD_4TH > |
struct | D1Vec< CD_6TH > |
struct | D2 |
struct | D2< CD_FOURTH > |
struct | D2< CD_SECOND > |
struct | D2< CD_SIXTH > |
class | DDA |
A Digital Differential Analyzer specialized for OpenVDB grids. More... | |
struct | Delta |
Delta for small floating-point offsets. More... | |
struct | Delta< double > |
struct | Delta< float > |
class | DenseStencil |
Dense stencil of a given width. More... | |
struct | Divergence |
Compute the divergence of a vector-valued grid using differencing of various orders, the result defined with respect to the range-space of the map. More... | |
struct | Divergence< ScaleMap, CD_2ND > |
struct | Divergence< ScaleMap, DiffScheme > |
struct | Divergence< ScaleTranslateMap, CD_2ND > |
struct | Divergence< ScaleTranslateMap, DiffScheme > |
struct | Divergence< TranslationMap, DiffScheme > |
struct | Divergence< UniformScaleMap, CD_2ND > |
struct | Divergence< UniformScaleMap, DiffScheme > |
struct | Divergence< UniformScaleTranslateMap, CD_2ND > |
struct | Divergence< UniformScaleTranslateMap, DiffScheme > |
class | Extrema |
This class computes the minimum and maximum values of a population of floating-point values. More... | |
class | FourthOrderDenseStencil |
class | GenericMap |
A wrapper that holds a MapBase::ConstPtr and exposes a reduced set of functionality needed by the mathematical operators. More... | |
struct | Gradient |
Center difference gradient operators, defined with respect to the range-space of the map . More... | |
struct | Gradient< ScaleMap, CD_2ND > |
struct | Gradient< ScaleTranslateMap, CD_2ND > |
struct | Gradient< TranslationMap, DiffScheme > |
struct | Gradient< UniformScaleMap, CD_2ND > |
struct | Gradient< UniformScaleTranslateMap, CD_2ND > |
struct | GradientBiased |
Biased gradient operators, defined with respect to the range-space of the map. More... | |
struct | GradientNormSqrd |
struct | GradientNormSqrd< UniformScaleMap, GradScheme > |
Partial template specialization of GradientNormSqrd. More... | |
struct | GradientNormSqrd< UniformScaleTranslateMap, GradScheme > |
Partial template specialization of GradientNormSqrd. More... | |
class | GradStencil |
class | Histogram |
This class computes a histogram, with a fixed interval width, of a population of floating-point values. More... | |
struct | is_diagonal_jacobian |
struct | is_double |
struct | is_double< double > |
struct | is_linear |
Map traits. More... | |
struct | is_linear< AffineMap > |
struct | is_linear< CompoundMap< T1, T2 > > |
struct | is_linear< ScaleMap > |
struct | is_linear< ScaleTranslateMap > |
struct | is_linear< TranslationMap > |
struct | is_linear< UniformScaleMap > |
struct | is_linear< UniformScaleTranslateMap > |
struct | is_linear< UnitaryMap > |
struct | is_scale |
struct | is_scale< ScaleMap > |
struct | is_scale_translate |
struct | is_scale_translate< ScaleTranslateMap > |
struct | is_uniform_diagonal_jacobian |
struct | is_uniform_scale |
struct | is_uniform_scale< UniformScaleMap > |
struct | is_uniform_scale_translate |
struct | is_uniform_scale_translate< TranslationMap > |
struct | is_uniform_scale_translate< UniformScaleTranslateMap > |
struct | is_vec3d |
struct | is_vec3d< Vec3d > |
struct | ISCurl |
Curl operator defined in index space using various first derivative schemes. More... | |
struct | ISDivergence |
Divergence operator defined in index space using various first derivative schemes. More... | |
struct | ISGradient |
Gradient operators defined in index space of various orders. More... | |
struct | ISGradientBiased |
Biased Gradient Operators, using upwinding defined by the Vec3Bias input. More... | |
struct | ISGradientNormSqrd |
struct | ISLaplacian |
Laplacian defined in index space, using various center-difference stencils. More... | |
struct | ISLaplacian< CD_FOURTH > |
struct | ISLaplacian< CD_SECOND > |
struct | ISLaplacian< CD_SIXTH > |
struct | ISMeanCurvature |
Compute the mean curvature in index space. More... | |
struct | ISOpMagnitude |
Adapter for vector-valued index-space operators to return the vector magnitude. More... | |
struct | Laplacian |
Compute the Laplacian at a given location in a grid using finite differencing of various orders. The result is defined in the range of the map. More... | |
struct | Laplacian< ScaleMap, DiffScheme > |
struct | Laplacian< ScaleTranslateMap, DiffScheme > |
struct | Laplacian< TranslationMap, DiffScheme > |
struct | Laplacian< UniformScaleMap, DiffScheme > |
struct | Laplacian< UniformScaleTranslateMap, DiffScheme > |
struct | Laplacian< UnitaryMap, DiffScheme > |
struct | LevelSetHDDA |
Helper class that implements Hierarchical Digital Differential Analyzers and is specialized for ray intersections with level sets. More... | |
struct | LevelSetHDDA< TreeT,-1 > |
Specialization of Hierarchical Digital Differential Analyzer class that intersects a ray against the voxels of a level set. More... | |
struct | MapAdapter |
Adapter to associate a map with a world-space operator, giving it the same call signature as an index-space operator. More... | |
class | MapBase |
Abstract base class for maps. More... | |
class | MapRegistry |
Threadsafe singleton object for accessing the map type-name dictionary. Associates a map type-name with a factory function. More... | |
class | Mat |
class | Mat2 |
class | Mat3 |
3x3 matrix class. More... | |
class | Mat4 |
4x4 -matrix class. More... | |
struct | MeanCurvature |
Compute the mean curvature. More... | |
struct | MeanCurvature< TranslationMap, DiffScheme2, DiffScheme1 > |
struct | MeanCurvature< UniformScaleMap, DiffScheme2, DiffScheme1 > |
struct | MeanCurvature< UniformScaleTranslateMap, DiffScheme2, DiffScheme1 > |
class | MinMax |
Templated class to compute the minimum and maximum values. More... | |
class | NineteenPointStencil |
class | 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... | |
struct | OpMagnitude |
Adapter for vector-valued world-space operators to return the vector magnitude. More... | |
struct | promote |
class | QuantizedUnitVec |
Unit vector occupying only 16 bits. More... | |
class | Quat |
class | Rand01 |
Simple generator of random numbers over the range [0, 1) More... | |
class | RandInt |
Simple random integer generator. More... | |
class | Ray |
class | ScaleMap |
A specialized Affine transform that scales along the principal axis the scaling need not be uniform in the three-directions. More... | |
class | 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 | SecondOrderDenseStencil |
class | SevenPointStencil |
class | SixthOrderDenseStencil |
class | Stats |
This class computes statistics (minimum value, maximum value, mean, variance and standard deviation) of a population of floating-point values. More... | |
class | ThirteenPointStencil |
struct | Tolerance |
Tolerance for floating-point comparison. More... | |
struct | Tolerance< double > |
struct | Tolerance< float > |
class | Transform |
class | TranslationMap |
A specialized linear transform that performs a translation. More... | |
class | Tuple |
class | UniformScaleMap |
A specialized Affine transform that scales along the principal axis the scaling is uniform in the three-directions. More... | |
class | UniformScaleTranslateMap |
A specialized Affine transform that uniformaly scales along the principal axis and then translates the result. More... | |
class | UnitaryMap |
A specialized linear transform that performs a unitary maping i.e. rotation and or reflection. More... | |
class | Vec2 |
class | Vec3 |
class | Vec4 |
class | VolumeHDDA |
Helper class that implements Hierarchical Digital Differential Analyzers for ray intersections against a generic volume. More... | |
class | VolumeHDDA< TreeT, RayT, 0 > |
Specialization of Hierarchical Digital Differential Analyzer class that intersects against the leafs or tiles of a generic volume. More... | |
class | WenoStencil |
This is a special 19-point stencil that supports optimal fifth-order WENO upwinding, second-order central differencing, Laplacian, and zero-crossing test. More... | |
Typedefs | |
using | half = internal::half |
using | UnitaryAndTranslationMap = CompoundMap< UnitaryMap, TranslationMap > |
using | SpectralDecomposedMap = CompoundMap< CompoundMap< UnitaryMap, ScaleMap >, UnitaryMap > |
using | SymmetricMap = SpectralDecomposedMap |
using | FullyDecomposedMap = CompoundMap< SymmetricMap, UnitaryAndTranslationMap > |
using | PolarDecomposedMap = CompoundMap< SymmetricMap, UnitaryMap > |
using | Mat3s = Mat3< float > |
using | Mat3d = Mat3< double > |
using | Mat3f = Mat3d |
using | Mat4s = Mat4< float > |
using | Mat4d = Mat4< double > |
using | Mat4f = Mat4d |
using | Random01 = Rand01< double, std::mt19937 > |
using | RandomInt = RandInt< int, std::mt19937 > |
using | Quats = Quat< float > |
using | Quatd = Quat< double > |
using | Vec2i = Vec2< int32_t > |
using | Vec2ui = Vec2< uint32_t > |
using | Vec2s = Vec2< float > |
using | Vec2d = Vec2< double > |
using | Vec3i = Vec3< int32_t > |
using | Vec3ui = Vec3< uint32_t > |
using | Vec3s = Vec3< float > |
using | Vec3d = Vec3< double > |
using | Vec4i = Vec4< int32_t > |
using | Vec4ui = Vec4< uint32_t > |
using | Vec4s = Vec4< float > |
using | Vec4d = Vec4< double > |
Functions | |
template<> | |
auto | cwiseAdd (const math::Vec3< math::half > &v, const float s) |
template<typename Vec3T > | |
std::ostream & | operator<< (std::ostream &os, const BBox< Vec3T > &b) |
std::ostream & | operator<< (std::ostream &os, const Coord &xyz) |
Coord | Abs (const Coord &xyz) |
std::ostream & | operator<< (std::ostream &os, const CoordBBox &b) |
template<typename RayT , Index Log2Dim> | |
std::ostream & | operator<< (std::ostream &os, const DDA< RayT, Log2Dim > &dda) |
Output streaming of the Ray class. More... | |
std::string | dsSchemeToString (DScheme dss) |
DScheme | stringToDScheme (const std::string &s) |
std::string | dsSchemeToMenuName (DScheme dss) |
std::string | biasedGradientSchemeToString (BiasedGradientScheme bgs) |
BiasedGradientScheme | stringToBiasedGradientScheme (const std::string &s) |
std::string | biasedGradientSchemeToMenuName (BiasedGradientScheme bgs) |
std::string | temporalIntegrationSchemeToString (TemporalIntegrationScheme tis) |
TemporalIntegrationScheme | stringToTemporalIntegrationScheme (const std::string &s) |
std::string | temporalIntegrationSchemeToMenuName (TemporalIntegrationScheme tis) |
template<typename ValueType > | |
ValueType | WENO5 (const ValueType &v1, const ValueType &v2, const ValueType &v3, const ValueType &v4, const ValueType &v5, float scale2=0.01f) |
Implementation of nominally fifth-order finite-difference WENO. More... | |
template<typename Real > | |
Real | GodunovsNormSqrd (bool isOutside, Real dP_xm, Real dP_xp, Real dP_ym, Real dP_yp, Real dP_zm, Real dP_zp) |
template<typename Real > | |
Real | GodunovsNormSqrd (bool isOutside, const Vec3< Real > &gradient_m, const Vec3< Real > &gradient_p) |
OPENVDB_API SharedPtr< SymmetricMap > | createSymmetricMap (const Mat3d &m) |
Utility methods. More... | |
OPENVDB_API SharedPtr< FullyDecomposedMap > | 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 > | createPolarDecomposedMap (const Mat3d &m) |
Decomposes a general linear into translation following polar decomposition. More... | |
OPENVDB_API SharedPtr< MapBase > | simplify (SharedPtr< AffineMap > affine) |
reduces an AffineMap to a ScaleMap or a ScaleTranslateMap when it can More... | |
OPENVDB_API Mat4d | 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... | |
template<class MatType > | |
MatType | rotation (const Quat< typename MatType::value_type > &q, typename MatType::value_type eps=static_cast< typename MatType::value_type >(1.0e-8)) |
Return the rotation matrix specified by the given quaternion. More... | |
template<class MatType > | |
MatType | rotation (Axis axis, typename MatType::value_type angle) |
Return a matrix for rotation by angle radians about the given axis. More... | |
template<class MatType > | |
MatType | rotation (const Vec3< typename MatType::value_type > &_axis, typename MatType::value_type angle) |
Return a matrix for rotation by angle radians about the given axis. More... | |
template<class MatType > | |
Vec3< typename MatType::value_type > | eulerAngles (const MatType &mat, RotationOrder rotationOrder, typename MatType::value_type eps=static_cast< typename MatType::value_type >(1.0e-8)) |
Return the Euler angles composing the given rotation matrix. More... | |
template<typename MatType , typename ValueType1 , typename ValueType2 > | |
MatType | rotation (const Vec3< ValueType1 > &_v1, const Vec3< ValueType2 > &_v2, typename MatType::value_type eps=static_cast< typename MatType::value_type >(1.0e-8)) |
Return a rotation matrix that maps v1 onto v2 about the cross product of v1 and v2. More... | |
template<class MatType > | |
MatType | scale (const Vec3< typename MatType::value_type > &s) |
Return a matrix that scales by s. More... | |
template<class MatType > | |
Vec3< typename MatType::value_type > | getScale (const MatType &mat) |
Return a Vec3 representing the lengths of the passed matrix's upper 3×3's rows. More... | |
template<class MatType > | |
MatType | unit (const MatType &mat, typename MatType::value_type eps=1.0e-8) |
Return a copy of the given matrix with its upper 3×3 rows normalized. More... | |
template<class MatType > | |
MatType | unit (const MatType &in, typename MatType::value_type eps, Vec3< typename MatType::value_type > &scaling) |
Return a copy of the given matrix with its upper 3×3 rows normalized, and return the length of each of these rows in scaling. More... | |
template<class MatType > | |
MatType | shear (Axis axis0, Axis axis1, typename MatType::value_type shear) |
Set the matrix to a shear along axis0 by a fraction of axis1. More... | |
template<class MatType > | |
MatType | skew (const Vec3< typename MatType::value_type > &skew) |
Return a matrix as the cross product of the given vector. More... | |
template<class MatType > | |
MatType | aim (const Vec3< typename MatType::value_type > &direction, const Vec3< typename MatType::value_type > &vertical) |
Return an orientation matrix such that z points along direction, and y is along the direction / vertical plane. More... | |
template<class MatType > | |
MatType | snapMatBasis (const MatType &source, Axis axis, const Vec3< typename MatType::value_type > &direction) |
This function snaps a specific axis to a specific direction, preserving scaling. More... | |
template<class MatType > | |
MatType & | padMat4 (MatType &dest) |
Write 0s along Mat4's last row and column, and a 1 on its diagonal. More... | |
template<typename MatType > | |
void | sqrtSolve (const MatType &aA, MatType &aB, double aTol=0.01) |
Solve for A=B*B, given A. More... | |
template<typename MatType > | |
void | powSolve (const MatType &aA, MatType &aB, double aPower, double aTol=0.01) |
template<typename MatType > | |
bool | isIdentity (const MatType &m) |
Determine if a matrix is an identity matrix. More... | |
template<typename MatType > | |
bool | isInvertible (const MatType &m) |
Determine if a matrix is invertible. More... | |
template<typename MatType > | |
bool | isSymmetric (const MatType &m) |
Determine if a matrix is symmetric. More... | |
template<typename MatType > | |
bool | isUnitary (const MatType &m) |
Determine if a matrix is unitary (i.e., rotation or reflection). More... | |
template<typename MatType > | |
bool | isDiagonal (const MatType &mat) |
Determine if a matrix is diagonal. More... | |
template<typename MatType > | |
MatType::ValueType | lInfinityNorm (const MatType &matrix) |
Return the L∞ norm of an N×N matrix. More... | |
template<typename MatType > | |
MatType::ValueType | lOneNorm (const MatType &matrix) |
Return the L1 norm of an N×N matrix. More... | |
template<typename MatType > | |
bool | polarDecomposition (const MatType &input, MatType &unitary, MatType &positive_hermitian, unsigned int MAX_ITERATIONS=100) |
Decompose an invertible 3×3 matrix into a unitary matrix followed by a symmetric matrix (positive semi-definite Hermitian), i.e., M = U * S. More... | |
template<unsigned SIZE, typename T > | |
bool | cwiseLessThan (const Mat< SIZE, T > &m0, const Mat< SIZE, T > &m1) |
template<unsigned SIZE, typename T > | |
bool | cwiseGreaterThan (const Mat< SIZE, T > &m0, const Mat< SIZE, T > &m1) |
template<typename T0 , typename T1 > | |
Mat3< typename promote< T0, T1 >::type > | operator* (const Mat3< T0 > &m0, const Mat3< T1 > &m1) |
Multiply m0 by m1 and return the resulting matrix. More... | |
template<typename T > | |
Mat3< T > | outerProduct (const Vec3< T > &v1, const Vec3< T > &v2) |
template<typename T , typename T0 > | |
Mat3< T > | powLerp (const Mat3< T0 > &m1, const Mat3< T0 > &m2, T t) |
template<typename T > | |
bool | diagonalizeSymmetricMatrix (const Mat3< T > &input, Mat3< T > &Q, Vec3< T > &D, unsigned int MAX_ITERATIONS=250) |
Use Jacobi iterations to decompose a symmetric 3x3 matrix (diagonalize and compute eigenvectors) More... | |
template<typename T > | |
Mat3< T > | Abs (const Mat3< T > &m) |
template<typename Type1 , typename Type2 > | |
Mat3< Type1 > | cwiseAdd (const Mat3< Type1 > &m, const Type2 s) |
template<typename T > | |
bool | cwiseLessThan (const Mat3< T > &m0, const Mat3< T > &m1) |
template<typename T > | |
bool | cwiseGreaterThan (const Mat3< T > &m0, const Mat3< T > &m1) |
template<typename T0 , typename T1 > | |
Vec3< T1 > | transformNormal (const Mat4< T0 > &m, const Vec3< T1 > &n) |
template<typename T > | |
bool | isAffine (const Mat4< T > &m) |
template<typename T > | |
bool | hasTranslation (const Mat4< T > &m) |
template<typename T > | |
Mat4< T > | Abs (const Mat4< T > &m) |
template<typename Type1 , typename Type2 > | |
Mat4< Type1 > | cwiseAdd (const Mat4< Type1 > &m, const Type2 s) |
template<typename T > | |
bool | cwiseLessThan (const Mat4< T > &m0, const Mat4< T > &m1) |
template<typename T > | |
bool | cwiseGreaterThan (const Mat4< T > &m0, const Mat4< T > &m1) |
template<typename Type1 , typename Type2 > | |
auto | cwiseAdd (const Type1 &v, const Type2 s) |
Componentwise adder for POD types. More... | |
template<typename Type1 , typename Type2 > | |
bool | cwiseLessThan (const Type1 &a, const Type2 &b) |
Componentwise less than for POD types. More... | |
template<typename Type1 , typename Type2 > | |
bool | cwiseGreaterThan (const Type1 &a, const Type2 &b) |
Componentwise greater than for POD types. More... | |
template<typename T > | |
constexpr T | pi () |
Pi constant taken from Boost to match old behaviour. More... | |
template<> | |
constexpr float | pi () |
template<> | |
constexpr double | pi () |
template<> | |
constexpr long double | pi () |
template<typename T > | |
T | negative (const T &val) |
Return the unary negation of the given value. More... | |
template<> | |
bool | negative (const bool &val) |
Return the negation of the given boolean. More... | |
template<> | |
std::string | negative (const std::string &val) |
Return the "negation" of the given string. More... | |
template<typename Type > | |
Type | Clamp (Type x, Type min, Type max) |
Return x clamped to [min, max]. More... | |
template<typename Type > | |
Type | Clamp01 (Type x) |
Return x clamped to [0, 1]. More... | |
template<typename Type > | |
bool | ClampTest01 (Type &x) |
Return true if x is outside [0,1]. More... | |
template<typename Type > | |
Type | SmoothUnitStep (Type x) |
Return 0 if x < 0, 1 if x > 1 or else (3 − 2 x) x². More... | |
template<typename Type > | |
Type | SmoothUnitStep (Type x, Type min, Type max) |
Return 0 if x < min, 1 if x > max or else (3 − 2 t) t², where t = (x − min)/(max − min). More... | |
template<typename Type > | |
bool | isZero (const Type &x) |
Return true if x is exactly equal to zero. More... | |
template<typename Type > | |
bool | isApproxZero (const Type &x) |
Return true if x is equal to zero to within the default floating-point comparison tolerance. More... | |
template<typename Type > | |
bool | isApproxZero (const Type &x, const Type &tolerance) |
Return true if x is equal to zero to within the given tolerance. More... | |
template<typename Type > | |
bool | isNegative (const Type &x) |
Return true if x is less than zero. More... | |
template<> | |
bool | isNegative< bool > (const bool &) |
bool | isFinite (const float x) |
Return true if x is finite. More... | |
template<typename Type , typename std::enable_if< std::is_arithmetic< Type >::value, int >::type = 0> | |
bool | isFinite (const Type &x) |
Return true if x is finite. More... | |
bool | isInfinite (const float x) |
Return true if x is an infinity value (either positive infinity or negative infinity). More... | |
template<typename Type , typename std::enable_if< std::is_arithmetic< Type >::value, int >::type = 0> | |
bool | isInfinite (const Type &x) |
Return true if x is an infinity value (either positive infinity or negative infinity). More... | |
bool | isNan (const float x) |
Return true if x is a NaN (Not-A-Number) value. More... | |
template<typename Type , typename std::enable_if< std::is_arithmetic< Type >::value, int >::type = 0> | |
bool | isNan (const Type &x) |
Return true if x is a NaN (Not-A-Number) value. More... | |
template<typename Type > | |
bool | isApproxEqual (const Type &a, const Type &b, const Type &tolerance) |
Return true if a is equal to b to within the given tolerance. More... | |
template<typename Type > | |
bool | isApproxEqual (const Type &a, const Type &b) |
Return true if a is equal to b to within the default floating-point comparison tolerance. More... | |
template<> | |
bool | isApproxEqual< bool > (const bool &a, const bool &b) |
template<> | |
bool | isApproxEqual< bool > (const bool &a, const bool &b, const bool &) |
template<> | |
bool | isApproxEqual< std::string > (const std::string &a, const std::string &b) |
template<> | |
bool | isApproxEqual< std::string > (const std::string &a, const std::string &b, const std::string &) |
template<typename Type > | |
bool | isApproxLarger (const Type &a, const Type &b, const Type &tolerance) |
Return true if a is larger than b to within the given tolerance, i.e., if b - a < tolerance. More... | |
template<typename T0 , typename T1 > | |
bool | isExactlyEqual (const T0 &a, const T1 &b) |
Return true if a is exactly equal to b. More... | |
template<typename Type > | |
bool | isRelOrApproxEqual (const Type &a, const Type &b, const Type &absTol, const Type &relTol) |
template<> | |
bool | isRelOrApproxEqual (const bool &a, const bool &b, const bool &, const bool &) |
int32_t | floatToInt32 (const float f) |
int64_t | doubleToInt64 (const double d) |
bool | isUlpsEqual (const double aLeft, const double aRight, const int64_t aUnitsInLastPlace) |
bool | isUlpsEqual (const float aLeft, const float aRight, const int32_t aUnitsInLastPlace) |
template<typename Type > | |
Type | Pow2 (Type x) |
Return x2. More... | |
template<typename Type > | |
Type | Pow3 (Type x) |
Return x3. More... | |
template<typename Type > | |
Type | Pow4 (Type x) |
Return x4. More... | |
template<typename Type > | |
Type | Pow (Type x, int n) |
Return xn. More... | |
template<typename Type > | |
const Type & | Max (const Type &a, const Type &b) |
Return the maximum of two values. More... | |
template<typename Type > | |
const Type & | Max (const Type &a, const Type &b, const Type &c) |
Return the maximum of three values. More... | |
template<typename Type > | |
const Type & | Max (const Type &a, const Type &b, const Type &c, const Type &d) |
Return the maximum of four values. More... | |
template<typename Type > | |
const Type & | Max (const Type &a, const Type &b, const Type &c, const Type &d, const Type &e) |
Return the maximum of five values. More... | |
template<typename Type > | |
const Type & | Max (const Type &a, const Type &b, const Type &c, const Type &d, const Type &e, const Type &f) |
Return the maximum of six values. More... | |
template<typename Type > | |
const Type & | Max (const Type &a, const Type &b, const Type &c, const Type &d, const Type &e, const Type &f, const Type &g) |
Return the maximum of seven values. More... | |
template<typename Type > | |
const Type & | Max (const Type &a, const Type &b, const Type &c, const Type &d, const Type &e, const Type &f, const Type &g, const Type &h) |
Return the maximum of eight values. More... | |
template<typename Type > | |
const Type & | Min (const Type &a, const Type &b) |
Return the minimum of two values. More... | |
template<typename Type > | |
const Type & | Min (const Type &a, const Type &b, const Type &c) |
Return the minimum of three values. More... | |
template<typename Type > | |
const Type & | Min (const Type &a, const Type &b, const Type &c, const Type &d) |
Return the minimum of four values. More... | |
template<typename Type > | |
const Type & | Min (const Type &a, const Type &b, const Type &c, const Type &d, const Type &e) |
Return the minimum of five values. More... | |
template<typename Type > | |
const Type & | Min (const Type &a, const Type &b, const Type &c, const Type &d, const Type &e, const Type &f) |
Return the minimum of six values. More... | |
template<typename Type > | |
const Type & | Min (const Type &a, const Type &b, const Type &c, const Type &d, const Type &e, const Type &f, const Type &g) |
Return the minimum of seven values. More... | |
template<typename Type > | |
const Type & | Min (const Type &a, const Type &b, const Type &c, const Type &d, const Type &e, const Type &f, const Type &g, const Type &h) |
Return the minimum of eight values. More... | |
template<typename Type > | |
Type | Exp (const Type &x) |
Return ex. More... | |
template<typename Type > | |
int | Sign (const Type &x) |
Return the sign of the given value as an integer (either -1, 0 or 1). More... | |
template<typename Type > | |
bool | SignChange (const Type &a, const Type &b) |
Return true if a and b have different signs. More... | |
template<typename Type > | |
bool | ZeroCrossing (const Type &a, const Type &b) |
Return true if the interval [a, b] includes zero, i.e., if either a or b is zero or if they have different signs. More... | |
template<typename Type > | |
Type | RoundUp (Type x, Type base) |
Return x rounded up to the nearest multiple of base. More... | |
template<typename Type > | |
Type | RoundDown (Type x, Type base) |
Return x rounded down to the nearest multiple of base. More... | |
template<typename Type > | |
Type | EuclideanRemainder (Type x) |
template<typename Type > | |
Type | IntegerPart (Type x) |
Return the integer part of x. More... | |
template<typename Type > | |
Type | FractionalPart (Type x) |
Return the fractional part of x. More... | |
template<typename Type > | |
Type | Chop (Type x, Type delta) |
Return x if it is greater or equal in magnitude than delta. Otherwise, return zero. More... | |
template<typename Type > | |
Type | Truncate (Type x, unsigned int digits) |
Return x truncated to the given number of decimal digits. More... | |
template<typename T > | |
auto | PrintCast (const T &val) -> typename std::enable_if<!std::is_same< T, int8_t >::value &&!std::is_same< T, uint8_t >::value, const T & >::type |
8-bit integer values print to std::ostreams as characters. Cast them so that they print as integers instead. More... | |
int32_t | PrintCast (int8_t val) |
uint32_t | PrintCast (uint8_t val) |
template<typename Type > | |
Type | Inv (Type x) |
Return the inverse of x. More... | |
template<typename Vec3T > | |
size_t | MinIndex (const Vec3T &v) |
Return the index [0,1,2] of the smallest value in a 3D vector. More... | |
template<typename Vec3T > | |
size_t | MaxIndex (const Vec3T &v) |
Return the index [0,1,2] of the largest value in a 3D vector. More... | |
OPENVDB_API Vec3d | closestPointOnTriangleToPoint (const Vec3d &a, const Vec3d &b, const Vec3d &c, const Vec3d &p, Vec3d &uvw) |
Closest Point on Triangle to Point. Given a triangle abc and a point p , return the point on abc closest to p and the corresponding barycentric coordinates. More... | |
OPENVDB_API Vec3d | closestPointOnSegmentToPoint (const Vec3d &a, const Vec3d &b, const Vec3d &p, double &t) |
Closest Point on Line Segment to Point. Given segment ab and point p , return the point on ab closest to p and t the parametric distance to b . More... | |
template<typename T > | |
Quat< T > | slerp (const Quat< T > &q1, const Quat< T > &q2, T t, T tolerance=0.00001) |
Linear interpolation between the two quaternions. More... | |
template<typename S , typename T > | |
Quat< T > | operator* (S scalar, const Quat< T > &q) |
Multiply each element of the given quaternion by scalar and return the result. More... | |
template<typename T , typename T0 > | |
Mat3< T > | slerp (const Mat3< T0 > &m1, const Mat3< T0 > &m2, T t) |
Interpolate between m1 and m2. Converts to quaternion form and uses slerp m1 and m2 must be rotation matrices! More... | |
template<typename T , typename T0 > | |
Mat3< T > | bezLerp (const Mat3< T0 > &m1, const Mat3< T0 > &m2, const Mat3< T0 > &m3, const Mat3< T0 > &m4, T t) |
template<typename RealT > | |
std::ostream & | operator<< (std::ostream &os, const Ray< RealT > &r) |
Output streaming of the Ray class. More... | |
OPENVDB_API void | calculateBounds (const Transform &t, const Vec3d &minWS, const Vec3d &maxWS, Vec3d &minIS, Vec3d &maxIS) |
Calculate an axis-aligned bounding box in index space from an axis-aligned bounding box in world space. More... | |
OPENVDB_API std::ostream & | operator<< (std::ostream &, const Transform &) |
template<typename ResolvedMapType , typename OpType > | |
void | doProcessTypedMap (Transform &transform, OpType &op) |
Helper function used internally by processTypedMap() More... | |
template<typename ResolvedMapType , typename OpType > | |
void | doProcessTypedMap (const Transform &transform, OpType &op) |
Helper function used internally by processTypedMap() More... | |
template<typename TransformType , typename OpType > | |
bool | processTypedMap (TransformType &transform, OpType &op) |
Utility function that, given a generic map pointer, calls a functor on the fully-resoved map. More... | |
template<int SIZE, typename T0 , typename T1 > | |
bool | operator< (const Tuple< SIZE, T0 > &t0, const Tuple< SIZE, T1 > &t1) |
template<int SIZE, typename T0 , typename T1 > | |
bool | operator> (const Tuple< SIZE, T0 > &t0, const Tuple< SIZE, T1 > &t1) |
template<int SIZE, typename T > | |
Tuple< SIZE, T > | Abs (const Tuple< SIZE, T > &t) |
template<int SIZE, typename T > | |
bool | isNan (const Tuple< SIZE, T > &t) |
Return true if a Nan is present in the tuple. More... | |
template<int SIZE, typename T > | |
bool | isInfinite (const Tuple< SIZE, T > &t) |
Return true if an Inf is present in the tuple. More... | |
template<int SIZE, typename T > | |
bool | isFinite (const Tuple< SIZE, T > &t) |
Return true if no Nan or Inf values are present. More... | |
template<int SIZE, typename T > | |
bool | isZero (const Tuple< SIZE, T > &t) |
Return true if all elements are exactly equal to zero. More... | |
template<int SIZE, typename T > | |
std::ostream & | operator<< (std::ostream &ostr, const Tuple< SIZE, T > &classname) |
Write a Tuple to an output stream. More... | |
template<typename S , typename T > | |
Vec2< typename promote< S, T >::type > | operator* (S scalar, const Vec2< T > &v) |
Multiply each element of the given vector by scalar and return the result. More... | |
template<typename S , typename T > | |
Vec2< typename promote< S, T >::type > | operator* (const Vec2< T > &v, S scalar) |
Multiply each element of the given vector by scalar and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec2< typename promote< T0, T1 >::type > | operator* (const Vec2< T0 > &v0, const Vec2< T1 > &v1) |
Multiply corresponding elements of v0 and v1 and return the result. More... | |
template<typename S , typename T > | |
Vec2< typename promote< S, T >::type > | operator/ (S scalar, const Vec2< T > &v) |
Divide scalar by each element of the given vector and return the result. More... | |
template<typename S , typename T > | |
Vec2< typename promote< S, T >::type > | operator/ (const Vec2< T > &v, S scalar) |
Divide each element of the given vector by scalar and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec2< typename promote< T0, T1 >::type > | operator/ (const Vec2< T0 > &v0, const Vec2< T1 > &v1) |
Divide corresponding elements of v0 and v1 and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec2< typename promote< T0, T1 >::type > | operator+ (const Vec2< T0 > &v0, const Vec2< T1 > &v1) |
Add corresponding elements of v0 and v1 and return the result. More... | |
template<typename S , typename T > | |
Vec2< typename promote< S, T >::type > | operator+ (const Vec2< T > &v, S scalar) |
Add scalar to each element of the given vector and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec2< typename promote< T0, T1 >::type > | operator- (const Vec2< T0 > &v0, const Vec2< T1 > &v1) |
Subtract corresponding elements of v0 and v1 and return the result. More... | |
template<typename S , typename T > | |
Vec2< typename promote< S, T >::type > | operator- (const Vec2< T > &v, S scalar) |
Subtract scalar from each element of the given vector and return the result. More... | |
template<typename T > | |
T | angle (const Vec2< T > &v1, const Vec2< T > &v2) |
template<typename T > | |
bool | isApproxEqual (const Vec2< T > &a, const Vec2< T > &b) |
template<typename T > | |
bool | isApproxEqual (const Vec2< T > &a, const Vec2< T > &b, const Vec2< T > &eps) |
template<typename T > | |
Vec2< T > | Abs (const Vec2< T > &v) |
template<typename T > | |
void | orthonormalize (Vec2< T > &v1, Vec2< T > &v2) |
template<typename T > | |
Vec2< T > | minComponent (const Vec2< T > &v1, const Vec2< T > &v2) |
Return component-wise minimum of the two vectors. More... | |
template<typename T > | |
Vec2< T > | maxComponent (const Vec2< T > &v1, const Vec2< T > &v2) |
Return component-wise maximum of the two vectors. More... | |
template<typename T > | |
Vec2< T > | Exp (Vec2< T > v) |
Return a vector with the exponent applied to each of the components of the input vector. More... | |
template<typename T > | |
Vec2< T > | Log (Vec2< T > v) |
Return a vector with log applied to each of the components of the input vector. More... | |
template<typename T0 , typename T1 > | |
bool | operator== (const Vec3< T0 > &v0, const Vec3< T1 > &v1) |
Equality operator, does exact floating point comparisons. More... | |
template<typename T0 , typename T1 > | |
bool | operator!= (const Vec3< T0 > &v0, const Vec3< T1 > &v1) |
Inequality operator, does exact floating point comparisons. More... | |
template<typename S , typename T > | |
Vec3< typename promote< S, T >::type > | operator* (S scalar, const Vec3< T > &v) |
Multiply each element of the given vector by scalar and return the result. More... | |
template<typename S , typename T > | |
Vec3< typename promote< S, T >::type > | operator* (const Vec3< T > &v, S scalar) |
Multiply each element of the given vector by scalar and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec3< typename promote< T0, T1 >::type > | operator* (const Vec3< T0 > &v0, const Vec3< T1 > &v1) |
Multiply corresponding elements of v0 and v1 and return the result. More... | |
template<typename S , typename T > | |
Vec3< typename promote< S, T >::type > | operator/ (S scalar, const Vec3< T > &v) |
Divide scalar by each element of the given vector and return the result. More... | |
template<typename S , typename T > | |
Vec3< typename promote< S, T >::type > | operator/ (const Vec3< T > &v, S scalar) |
Divide each element of the given vector by scalar and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec3< typename promote< T0, T1 >::type > | operator/ (const Vec3< T0 > &v0, const Vec3< T1 > &v1) |
Divide corresponding elements of v0 and v1 and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec3< typename promote< T0, T1 >::type > | operator+ (const Vec3< T0 > &v0, const Vec3< T1 > &v1) |
Add corresponding elements of v0 and v1 and return the result. More... | |
template<typename S , typename T > | |
Vec3< typename promote< S, T >::type > | operator+ (const Vec3< T > &v, S scalar) |
Add scalar to each element of the given vector and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec3< typename promote< T0, T1 >::type > | operator- (const Vec3< T0 > &v0, const Vec3< T1 > &v1) |
Subtract corresponding elements of v0 and v1 and return the result. More... | |
template<typename S , typename T > | |
Vec3< typename promote< S, T >::type > | operator- (const Vec3< T > &v, S scalar) |
Subtract scalar from each element of the given vector and return the result. More... | |
template<typename T > | |
T | angle (const Vec3< T > &v1, const Vec3< T > &v2) |
template<typename T > | |
bool | isApproxEqual (const Vec3< T > &a, const Vec3< T > &b) |
template<typename T > | |
bool | isApproxEqual (const Vec3< T > &a, const Vec3< T > &b, const Vec3< T > &eps) |
template<typename T > | |
Vec3< T > | Abs (const Vec3< T > &v) |
template<typename T > | |
void | orthonormalize (Vec3< T > &v1, Vec3< T > &v2, Vec3< T > &v3) |
template<typename T > | |
Vec3< T > | minComponent (const Vec3< T > &v1, const Vec3< T > &v2) |
Return component-wise minimum of the two vectors. More... | |
template<typename T > | |
Vec3< T > | maxComponent (const Vec3< T > &v1, const Vec3< T > &v2) |
Return component-wise maximum of the two vectors. More... | |
template<typename T > | |
Vec3< T > | Exp (Vec3< T > v) |
Return a vector with the exponent applied to each of the components of the input vector. More... | |
template<typename T > | |
Vec3< T > | Log (Vec3< T > v) |
Return a vector with log applied to each of the components of the input vector. More... | |
template<typename T0 , typename T1 > | |
bool | operator== (const Vec4< T0 > &v0, const Vec4< T1 > &v1) |
Equality operator, does exact floating point comparisons. More... | |
template<typename T0 , typename T1 > | |
bool | operator!= (const Vec4< T0 > &v0, const Vec4< T1 > &v1) |
Inequality operator, does exact floating point comparisons. More... | |
template<typename S , typename T > | |
Vec4< typename promote< S, T >::type > | operator* (S scalar, const Vec4< T > &v) |
Multiply each element of the given vector by scalar and return the result. More... | |
template<typename S , typename T > | |
Vec4< typename promote< S, T >::type > | operator* (const Vec4< T > &v, S scalar) |
Multiply each element of the given vector by scalar and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec4< typename promote< T0, T1 >::type > | operator* (const Vec4< T0 > &v0, const Vec4< T1 > &v1) |
Multiply corresponding elements of v0 and v1 and return the result. More... | |
template<typename S , typename T > | |
Vec4< typename promote< S, T >::type > | operator/ (S scalar, const Vec4< T > &v) |
Divide scalar by each element of the given vector and return the result. More... | |
template<typename S , typename T > | |
Vec4< typename promote< S, T >::type > | operator/ (const Vec4< T > &v, S scalar) |
Divide each element of the given vector by scalar and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec4< typename promote< T0, T1 >::type > | operator/ (const Vec4< T0 > &v0, const Vec4< T1 > &v1) |
Divide corresponding elements of v0 and v1 and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec4< typename promote< T0, T1 >::type > | operator+ (const Vec4< T0 > &v0, const Vec4< T1 > &v1) |
Add corresponding elements of v0 and v1 and return the result. More... | |
template<typename S , typename T > | |
Vec4< typename promote< S, T >::type > | operator+ (const Vec4< T > &v, S scalar) |
Add scalar to each element of the given vector and return the result. More... | |
template<typename T0 , typename T1 > | |
Vec4< typename promote< T0, T1 >::type > | operator- (const Vec4< T0 > &v0, const Vec4< T1 > &v1) |
Subtract corresponding elements of v0 and v1 and return the result. More... | |
template<typename S , typename T > | |
Vec4< typename promote< S, T >::type > | operator- (const Vec4< T > &v, S scalar) |
Subtract scalar from each element of the given vector and return the result. More... | |
template<typename T > | |
bool | isApproxEqual (const Vec4< T > &a, const Vec4< T > &b) |
template<typename T > | |
bool | isApproxEqual (const Vec4< T > &a, const Vec4< T > &b, const Vec4< T > &eps) |
template<typename T > | |
Vec4< T > | Abs (const Vec4< T > &v) |
template<typename T > | |
Vec4< T > | minComponent (const Vec4< T > &v1, const Vec4< T > &v2) |
Return component-wise minimum of the two vectors. More... | |
template<typename T > | |
Vec4< T > | maxComponent (const Vec4< T > &v1, const Vec4< T > &v2) |
Return component-wise maximum of the two vectors. More... | |
template<typename T > | |
Vec4< T > | Exp (Vec4< T > v) |
Return a vector with the exponent applied to each of the components of the input vector. More... | |
template<typename T > | |
Vec4< T > | Log (Vec4< T > v) |
Return a vector with log applied to each of the components of the input vector. More... | |
template<typename T > | |
Vec3< typename promote< T, typename Coord::ValueType >::type > | operator+ (const Vec3< T > &v0, const Coord &v1) |
Allow a Coord to be added to or subtracted from a Vec3. More... | |
template<typename T > | |
Vec3< typename promote< T, typename Coord::ValueType >::type > | operator+ (const Coord &v1, const Vec3< T > &v0) |
Allow a Coord to be added to or subtracted from a Vec3. More... | |
template<typename T > | |
Vec3< typename promote< T, Coord::ValueType >::type > | operator- (const Vec3< T > &v0, const Coord &v1) |
Allow a Coord to be subtracted from a Vec3. More... | |
template<typename T > | |
Vec3< typename promote< T, Coord::ValueType >::type > | operator- (const Coord &v1, const Vec3< T > &v0) |
Allow a Coord to be subtracted from a Vec3. More... | |
std::string | operator+ (const std::string &s, bool) |
Needed to support the (zeroVal<ValueType>() + val) idiom when ValueType is std::string . More... | |
std::string | operator+ (const std::string &s, int) |
Needed to support the (zeroVal<ValueType>() + val) idiom when ValueType is std::string . More... | |
std::string | operator+ (const std::string &s, float) |
Needed to support the (zeroVal<ValueType>() + val) idiom when ValueType is std::string . More... | |
std::string | operator+ (const std::string &s, double) |
Needed to support the (zeroVal<ValueType>() + val) idiom when ValueType is std::string . More... | |
int32_t | Abs (int32_t i) |
Return the absolute value of the given quantity. More... | |
int64_t | Abs (int64_t i) |
Return the absolute value of the given quantity. More... | |
float | Abs (float x) |
Return the absolute value of the given quantity. More... | |
double | Abs (double x) |
Return the absolute value of the given quantity. More... | |
long double | Abs (long double x) |
Return the absolute value of the given quantity. More... | |
uint32_t | Abs (uint32_t i) |
Return the absolute value of the given quantity. More... | |
uint64_t | Abs (uint64_t i) |
Return the absolute value of the given quantity. More... | |
bool | Abs (bool b) |
Return the absolute value of the given quantity. More... | |
template<typename T > | |
std::enable_if< std::is_same< T, size_t >::value, T >::type | Abs (T i) |
Return the absolute value of the given quantity. More... | |
float | Pow (float b, float e) |
Return be. More... | |
double | Pow (double b, double e) |
Return be. More... | |
float | Sin (const float &x) |
Return sin x. More... | |
double | Sin (const double &x) |
Return sin x. More... | |
float | Cos (const float &x) |
Return cos x. More... | |
double | Cos (const double &x) |
Return cos x. More... | |
float | Sqrt (float x) |
Return the square root of a floating-point value. More... | |
double | Sqrt (double x) |
Return the square root of a floating-point value. More... | |
long double | Sqrt (long double x) |
Return the square root of a floating-point value. More... | |
float | Cbrt (float x) |
Return the cube root of a floating-point value. More... | |
double | Cbrt (double x) |
Return the cube root of a floating-point value. More... | |
long double | Cbrt (long double x) |
Return the cube root of a floating-point value. More... | |
int | Mod (int x, int y) |
Return the remainder of x / y. More... | |
float | Mod (float x, float y) |
Return the remainder of x / y. More... | |
double | Mod (double x, double y) |
Return the remainder of x / y. More... | |
long double | Mod (long double x, long double y) |
Return the remainder of x / y. More... | |
template<typename Type > | |
Type | Remainder (Type x, Type y) |
Return the remainder of x / y. More... | |
float | RoundUp (float x) |
Return x rounded up to the nearest integer. More... | |
double | RoundUp (double x) |
Return x rounded up to the nearest integer. More... | |
long double | RoundUp (long double x) |
Return x rounded up to the nearest integer. More... | |
float | RoundDown (float x) |
Return x rounded down to the nearest integer. More... | |
double | RoundDown (double x) |
Return x rounded down to the nearest integer. More... | |
long double | RoundDown (long double x) |
Return x rounded down to the nearest integer. More... | |
float | Round (float x) |
Return x rounded to the nearest integer. More... | |
double | Round (double x) |
Return x rounded to the nearest integer. More... | |
long double | Round (long double x) |
Return x rounded to the nearest integer. More... | |
int | Floor (float x) |
Return the floor of x. More... | |
int | Floor (double x) |
Return the floor of x. More... | |
int | Floor (long double x) |
Return the floor of x. More... | |
int | Ceil (float x) |
Return the ceiling of x. More... | |
int | Ceil (double x) |
Return the ceiling of x. More... | |
int | Ceil (long double x) |
Return the ceiling of x. More... | |
using half = internal::half |
using PolarDecomposedMap = CompoundMap<SymmetricMap, UnitaryMap> |
using SymmetricMap = SpectralDecomposedMap |
enum Axis |
enum BiasedGradientScheme |
enum DDScheme |
enum DScheme |
enum RotationOrder |
|
inline |
Return the absolute value of the given quantity.
|
inline |
Return the absolute value of the given quantity.
|
inline |
Return the absolute value of the given quantity.
|
inline |
Return the absolute value of the given quantity.
|
inline |
Return the absolute value of the given quantity.
|
inline |
Return the absolute value of the given quantity.
|
inline |
Return the absolute value of the given quantity.
|
inline |
Return the absolute value of the given quantity.
|
inline |
Return the absolute value of the given quantity.
MatType openvdb::v12_0::math::aim | ( | const Vec3< typename MatType::value_type > & | direction, |
const Vec3< typename MatType::value_type > & | vertical | ||
) |
Return an orientation matrix such that z points along direction, and y is along the direction / vertical plane.
Angle between two vectors, the result is between [0, pi], e.g. float a = Vec2f::angle(v1,v2);
Angle between two vectors, the result is between [0, pi], e.g. double a = Vec3d::angle(v1,v2);
OPENVDB_API Mat4d openvdb::v12_0::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.
Mat3<T> openvdb::v12_0::math::bezLerp | ( | const Mat3< T0 > & | m1, |
const Mat3< T0 > & | m2, | ||
const Mat3< T0 > & | m3, | ||
const Mat3< T0 > & | m4, | ||
T | t | ||
) |
Interpolate between m1 and m4 by converting m1 ... m4 into quaternions and treating them as control points of a Bezier curve using slerp in place of lerp in the De Castlejeau evaluation algorithm. Just like a cubic Bezier curve, this will interpolate m1 at t = 0 and m4 at t = 1 but in general will not pass through m2 and m3. Unlike a standard Bezier curve this curve will not have the convex hull property. m1 ... m4 must be rotation matrices!
|
inline |
|
inline |
OPENVDB_API void openvdb::v12_0::math::calculateBounds | ( | const Transform & | t, |
const Vec3d & | minWS, | ||
const Vec3d & | maxWS, | ||
Vec3d & | minIS, | ||
Vec3d & | maxIS | ||
) |
Calculate an axis-aligned bounding box in index space from an axis-aligned bounding box in world space.
|
inline |
Return the cube root of a floating-point value.
|
inline |
Return the cube root of a floating-point value.
|
inline |
Return the cube root of a floating-point value.
|
inline |
Return the ceiling of x.
|
inline |
Return the ceiling of x.
|
inline |
Return the ceiling of x.
|
inline |
Return x if it is greater or equal in magnitude than delta. Otherwise, return zero.
|
inline |
Return x clamped to [min, max].
|
inline |
Return x clamped to [0, 1].
|
inline |
Return true
if x is outside [0,1].
OPENVDB_API Vec3d openvdb::v12_0::math::closestPointOnSegmentToPoint | ( | const Vec3d & | a, |
const Vec3d & | b, | ||
const Vec3d & | p, | ||
double & | t | ||
) |
Closest Point on Line Segment to Point. Given segment ab
and point p
, return the point on ab
closest to p
and t
the parametric distance to b
.
a | The segment's first vertex point. |
b | The segment's second vertex point. |
p | Point to compute the closest point on ab for. |
t | Parametric distance to b . |
OPENVDB_API Vec3d openvdb::v12_0::math::closestPointOnTriangleToPoint | ( | const Vec3d & | a, |
const Vec3d & | b, | ||
const Vec3d & | c, | ||
const Vec3d & | p, | ||
Vec3d & | uvw | ||
) |
Closest Point on Triangle to Point. Given a triangle abc
and a point p
, return the point on abc
closest to p
and the corresponding barycentric coordinates.
Algorithms from "Real-Time Collision Detection" pg 136 to 142 by Christer Ericson. The closest point is obtained by first determining which of the triangles' Voronoi feature regions p
is in and then computing the orthogonal projection of p
onto the corresponding feature.
a | The triangle's first vertex point. |
b | The triangle's second vertex point. |
c | The triangle's third vertex point. |
p | Point to compute the closest point on abc for. |
uvw | Barycentric coordinates, computed and returned. |
|
inline |
Return cos x.
|
inline |
Return cos x.
OPENVDB_API SharedPtr<FullyDecomposedMap> openvdb::v12_0::math::createFullyDecomposedMap | ( | const Mat4d & | m | ) |
General decomposition of a Matrix into a Unitary (e.g. rotation) following a Symmetric (e.g. stretch & shear)
OPENVDB_API SharedPtr<PolarDecomposedMap> openvdb::v12_0::math::createPolarDecomposedMap | ( | const Mat3d & | m | ) |
Decomposes a general linear into translation following polar decomposition.
T U S where:
T: Translation U: Unitary (rotation or reflection) S: Symmetric
OPENVDB_API SharedPtr<SymmetricMap> openvdb::v12_0::math::createSymmetricMap | ( | const Mat3d & | m | ) |
Utility methods.
Create a SymmetricMap from a symmetric matrix. Decomposes the map into Rotation Diagonal Rotation^T
|
inline |
Componentwise adder for POD types.
|
inline |
|
inline |
Componentwise greater than for POD types.
|
inline |
|
inline |
Componentwise less than for POD types.
|
inline |
|
inline |
Use Jacobi iterations to decompose a symmetric 3x3 matrix (diagonalize and compute eigenvectors)
This is based on the "Efficient numerical diagonalization of Hermitian 3x3 matrices" Joachim Kopp. arXiv.org preprint: physics/0610206 with the addition of largest pivot
|
inline |
Helper function used internally by processTypedMap()
|
inline |
Helper function used internally by processTypedMap()
|
inline |
|
inline |
|
inline |
|
inline |
Return the euclidean remainder of x. Note unlike % operator this will always return a positive result
Vec3<typename MatType::value_type> openvdb::v12_0::math::eulerAngles | ( | const MatType & | mat, |
RotationOrder | rotationOrder, | ||
typename MatType::value_type | eps = static_cast<typename MatType::value_type>(1.0e-8) |
||
) |
Return the Euler angles composing the given rotation matrix.
Optional axes arguments describe in what order elementary rotations are applied. Note that in our convention, XYZ means Rz * Ry * Rx. Because we are using rows rather than columns to represent the local axes of a coordinate frame, the interpretation from a local reference point of view is to first rotate about the x axis, then about the newly rotated y axis, and finally by the new local z axis. From a fixed reference point of view, the interpretation is to rotate about the stationary world z, y, and x axes respectively.
Irrespective of the Euler angle convention, in the case of distinct axes, eulerAngles() returns the x, y, and z angles in the corresponding x, y, z components of the returned Vec3. For the XZX convention, the left X value is returned in Vec3.x, and the right X value in Vec3.y. For the ZXZ convention the left Z value is returned in Vec3.z and the right Z value in Vec3.y
Examples of reconstructing r from its Euler angle decomposition
v = eulerAngles(r, ZYX_ROTATION); rx.setToRotation(Vec3d(1,0,0), v[0]); ry.setToRotation(Vec3d(0,1,0), v[1]); rz.setToRotation(Vec3d(0,0,1), v[2]); r = rx * ry * rz;
v = eulerAngles(r, ZXZ_ROTATION); rz1.setToRotation(Vec3d(0,0,1), v[2]); rx.setToRotation (Vec3d(1,0,0), v[0]); rz2.setToRotation(Vec3d(0,0,1), v[1]); r = rz2 * rx * rz1;
v = eulerAngles(r, XZX_ROTATION); rx1.setToRotation (Vec3d(1,0,0), v[0]); rx2.setToRotation (Vec3d(1,0,0), v[1]); rz.setToRotation (Vec3d(0,0,1), v[2]); r = rx2 * rz * rx1;
Return a vector with the exponent applied to each of the components of the input vector.
Return a vector with the exponent applied to each of the components of the input vector.
Return a vector with the exponent applied to each of the components of the input vector.
|
inline |
Return ex.
|
inline |
|
inline |
Return the floor of x.
|
inline |
Return the floor of x.
|
inline |
Return the floor of x.
|
inline |
Return the fractional part of x.
Vec3<typename MatType::value_type> openvdb::v12_0::math::getScale | ( | const MatType & | mat | ) |
Return a Vec3 representing the lengths of the passed matrix's upper 3×3's rows.
|
inline |
|
inline |
|
inline |
|
inline |
Return the integer part of x.
|
inline |
Return the inverse of x.
|
inline |
|
inline |
Return true
if a is equal to b to within the given tolerance.
|
inline |
Return true
if a is equal to b to within the default floating-point comparison tolerance.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Return true
if a is larger than b to within the given tolerance, i.e., if b - a < tolerance.
|
inline |
Return true
if x is equal to zero to within the default floating-point comparison tolerance.
|
inline |
Return true
if x is equal to zero to within the given tolerance.
|
inline |
Determine if a matrix is diagonal.
|
inline |
Return true
if a is exactly equal to b.
|
inline |
Return true
if no Nan or Inf values are present.
|
inline |
Return true
if x is finite.
|
inline |
Return true
if x is finite.
|
inline |
Determine if a matrix is an identity matrix.
|
inline |
Return true
if an Inf is present in the tuple.
|
inline |
Return true
if x is an infinity value (either positive infinity or negative infinity).
|
inline |
Return true
if x is an infinity value (either positive infinity or negative infinity).
|
inline |
Determine if a matrix is invertible.
|
inline |
Return true
if a Nan is present in the tuple.
|
inline |
Return true
if x is a NaN (Not-A-Number) value.
|
inline |
Return true
if x is a NaN (Not-A-Number) value.
|
inline |
Return true
if x is less than zero.
|
inline |
|
inline |
|
inline |
|
inline |
Determine if a matrix is symmetric.
This implicitly uses math::isApproxEqual() to determine equality.
|
inline |
|
inline |
|
inline |
Determine if a matrix is unitary (i.e., rotation or reflection).
|
inline |
Return true
if all elements are exactly equal to zero.
|
inline |
Return true
if x is exactly equal to zero.
MatType::ValueType openvdb::v12_0::math::lInfinityNorm | ( | const MatType & | matrix | ) |
Return the L∞ norm of an N×N matrix.
Return a vector with log applied to each of the components of the input vector.
Return a vector with log applied to each of the components of the input vector.
Return a vector with log applied to each of the components of the input vector.
MatType::ValueType openvdb::v12_0::math::lOneNorm | ( | const MatType & | matrix | ) |
Return the L1 norm of an N×N matrix.
|
inline |
Return the maximum of two values.
|
inline |
Return the maximum of three values.
|
inline |
Return the maximum of four values.
|
inline |
Return the maximum of five values.
|
inline |
Return the maximum of six values.
|
inline |
Return the maximum of seven values.
|
inline |
Return the maximum of eight values.
Return component-wise maximum of the two vectors.
Return component-wise maximum of the two vectors.
Return component-wise maximum of the two vectors.
size_t openvdb::v12_0::math::MaxIndex | ( | const Vec3T & | v | ) |
Return the index [0,1,2] of the largest value in a 3D vector.
The return value corresponds to the largest index of the of the largest vector components.
|
inline |
Return the minimum of two values.
|
inline |
Return the minimum of three values.
|
inline |
Return the minimum of four values.
|
inline |
Return the minimum of five values.
|
inline |
Return the minimum of six values.
|
inline |
Return the minimum of seven values.
|
inline |
Return the minimum of eight values.
Return component-wise minimum of the two vectors.
Return component-wise minimum of the two vectors.
Return component-wise minimum of the two vectors.
size_t openvdb::v12_0::math::MinIndex | ( | const Vec3T & | v | ) |
Return the index [0,1,2] of the smallest value in a 3D vector.
The return value corresponds to the largest index of the of the smallest vector components.
|
inline |
Return the remainder of x / y.
|
inline |
Return the remainder of x / y.
|
inline |
Return the remainder of x / y.
|
inline |
Return the remainder of x / y.
|
inline |
Return the unary negation of the given value.
|
inline |
Return the negation of the given boolean.
|
inline |
Return the "negation" of the given string.
Inequality operator, does exact floating point comparisons.
Inequality operator, does exact floating point comparisons.
|
inline |
Multiply each element of the given vector by scalar and return the result.
|
inline |
Multiply each element of the given vector by scalar and return the result.
|
inline |
Multiply corresponding elements of v0 and v1 and return the result.
|
inline |
Multiply each element of the given vector by scalar and return the result.
|
inline |
Multiply each element of the given vector by scalar and return the result.
|
inline |
Multiply corresponding elements of v0 and v1 and return the result.
|
inline |
Multiply each element of the given vector by scalar and return the result.
|
inline |
Multiply each element of the given vector by scalar and return the result.
|
inline |
Multiply corresponding elements of v0 and v1 and return the result.
Multiply each element of the given quaternion by scalar and return the result.
Mat3<typename promote<T0, T1>::type> openvdb::v12_0::math::operator* | ( | const Mat3< T0 > & | m0, |
const Mat3< T1 > & | m1 | ||
) |
Multiply m0 by m1 and return the resulting matrix.
|
inline |
Needed to support the (zeroVal<ValueType>() + val)
idiom when ValueType
is std::string
.
|
inline |
Needed to support the (zeroVal<ValueType>() + val)
idiom when ValueType
is std::string
.
|
inline |
Needed to support the (zeroVal<ValueType>() + val)
idiom when ValueType
is std::string
.
|
inline |
Needed to support the (zeroVal<ValueType>() + val)
idiom when ValueType
is std::string
.
|
inline |
Add corresponding elements of v0 and v1 and return the result.
|
inline |
Add scalar to each element of the given vector and return the result.
|
inline |
Add corresponding elements of v0 and v1 and return the result.
|
inline |
Add scalar to each element of the given vector and return the result.
|
inline |
|
inline |
Add corresponding elements of v0 and v1 and return the result.
|
inline |
|
inline |
Add scalar to each element of the given vector and return the result.
|
inline |
Subtract corresponding elements of v0 and v1 and return the result.
|
inline |
Subtract scalar from each element of the given vector and return the result.
|
inline |
Subtract corresponding elements of v0 and v1 and return the result.
|
inline |
Subtract scalar from each element of the given vector and return the result.
|
inline |
Subtract corresponding elements of v0 and v1 and return the result.
|
inline |
|
inline |
Subtract scalar from each element of the given vector and return the result.
|
inline |
|
inline |
Divide scalar by each element of the given vector and return the result.
|
inline |
Divide each element of the given vector by scalar and return the result.
|
inline |
Divide corresponding elements of v0 and v1 and return the result.
|
inline |
Divide scalar by each element of the given vector and return the result.
|
inline |
Divide each element of the given vector by scalar and return the result.
|
inline |
Divide corresponding elements of v0 and v1 and return the result.
|
inline |
Divide scalar by each element of the given vector and return the result.
|
inline |
Divide each element of the given vector by scalar and return the result.
|
inline |
Divide corresponding elements of v0 and v1 and return the result.
|
inline |
Output streaming of the Ray class.
OPENVDB_API std::ostream& openvdb::v12_0::math::operator<< | ( | std::ostream & | , |
const Transform & | |||
) |
std::ostream& openvdb::v12_0::math::operator<< | ( | std::ostream & | ostr, |
const Tuple< SIZE, T > & | classname | ||
) |
Write a Tuple to an output stream.
|
inline |
Output streaming of the Ray class.
|
inline |
|
inline |
|
inline |
Equality operator, does exact floating point comparisons.
Equality operator, does exact floating point comparisons.
Orthonormalize vectors v1 and v2 and store back the resulting basis e.g. Vec2f::orthonormalize(v1,v2);
Orthonormalize vectors v1, v2 and v3 and store back the resulting basis e.g. Vec3d::orthonormalize(v1,v2,v3);
Returns outer product of v1, v2, i.e. v1 v2^T if v1 and v2 are column vectors, e.g. M = Mat3f::outerproduct(v1,v2);
|
inline |
Write 0s along Mat4's last row and column, and a 1 on its diagonal.
Useful initialization when we're initializing just the 3×3 block.
|
inline |
Pi constant taken from Boost to match old behaviour.
|
inline |
|
inline |
|
inline |
bool openvdb::v12_0::math::polarDecomposition | ( | const MatType & | input, |
MatType & | unitary, | ||
MatType & | positive_hermitian, | ||
unsigned int | MAX_ITERATIONS = 100 |
||
) |
Decompose an invertible 3×3 matrix into a unitary matrix followed by a symmetric matrix (positive semi-definite Hermitian), i.e., M = U * S.
If det(U) = 1 it is a rotation, otherwise det(U) = -1, meaning there is some part reflection. See "Computing the polar decomposition with applications" Higham, N.J. - SIAM J. Sc. Stat Comput 7(4):1160-1174
Type openvdb::v12_0::math::Pow | ( | Type | x, |
int | n | ||
) |
Return xn.
|
inline |
Return be.
|
inline |
Return be.
|
inline |
Return x2.
|
inline |
Return x3.
|
inline |
Return x4.
Interpolate the rotation between m1 and m2 using Mat::powSolve. Unlike slerp, translation is not treated independently. This results in smoother animation results.
|
inline |
|
inline |
8-bit integer values print to std::ostreams as characters. Cast them so that they print as integers instead.
|
inline |
|
inline |
bool openvdb::v12_0::math::processTypedMap | ( | TransformType & | transform, |
OpType & | op | ||
) |
Utility function that, given a generic map pointer, calls a functor on the fully-resoved map.
Usage:
false
if the grid type is unknown or unhandled.
|
inline |
Return the remainder of x / y.
MatType openvdb::v12_0::math::rotation | ( | const Quat< typename MatType::value_type > & | q, |
typename MatType::value_type | eps = static_cast<typename MatType::value_type>(1.0e-8) |
||
) |
Return the rotation matrix specified by the given quaternion.
The quaternion is normalized and used to construct the matrix. Note that the matrix is transposed to match post-multiplication semantics.
MatType openvdb::v12_0::math::rotation | ( | Axis | axis, |
typename MatType::value_type | angle | ||
) |
Return a matrix for rotation by angle radians about the given axis.
axis | The axis (one of X, Y, Z) to rotate about. |
angle | The rotation angle, in radians. |
MatType openvdb::v12_0::math::rotation | ( | const Vec3< typename MatType::value_type > & | _axis, |
typename MatType::value_type | angle | ||
) |
Return a matrix for rotation by angle radians about the given axis.
|
inline |
Return x rounded to the nearest integer.
|
inline |
Return x rounded to the nearest integer.
|
inline |
Return x rounded to the nearest integer.
|
inline |
Return x rounded down to the nearest integer.
|
inline |
Return x rounded down to the nearest integer.
|
inline |
Return x rounded down to the nearest integer.
|
inline |
Return x rounded down to the nearest multiple of base.
|
inline |
Return x rounded up to the nearest integer.
|
inline |
Return x rounded up to the nearest integer.
|
inline |
Return x rounded up to the nearest integer.
|
inline |
Return x rounded up to the nearest multiple of base.
MatType openvdb::v12_0::math::scale | ( | const Vec3< typename MatType::value_type > & | s | ) |
Return a matrix that scales by s.
Set the matrix to a shear along axis0 by a fraction of axis1.
axis0 | The fixed axis of the shear. |
axis1 | The shear axis. |
shear | The shear factor. |
|
inline |
Return the sign of the given value as an integer (either -1, 0 or 1).
|
inline |
Return true
if a and b have different signs.
OPENVDB_API SharedPtr<MapBase> openvdb::v12_0::math::simplify | ( | SharedPtr< AffineMap > | affine | ) |
reduces an AffineMap to a ScaleMap or a ScaleTranslateMap when it can
|
inline |
Return sin x.
|
inline |
Return sin x.
MatType openvdb::v12_0::math::skew | ( | const Vec3< typename MatType::value_type > & | skew | ) |
Return a matrix as the cross product of the given vector.
Quat<T> openvdb::v12_0::math::slerp | ( | const Quat< T > & | q1, |
const Quat< T > & | q2, | ||
T | t, | ||
T | tolerance = 0.00001 |
||
) |
Linear interpolation between the two quaternions.
Interpolate between m1 and m2. Converts to quaternion form and uses slerp m1 and m2 must be rotation matrices!
|
inline |
Return 0 if x < 0, 1 if x > 1 or else (3 − 2 x) x².
|
inline |
Return 0 if x < min, 1 if x > max or else (3 − 2 t) t², where t = (x − min)/(max − min).
|
inline |
This function snaps a specific axis to a specific direction, preserving scaling.
It does this using minimum energy, thus posing a unique solution if basis & direction aren't parallel.
|
inline |
Return the square root of a floating-point value.
|
inline |
Return the square root of a floating-point value.
|
inline |
Return the square root of a floating-point value.
|
inline |
Solve for A=B*B, given A.
Denman-Beavers square root iteration
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Return x truncated to the given number of decimal digits.
MatType openvdb::v12_0::math::unit | ( | const MatType & | mat, |
typename MatType::value_type | eps = 1.0e-8 |
||
) |
Return a copy of the given matrix with its upper 3×3 rows normalized.
This can be geometrically interpreted as a matrix with no scaling along its major axes.
MatType openvdb::v12_0::math::unit | ( | const MatType & | in, |
typename MatType::value_type | eps, | ||
Vec3< typename MatType::value_type > & | scaling | ||
) |
Return a copy of the given matrix with its upper 3×3 rows normalized, and return the length of each of these rows in scaling.
This can be geometrically interpretted as a matrix with no scaling along its major axes, and the scaling in the input vector
|
inline |
Implementation of nominally fifth-order finite-difference WENO.
This function returns the numerical flux. See "High Order Finite Difference and Finite Volume WENO Schemes and Discontinuous Galerkin Methods for CFD" - Chi-Wang Shu ICASE Report No 2001-11 (page 6). Also see ICASE No 97-65 for a more complete reference (Shu, 1997). Given v1 = f(x-2dx), v2 = f(x-dx), v3 = f(x), v4 = f(x+dx) and v5 = f(x+2dx), return an interpolated value f(x+dx/2) with the special property that ( f(x+dx/2) - f(x-dx/2) ) / dx = df/dx (x) + error, where the error is fifth-order in smooth regions: O(dx) <= error <=O(dx^5)
|
inline |
Return true
if the interval [a, b] includes zero, i.e., if either a or b is zero or if they have different signs.