HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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>
+ Include dependency graph for Types.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::ValueMask
 
struct  openvdb::OPENVDB_VERSION_NAME::PointIndex< IntType_, Kind >
 Integer wrapper, required to distinguish PointIndexGrid and PointDataGrid from Int32Grid and Int64Grid. More...
 
struct  openvdb::OPENVDB_VERSION_NAME::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  openvdb::OPENVDB_VERSION_NAME::IsSpecializationOf< Template< Args...>, Template >
 
struct  openvdb::OPENVDB_VERSION_NAME::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  openvdb::OPENVDB_VERSION_NAME::VecTraits< T, bool >
 
struct  openvdb::OPENVDB_VERSION_NAME::VecTraits< T, false >
 
struct  openvdb::OPENVDB_VERSION_NAME::QuatTraits< T, bool >
 
struct  openvdb::OPENVDB_VERSION_NAME::QuatTraits< T, false >
 
struct  openvdb::OPENVDB_VERSION_NAME::MatTraits< T, bool >
 
struct  openvdb::OPENVDB_VERSION_NAME::MatTraits< T, false >
 
struct  openvdb::OPENVDB_VERSION_NAME::ValueTraits< T, bool >
 
struct  openvdb::OPENVDB_VERSION_NAME::ValueTraits< T, false >
 
struct  openvdb::OPENVDB_VERSION_NAME::ConvertElementType< T, SubT >
 Conversion classes for changing the underlying type of VDB types. More...
 
struct  openvdb::OPENVDB_VERSION_NAME::ConvertElementType< math::Vec2< T >, SubT >
 
struct  openvdb::OPENVDB_VERSION_NAME::ConvertElementType< math::Vec3< T >, SubT >
 
struct  openvdb::OPENVDB_VERSION_NAME::ConvertElementType< math::Vec4< T >, SubT >
 
struct  openvdb::OPENVDB_VERSION_NAME::ConvertElementType< math::Quat< T >, SubT >
 
struct  openvdb::OPENVDB_VERSION_NAME::ConvertElementType< math::Mat3< T >, SubT >
 
struct  openvdb::OPENVDB_VERSION_NAME::ConvertElementType< math::Mat4< T >, SubT >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::int_t< Bits, Signed >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::int_t< 8ul, true >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::int_t< 16ul, true >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::int_t< 32ul, true >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::int_t< 64ul, true >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::int_t< 8ul, false >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::int_t< 16ul, false >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::int_t< 32ul, false >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::int_t< 64ul, false >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::flt_t< Bits >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::flt_t< 16ul >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::flt_t< 32ul >
 
struct  openvdb::OPENVDB_VERSION_NAME::types_internal::flt_t< 64ul >
 
struct  openvdb::OPENVDB_VERSION_NAME::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  openvdb::OPENVDB_VERSION_NAME::PromoteContainerType< T, ContainerT >
 
struct  openvdb::OPENVDB_VERSION_NAME::PromoteType< math::Vec2< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::PromoteType< math::Vec3< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::PromoteType< math::Vec4< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::PromoteType< math::Quat< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::PromoteType< math::Mat3< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::PromoteType< math::Mat4< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::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  openvdb::OPENVDB_VERSION_NAME::CanConvertType< T, math::Vec2< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< T, math::Vec3< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< T, math::Vec4< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< math::Vec2< T >, math::Vec2< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< math::Vec3< T >, math::Vec3< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< math::Vec4< T >, math::Vec4< T > >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< T0, math::Vec2< T1 > >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< T0, math::Vec3< T1 > >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< T0, math::Vec4< T1 > >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< PointIndex32, PointDataIndex32 >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< PointDataIndex32, PointIndex32 >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< T, ValueMask >
 
struct  openvdb::OPENVDB_VERSION_NAME::CanConvertType< ValueMask, T >
 
struct  openvdb::OPENVDB_VERSION_NAME::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  openvdb::OPENVDB_VERSION_NAME::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  openvdb::OPENVDB_VERSION_NAME::SwappedCombineOp< ValueType, CombineOp >
 
class  openvdb::OPENVDB_VERSION_NAME::ShallowCopy
 Tag dispatch class that distinguishes shallow copy constructors from deep copy constructors. More...
 
class  openvdb::OPENVDB_VERSION_NAME::TopologyCopy
 Tag dispatch class that distinguishes topology copy constructors from deep copy constructors. More...
 
class  openvdb::OPENVDB_VERSION_NAME::DeepCopy
 Tag dispatch class that distinguishes constructors that deep copy. More...
 
class  openvdb::OPENVDB_VERSION_NAME::Steal
 Tag dispatch class that distinguishes constructors that steal. More...
 
class  openvdb::OPENVDB_VERSION_NAME::PartialCreate
 Tag dispatch class that distinguishes constructors during file input. More...
 

Namespaces

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

Macros

#define OPENVDB_TARGET_BITS(SHIFT, PROMOTE)
 

Typedefs

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

Enumerations

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

Functions

template<typename T , typename U >
SharedPtr< T > openvdb::OPENVDB_VERSION_NAME::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 > openvdb::OPENVDB_VERSION_NAME::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 > openvdb::OPENVDB_VERSION_NAME::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 openvdb::OPENVDB_VERSION_NAME::make_index_sequence_impl ()
 
template<typename T >
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< bool > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< ValueMask > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< math::half > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< float > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< double > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< int8_t > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< uint8_t > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< int16_t > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< uint16_t > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< int32_t > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< uint32_t > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< int64_t > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec2i > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec2s > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec2d > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec3U8 > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec3U16 > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec3i > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec3f > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec3d > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec4i > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec4f > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Vec4d > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< std::string > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Mat3s > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Mat3d > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Mat4s > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< Mat4d > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< math::Quats > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< math::Quatd > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< PointIndex32 > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< PointIndex64 > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< PointDataIndex32 > ()
 
template<>
const char * openvdb::OPENVDB_VERSION_NAME::typeNameAsString< PointDataIndex64 > ()
 

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))))
ImageBuf OIIO_API min(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API max(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)

Definition at line 363 of file Types.h.