OpenVDB 11.0.0

Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
Types.h File Reference
`#include "version.h"`
`#include "Platform.h"`
`#include "TypeList.h"`
`#include <openvdb/math/Half.h>`
`#include <openvdb/math/Math.h>`
`#include <openvdb/math/BBox.h>`
`#include <openvdb/math/Quat.h>`
`#include <openvdb/math/Vec2.h>`
`#include <openvdb/math/Vec3.h>`
`#include <openvdb/math/Vec4.h>`
`#include <openvdb/math/Mat3.h>`
`#include <openvdb/math/Mat4.h>`
`#include <openvdb/math/Coord.h>`
`#include <cstdint>`
`#include <memory>`
`#include <type_traits>`

Go to the source code of this file.

## Classes
class | ValueMask
struct | PointIndex< IntType_, Kind >
| Integer wrapper, required to distinguish PointIndexGrid and PointDataGrid from Int32Grid and Int64Grid. More...
struct | IsSpecializationOf< T, Template >
| Helper metafunction used to determine if the first template parameter is a specialization of the class template given in the second template parameter. More...
struct | IsSpecializationOf< Template< Args... >, Template >
struct | index_sequence< Ns >
| Re-implementation of C++17's index_sequence and the helper alias make_index_sequence. This was introduced to fix an issue with clang's builtin implementation which treats template specializations of builtin templates differently when a subsequent parameter is dependent. The result is a resolution failure during partial specialization selection. For example, the following will fail to specialize: More...
struct | VecTraits< T, bool >
struct | VecTraits< T, false >
struct | QuatTraits< T, bool >
struct | QuatTraits< T, false >
struct | MatTraits< T, bool >
struct | MatTraits< T, false >
struct | ValueTraits< T, bool >
struct | ValueTraits< T, false >
struct | ConvertElementType< T, SubT >
| Conversion classes for changing the underlying type of VDB types. More...
struct | ConvertElementType< math::Vec2< T >, SubT >
struct | ConvertElementType< math::Vec3< T >, SubT >
struct | ConvertElementType< math::Vec4< T >, SubT >
struct | ConvertElementType< math::Quat< T >, SubT >
struct | ConvertElementType< math::Mat3< T >, SubT >
struct | ConvertElementType< math::Mat4< T >, SubT >
struct | int_t< 8ul, true >
struct | int_t< 16ul, true >
struct | int_t< 32ul, true >
struct | int_t< 64ul, true >
struct | int_t< 8ul, false >
struct | int_t< 16ul, false >
struct | int_t< 32ul, false >
struct | int_t< 64ul, false >
struct | flt_t< 16ul >
struct | flt_t< 32ul >
struct | flt_t< 64ul >
struct | PromoteType< T >
| Promotion classes which provide an interface for elevating and demoting a scalar or VDB type to a higher or lower precision. Integer types preserve their sign. Types promotion are only valid between 8 to 64 bits (long doubles are not supported). More...
struct | PromoteContainerType< T, ContainerT >
struct | PromoteType< math::Vec2< T > >
struct | PromoteType< math::Vec3< T > >
struct | PromoteType< math::Vec4< T > >
struct | PromoteType< math::Quat< T > >
struct | PromoteType< math::Mat3< T > >
struct | PromoteType< math::Mat4< T > >
struct | CanConvertType< FromType, ToType >
| CanConvertType<FromType, ToType>::value is `true` if a value of type ToType can be constructed from a value of type FromType. More...
struct | CanConvertType< T, math::Vec2< T > >
struct | CanConvertType< T, math::Vec3< T > >
struct | CanConvertType< T, math::Vec4< T > >
struct | CanConvertType< math::Vec2< T >, math::Vec2< T > >
struct | CanConvertType< math::Vec3< T >, math::Vec3< T > >
struct | CanConvertType< math::Vec4< T >, math::Vec4< T > >
struct | CanConvertType< T0, math::Vec2< T1 > >
struct | CanConvertType< T0, math::Vec3< T1 > >
struct | CanConvertType< T0, math::Vec4< T1 > >
struct | CanConvertType< PointIndex32, PointDataIndex32 >
struct | CanConvertType< PointDataIndex32, PointIndex32 >
struct | CanConvertType< T, ValueMask >
struct | CanConvertType< ValueMask, T >
struct | CopyConstness< FromType, ToType >
| CopyConstness<T1, T2>::Type is either `const T2` or `T2` with no `const` qualifier, depending on whether `T1` is `const`. More...
class | CombineArgs< AValueType, BValueType >
| This struct collects both input and output arguments to "grid combiner" functors used with the tree::TypedGrid::combineExtended() and combine2Extended() methods. AValueType and BValueType are the value types of the two grids being combined. More...
struct | SwappedCombineOp< ValueType, CombineOp >
class | ShallowCopy
| Tag dispatch class that distinguishes shallow copy constructors from deep copy constructors. More...
class | TopologyCopy
| Tag dispatch class that distinguishes topology copy constructors from deep copy constructors. More...
class | DeepCopy
| Tag dispatch class that distinguishes constructors that deep copy. More...
class | Steal
| Tag dispatch class that distinguishes constructors that steal. More...
class | PartialCreate
| Tag dispatch class that distinguishes constructors during file input. More...

## Namespaces
namespace | openvdb
namespace | openvdb::v11_0
namespace | openvdb::v11_0::math
namespace | openvdb::v11_0::types_internal

## Macros
#define | OPENVDB_TARGET_BITS(SHIFT, PROMOTE)

