OpenVDB  5.2.0
Classes | Namespaces | Macros | Typedefs | Functions
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 <boost/mpl/vector.hpp>
#include <boost/mpl/push_back.hpp>
#include <boost/mpl/back.hpp>

Go to the source code of this file.

Classes

struct  SameLeafConfig< Dim1, NodeT2 >
 
class  PointDataLeafNode< T, Log2Dim >
 
class  PointDataLeafNode< T, Log2Dim >
 
struct  PointDataNodeChain< HeadT, HeadLevel >
 Recursive node chain which generates a boost::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  PointDataNodeChain< tree::InternalNode< ChildT, Log2Dim >, HeadLevel >
 
struct  PointDataNodeChain< tree::InternalNode< ChildT, Log2Dim >, 1 >
 
struct  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  SameLeafConfig< Dim1, points::PointDataLeafNode< T2, Dim1 > >
 

Namespaces

 openvdb
 
 openvdb::v5_2
 
 openvdb::v5_2::io
 
 openvdb::v5_2::tree
 
 openvdb::v5_2::points
 
 openvdb::v5_2::points::internal
 

Macros

#define VMASK_   this->getValueMask()
 

Typedefs

using 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 PointDataGrid = Grid< PointDataTree >
 Point data grid. More...
 

Functions

template<>
void 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 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 writeCompressedValuesSize (std::ostream &os, const T *srcBuf, Index srcCount)
 
template<typename PointDataTreeT >
AttributeSet::Descriptor::Ptr makeDescriptorUnique (PointDataTreeT &tree)
 Deep copy the descriptor across all leaf nodes. More...
 
template<typename PointDataTreeT >
void 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 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 initialize ()
 Global registration of point data-related types. More...
 
void 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

Macro Definition Documentation

#define VMASK_   this->getValueMask()