OpenVDB  11.0.0
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< Bits, Signed >
 
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< Bits >
 
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

 openvdb
 
 openvdb::v11_0
 
 openvdb::v11_0::math
 
 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. More...
 
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. More...
 
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. More...
 
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

#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))))
const std::enable_if<!VecTraits< T >::IsVec, T >::type & max(const T &a, const T &b)
Definition: Composite.h:110
const std::enable_if<!VecTraits< T >::IsVec, T >::type & min(const T &a, const T &b)
Definition: Composite.h:106