## Typedefs
using | half = internal::half
using | Index32 = uint32_t
using | Index64 = uint64_t
using | Index = Index32
using | Int16 = int16_t
using | Int32 = int32_t
using | Int64 = int64_t
using | Int = Int32
using | Byte = unsigned char
using | Real = double
using | Vec2R = math::Vec2< Real >
using | Vec2I = math::Vec2< Index32 >
using | Vec2f = math::Vec2< float >
using | Vec2H = math::Vec2< math::half >
using | Vec3R = math::Vec3< Real >
using | Vec3I = math::Vec3< Index32 >
using | Vec3f = math::Vec3< float >
using | Vec3H = math::Vec3< math::half >
using | Vec3U8 = math::Vec3< uint8_t >
using | Vec3U16 = math::Vec3< uint16_t >
using | BBoxd = math::BBox< Vec3d >
using | Vec4R = math::Vec4< Real >
using | Vec4I = math::Vec4< Index32 >
using | Vec4f = math::Vec4< float >
using | Vec4H = math::Vec4< math::half >
using | Mat3R = math::Mat3< Real >
using | Mat4R = math::Mat4< Real >
using | QuatR = math::Quat< Real >
template<typename T >
using | SharedPtr = std::shared_ptr< T >
template<typename T >
using | WeakPtr = std::weak_ptr< T >
using | PointIndex32 = PointIndex< Index32, 0 >
using | PointIndex64 = PointIndex< Index64, 0 >
using | PointDataIndex32 = PointIndex< Index32, 1 >
using | PointDataIndex64 = PointIndex< Index64, 1 >
template<std::size_t N>
using | make_index_sequence = std::decay_t< decltype(make_index_sequence_impl< N >())>

## Enumerations
enum | GridClass { GRID_UNKNOWN = 0 , GRID_LEVEL_SET , GRID_FOG_VOLUME , GRID_STAGGERED }
enum | { NUM_GRID_CLASSES = GRID_STAGGERED + 1 }
enum | VecType { VEC_INVARIANT = 0 , VEC_COVARIANT , VEC_COVARIANT_NORMALIZE , VEC_CONTRAVARIANT_RELATIVE , VEC_CONTRAVARIANT_ABSOLUTE }
enum | { NUM_VEC_TYPES = VEC_CONTRAVARIANT_ABSOLUTE + 1 }
enum | MergePolicy { MERGE_ACTIVE_STATES = 0 , MERGE_NODES , MERGE_ACTIVE_STATES_AND_NODES }

## Functions
template<typename T , typename U >
SharedPtr< T > | ConstPtrCast (const SharedPtr< U > &ptr)
| Return a new shared pointer that points to the same object as the given pointer but with possibly different `const`-ness.
template<typename T , typename U >
SharedPtr< T > | DynamicPtrCast (const SharedPtr< U > &ptr)
| Return a new shared pointer that is either null or points to the same object as the given pointer after a `dynamic_cast`.
template<typename T , typename U >
SharedPtr< T > | StaticPtrCast (const SharedPtr< U > &ptr)
| Return a new shared pointer that points to the same object as the given pointer after a `static_cast`.
template<std::size_t N, std::size_t... Is>
auto | make_index_sequence_impl ()
template<typename T >
const char * | typeNameAsString ()
template<>
const char * | typeNameAsString< bool > ()
template<>
const char * | typeNameAsString< ValueMask > ()
template<>
const char * | typeNameAsString< math::half > ()
template<>
const char * | typeNameAsString< float > ()
template<>
const char * | typeNameAsString< double > ()
template<>
const char * | typeNameAsString< int8_t > ()
template<>
const char * | typeNameAsString< uint8_t > ()
template<>
const char * | typeNameAsString< int16_t > ()
template<>
const char * | typeNameAsString< uint16_t > ()
template<>
const char * | typeNameAsString< int32_t > ()
template<>
const char * | typeNameAsString< uint32_t > ()
template<>
const char * | typeNameAsString< int64_t > ()
template<>
const char * | typeNameAsString< Vec2i > ()
template<>
const char * | typeNameAsString< Vec2s > ()
template<>
const char * | typeNameAsString< Vec2d > ()
template<>
const char * | typeNameAsString< Vec3U8 > ()
template<>
const char * | typeNameAsString< Vec3U16 > ()
template<>
const char * | typeNameAsString< Vec3i > ()
template<>
const char * | typeNameAsString< Vec3f > ()
template<>
const char * | typeNameAsString< Vec3d > ()
template<>
const char * | typeNameAsString< Vec4i > ()
template<>
const char * | typeNameAsString< Vec4f > ()
template<>
const char * | typeNameAsString< Vec4d > ()
template<>
const char * | typeNameAsString< std::string > ()
template<>
const char * | typeNameAsString< Mat3s > ()
template<>
const char * | typeNameAsString< Mat3d > ()
template<>
const char * | typeNameAsString< Mat4s > ()
template<>
const char * | typeNameAsString< Mat4d > ()
template<>
const char * | typeNameAsString< math::Quats > ()
template<>
const char * | typeNameAsString< math::Quatd > ()
template<>
const char * | typeNameAsString< PointIndex32 > ()
template<>
const char * | typeNameAsString< PointIndex64 > ()
template<>
const char * | typeNameAsString< PointDataIndex32 > ()
template<>
const char * | typeNameAsString< PointDataIndex64 > ()

## Variables
static const Real | LEVEL_SET_HALF_WIDTH = 3

## Macro Definition Documentation

## ◆ OPENVDB_TARGET_BITS

#define OPENVDB_TARGET_BITS | ( |  | SHIFT,
|  |  | PROMOTE
| ) |  |

Value:
std::max(size_t(8), \
std::min(size_t(64), (PROMOTE ? size_t(8)*(sizeof(T)<<SHIFT) : \
size_t(8)*(sizeof(T)>>SHIFT))))