HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PointDataGrid.h File Reference

Attribute-owned data structure for points. Point attributes are stored in leaf nodes and ordered by voxel for fast random and sequential access. More...

#include <openvdb/version.h>
#include <openvdb/Grid.h>
#include <openvdb/tree/Tree.h>
#include <openvdb/tree/LeafNode.h>
#include <openvdb/tools/PointIndexGrid.h>
#include "AttributeArray.h"
#include "AttributeArrayString.h"
#include "AttributeGroup.h"
#include "AttributeSet.h"
#include "StreamCompression.h"
#include <cstring>
#include <iostream>
#include <limits>
#include <memory>
#include <type_traits>
#include <utility>
#include <vector>
#include <hboost/mpl/vector.hpp>
#include <hboost/mpl/push_back.hpp>
#include <hboost/mpl/back.hpp>
+ Include dependency graph for PointDataGrid.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openvdb::OPENVDB_VERSION_NAME::tree::SameLeafConfig< Index, typename >
 
class  openvdb::OPENVDB_VERSION_NAME::points::PointDataLeafNode< T, Log2Dim >
 
class  openvdb::OPENVDB_VERSION_NAME::points::PointDataLeafNode< T, Log2Dim >
 
struct  openvdb::OPENVDB_VERSION_NAME::points::internal::PointDataNodeChain< HeadT, HeadLevel >
 Recursive node chain which generates a hboost::mpl::vector listing value converted types of nodes to PointDataGrid nodes of the same configuration, rooted at RootNodeType in reverse order, from LeafNode to RootNode. See also TreeConverter<>. More...
 
struct  openvdb::OPENVDB_VERSION_NAME::points::internal::PointDataNodeChain< tree::InternalNode< ChildT, Log2Dim >, HeadLevel >
 
struct  openvdb::OPENVDB_VERSION_NAME::points::internal::PointDataNodeChain< tree::InternalNode< ChildT, Log2Dim >, 1 >
 
struct  openvdb::OPENVDB_VERSION_NAME::points::TreeConverter< TreeType >
 Similiar to ValueConverter, but allows for tree configuration conversion to a PointDataTree. ValueConverter<PointDataIndex32> cannot be used as a PointDataLeafNode is not a specialization of LeafNode. More...
 
struct  openvdb::OPENVDB_VERSION_NAME::tree::SameLeafConfig< Dim1, points::PointDataLeafNode< T2, Dim1 > >
 

Namespaces

 openvdb
 
 openvdb::OPENVDB_VERSION_NAME
 
 openvdb::OPENVDB_VERSION_NAME::io
 
 openvdb::OPENVDB_VERSION_NAME::tree
 
 openvdb::OPENVDB_VERSION_NAME::points
 
 openvdb::OPENVDB_VERSION_NAME::points::internal
 

Macros

#define VMASK_   this->getValueMask()
 

Typedefs

using openvdb::OPENVDB_VERSION_NAME::points::PointDataTree = tree::Tree< tree::RootNode< tree::InternalNode< tree::InternalNode< PointDataLeafNode< PointDataIndex32, 3 >, 4 >, 5 >>>
 Point index tree configured to match the default VDB configurations. More...
 
using openvdb::OPENVDB_VERSION_NAME::points::PointDataGrid = Grid< PointDataTree >
 Point data grid. More...
 

Functions

template<>
void openvdb::OPENVDB_VERSION_NAME::io::readCompressedValues (std::istream &is, PointDataIndex32 *destBuf, Index destCount, const util::NodeMask< 3 > &, bool)
 openvdb::io::readCompressedValues specialized on PointDataIndex32 arrays to ignore the value mask, use a larger block size and use 16-bit size instead of 64-bit More...
 
template<>
void openvdb::OPENVDB_VERSION_NAME::io::writeCompressedValues (std::ostream &os, PointDataIndex32 *srcBuf, Index srcCount, const util::NodeMask< 3 > &, const util::NodeMask< 3 > &, bool)
 openvdb::io::writeCompressedValues specialized on PointDataIndex32 arrays to ignore the value mask, use a larger block size and use 16-bit size instead of 64-bit More...
 
template<typename T >
void openvdb::OPENVDB_VERSION_NAME::io::writeCompressedValuesSize (std::ostream &os, const T *srcBuf, Index srcCount)
 
template<typename PointDataTreeT >
AttributeSet::Descriptor::Ptr openvdb::OPENVDB_VERSION_NAME::points::makeDescriptorUnique (PointDataTreeT &tree)
 Deep copy the descriptor across all leaf nodes. More...
 
template<typename PointDataTreeT >
void openvdb::OPENVDB_VERSION_NAME::points::setStreamingMode (PointDataTreeT &tree, bool on=true)
 Toggle the streaming mode on all attributes in the tree to collapse the attributes after deconstructing a bound AttributeHandle to each array. This results in better memory efficiency when the data is streamed into another data structure (typically for rendering). More...
 
template<typename PointDataTreeT >
void openvdb::OPENVDB_VERSION_NAME::points::prefetch (PointDataTreeT &tree, bool position=true, bool otherAttributes=true)
 Sequentially pre-fetch all delayed-load voxel and attribute data from disk in order to accelerate subsequent random access. More...
 
void openvdb::OPENVDB_VERSION_NAME::points::internal::initialize ()
 Global registration of point data-related types. More...
 
void openvdb::OPENVDB_VERSION_NAME::points::internal::uninitialize ()
 Global deregistration of point data-related types. More...
 

Detailed Description

Attribute-owned data structure for points. Point attributes are stored in leaf nodes and ordered by voxel for fast random and sequential access.

Author
Dan Bailey

Definition in file PointDataGrid.h.

Macro Definition Documentation

#define VMASK_   this->getValueMask()

Definition at line 739 of file PointDataGrid.h.