OpenVDB
4.0.1
|
Namespaces | |
attribute_traits | |
index_filter_internal | |
internal | |
point_attribute_internal | |
point_conversion_internal | |
point_count_internal | |
point_group_internal | |
Classes | |
struct | AccessorEval |
Accessor to call unsafe get and set methods based on templated Codec and Value. More... | |
struct | AccessorEval< UnknownCodec, ValueType > |
Partial specialization when Codec is not known at compile-time to use the supplied functor instead. More... | |
class | AttributeArray |
Base class for storing attribute data. More... | |
class | AttributeHandle |
class | AttributeHashFilter |
class | AttributeSet |
Ordered collection of uniquely-named attribute arrays. More... | |
class | AttributeWriteHandle |
Write-able version of AttributeHandle. More... | |
class | BBoxFilter |
class | BinaryFilter |
struct | FilterTraits |
struct | FilterTraits< BBoxFilter > |
struct | FilterTraits< BinaryFilter< T0, T1, And > > |
struct | FilterTraits< LevelSetFilter< T > > |
struct | FixedPointCodec |
struct | GroupCodec |
class | GroupFilter |
Index filtering on group membership. More... | |
class | GroupHandle |
class | GroupWriteHandle |
class | IndexIter |
A forward iterator over array indices with filtering IteratorT can be either IndexIter or ValueIndexIter (or some custom index iterator) FilterT should be a struct or class with a valid() method than can be evaluated per index Here's a simple filter example that only accepts even indices: More... | |
class | LevelSetFilter |
class | MultiGroupFilter |
struct | NullCodec |
class | NullFilter |
A no-op filter that can be used when iterating over all indices. More... | |
class | PointAttributeVector |
Point-partitioner compatible STL vector attribute wrapper for convenience. More... | |
class | PointDataLeafNode |
struct | PositionRange |
class | RandomLeafFilter |
class | StringAttributeHandle |
class | StringAttributeWriteHandle |
struct | StringCodec |
class | StringMetaInserter |
struct | TruncateCodec |
class | TypedAttributeArray |
Typed class for storing attribute data. More... | |
struct | UnitRange |
struct | UnitVecCodec |
struct | UnknownCodec |
class | ValueVoxelCIter |
A forward iterator over array indices in a single voxel. More... | |
Typedefs | |
using | StringIndexType = uint32_t |
using | StringAttributeArray = TypedAttributeArray< StringIndexType, StringCodec< false >> |
using | GroupType = uint8_t |
using | GroupAttributeArray = TypedAttributeArray< GroupType, GroupCodec > |
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<typename IntegerT , typename FloatT > | |
IntegerT | floatingPointToFixedPoint (const FloatT s) |
template<typename FloatT , typename IntegerT > | |
FloatT | fixedPointToFloatingPoint (const IntegerT s) |
template<typename IntegerVectorT , typename FloatT > | |
IntegerVectorT | floatingPointToFixedPoint (const math::Vec3< FloatT > &v) |
template<typename FloatVectorT , typename IntegerT > | |
FloatVectorT | fixedPointToFloatingPoint (const math::Vec3< IntegerT > &v) |
bool | isString (const AttributeArray &array) |
bool | isGroup (const AttributeArray &array) |
template<typename IterT > | |
Index64 | iterCount (const IterT &iter) |
Count up the number of times the iterator can iterate. More... | |
template<typename PointDataTree > | |
void | appendAttribute (PointDataTree &tree, const Name &name, const NamePair &type, const Index strideOrTotalSize=1, const bool constantStride=true, Metadata::Ptr metaDefaultValue=Metadata::Ptr(), const bool hidden=false, const bool transient=false) |
Appends a new attribute to the VDB tree (this method does not require a templated AttributeType) More... | |
template<typename ValueType , typename CodecType , typename PointDataTree > | |
void | appendAttribute (PointDataTree &tree, const std::string &name, const ValueType &uniformValue=point_attribute_internal::defaultValue< ValueType >(), const Index strideOrTotalSize=1, const bool constantStride=true, Metadata::Ptr metaDefaultValue=Metadata::Ptr(), const bool hidden=false, const bool transient=false) |
Appends a new attribute to the VDB tree. More... | |
template<typename ValueType , typename PointDataTree > | |
void | appendAttribute (PointDataTree &tree, const std::string &name, const ValueType &uniformValue=point_attribute_internal::defaultValue< ValueType >(), const Index strideOrTotalSize=1, const bool constantStride=true, Metadata::Ptr metaDefaultValue=Metadata::Ptr(), const bool hidden=false, const bool transient=false) |
Appends a new attribute to the VDB tree. More... | |
template<typename ValueType , typename PointDataTree > | |
void | collapseAttribute (PointDataTree &tree, const Name &name, const ValueType &uniformValue=point_attribute_internal::defaultValue< ValueType >()) |
Collapse the attribute into a uniform value. More... | |
template<typename PointDataTree > | |
void | dropAttributes (PointDataTree &tree, const std::vector< size_t > &indices) |
Drops attributes from the VDB tree. More... | |
template<typename PointDataTree > | |
void | dropAttributes (PointDataTree &tree, const std::vector< Name > &names) |
Drops attributes from the VDB tree. More... | |
template<typename PointDataTree > | |
void | dropAttribute (PointDataTree &tree, const size_t &index) |
Drop one attribute from the VDB tree (convenience method). More... | |
template<typename PointDataTree > | |
void | dropAttribute (PointDataTree &tree, const Name &name) |
Drop one attribute from the VDB tree (convenience method). More... | |
template<typename PointDataTree > | |
void | renameAttributes (PointDataTree &tree, const std::vector< Name > &oldNames, const std::vector< Name > &newNames) |
Rename attributes in a VDB tree. More... | |
template<typename PointDataTree > | |
void | renameAttribute (PointDataTree &tree, const Name &oldName, const Name &newName) |
Rename an attribute in a VDB tree. More... | |
template<typename PointDataTree > | |
void | compactAttributes (PointDataTree &tree) |
Compact attributes in a VDB tree (if possible). More... | |
template<typename PointDataTree > | |
void | bloscCompressAttribute (PointDataTree &tree, const Name &name) |
Apply Blosc compression to one attribute in the VDB tree. More... | |
template<typename CompressionT , typename PointDataGridT , typename PositionArrayT , typename PointIndexGridT > | |
PointDataGridT::Ptr | createPointDataGrid (const PointIndexGridT &pointIndexGrid, const PositionArrayT &positions, const math::Transform &xform, Metadata::Ptr positionDefaultValue=Metadata::Ptr()) |
Localises points with position into a PointDataGrid into two stages: allocation of the leaf attribute data and population of the positions. More... | |
template<typename CompressionT , typename PointDataGridT , typename ValueT > | |
PointDataGridT::Ptr | createPointDataGrid (const std::vector< ValueT > &positions, const math::Transform &xform, Metadata::Ptr positionDefaultValue=Metadata::Ptr()) |
Convenience method to create a PointDataGrid from a std::vector of point positions. More... | |
template<typename PointDataTreeT , typename PointIndexTreeT , typename PointArrayT > | |
void | populateAttribute (PointDataTreeT &tree, const PointIndexTreeT &pointIndexTree, const openvdb::Name &attributeName, const PointArrayT &data, const Index stride=1, const bool insertMetadata=true) |
Stores point attribute data in an existing PointDataGrid attribute. More... | |
template<typename PositionAttribute , typename PointDataGridT > | |
void | convertPointDataGridPosition (PositionAttribute &positionAttribute, const PointDataGridT &grid, const std::vector< Index64 > &pointOffsets, const Index64 startOffset, const std::vector< Name > &includeGroups=std::vector< Name >(), const std::vector< Name > &excludeGroups=std::vector< Name >(), const bool inCoreOnly=false) |
Convert the position attribute from a Point Data Grid. More... | |
template<typename TypedAttribute , typename PointDataTreeT > | |
void | convertPointDataGridAttribute (TypedAttribute &attribute, const PointDataTreeT &tree, const std::vector< Index64 > &pointOffsets, const Index64 startOffset, const unsigned arrayIndex, const Index stride=1, const std::vector< Name > &includeGroups=std::vector< Name >(), const std::vector< Name > &excludeGroups=std::vector< Name >(), const bool inCoreOnly=false) |
Convert the attribute from a PointDataGrid. More... | |
template<typename Group , typename PointDataTreeT > | |
void | convertPointDataGridGroup (Group &group, const PointDataTreeT &tree, const std::vector< Index64 > &pointOffsets, const Index64 startOffset, const AttributeSet::Descriptor::GroupIndex index, const std::vector< Name > &includeGroups=std::vector< Name >(), const std::vector< Name > &excludeGroups=std::vector< Name >(), const bool inCoreOnly=false) |
Convert the group from a PointDataGrid. More... | |
template<typename PositionWrapper , typename InterrupterT = openvdb::util::NullInterrupter> | |
float | computeVoxelSize (const PositionWrapper &positions, const uint32_t pointsPerVoxel, const math::Mat4d transform=math::Mat4d::identity(), const Index decimalPlaces=5, InterrupterT *const interrupter=nullptr) |
template<typename PointDataTreeT > | |
Index64 | pointCount (const PointDataTreeT &tree, const bool inCoreOnly=false) |
Total points in the PointDataTree. More... | |
template<typename PointDataTreeT > | |
Index64 | activePointCount (const PointDataTreeT &tree, const bool inCoreOnly=false) |
Total active points in the PointDataTree. More... | |
template<typename PointDataTreeT > | |
Index64 | inactivePointCount (const PointDataTreeT &tree, const bool inCoreOnly=false) |
Total inactive points in the PointDataTree. More... | |
template<typename PointDataTreeT > | |
Index64 | getPointOffsets (std::vector< Index64 > &pointOffsets, const PointDataTreeT &tree, const std::vector< Name > &includeGroups=std::vector< Name >(), const std::vector< Name > &excludeGroups=std::vector< Name >(), const bool inCoreOnly=false) |
Populate an array of cumulative point offsets per leaf node. More... | |
template<typename PointDataTreeT > | |
Index64 | groupPointCount (const PointDataTreeT &tree, const Name &name, const bool inCoreOnly=false) |
Total points in the group in the PointDataTree. More... | |
template<typename PointDataTreeT > | |
Index64 | activeGroupPointCount (const PointDataTreeT &tree, const Name &name, const bool inCoreOnly=false) |
Total active points in the group in the PointDataTree. More... | |
template<typename PointDataTreeT > | |
Index64 | inactiveGroupPointCount (const PointDataTreeT &tree, const Name &name, const bool inCoreOnly=false) |
Total inactive points in the group in the PointDataTree. More... | |
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) |
Sequentially pre-fetch all delayed-load voxel and attribute data from disk in order to accelerate subsequent random access. More... | |
OPENVDB_DEPRECATED void | initialize () |
OPENVDB_DEPRECATED void | uninitialize () |
void | deleteMissingPointGroups (std::vector< std::string > &groups, const AttributeSet::Descriptor &descriptor) |
Delete any group that is not present in the Descriptor. More... | |
template<typename PointDataTree > | |
void | appendGroup (PointDataTree &tree, const Name &group) |
Appends a new empty group to the VDB tree. More... | |
template<typename PointDataTree > | |
void | appendGroups (PointDataTree &tree, const std::vector< Name > &groups) |
Appends new empty groups to the VDB tree. More... | |
template<typename PointDataTree > | |
void | dropGroup (PointDataTree &tree, const Name &group, const bool compact=true) |
Drops an existing group from the VDB tree. More... | |
template<typename PointDataTree > | |
void | dropGroups (PointDataTree &tree, const std::vector< Name > &groups) |
Drops existing groups from the VDB tree, the tree is compacted after dropping. More... | |
template<typename PointDataTree > | |
void | dropGroups (PointDataTree &tree) |
Drops all existing groups from the VDB tree, the tree is compacted after dropping. More... | |
template<typename PointDataTree > | |
void | compactGroups (PointDataTree &tree) |
Compacts existing groups of a VDB Tree to use less memory if possible. More... | |
template<typename PointDataTree , typename PointIndexTree > | |
void | setGroup (PointDataTree &tree, const PointIndexTree &indexTree, const std::vector< short > &membership, const Name &group, const bool remove=false) |
Sets group membership from a PointIndexTree-ordered vector. More... | |
template<typename PointDataTree > | |
void | setGroup (PointDataTree &tree, const Name &group, const bool member=true) |
Sets membership for the specified group for all points (on/off). More... | |
template<typename PointDataTree , typename FilterT > | |
void | setGroupByFilter (PointDataTree &tree, const Name &group, const FilterT &filter) |
Sets group membership based on a provided filter. More... | |
template<typename PointDataTree > | |
void | setGroupByRandomTarget (PointDataTree &tree, const Name &group, const Index64 targetPoints, const unsigned int seed=0) |
template<typename PointDataTree > | |
void | setGroupByRandomPercentage (PointDataTree &tree, const Name &group, const float percentage=10.0f, const unsigned int seed=0) |
using GroupType = uint8_t |
using PointDataGrid = Grid<PointDataTree> |
Point data grid.
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.
using StringAttributeArray = TypedAttributeArray<StringIndexType, StringCodec<false>> |
using StringIndexType = uint32_t |
Index64 activeGroupPointCount | ( | const PointDataTreeT & | tree, |
const Name & | name, | ||
const bool | inCoreOnly = false |
||
) |
Total active points in the group in the PointDataTree.
tree | PointDataTree. |
name | group name. |
inCoreOnly | if true, points in out-of-core leaf nodes are not counted |
Index64 activePointCount | ( | const PointDataTreeT & | tree, |
const bool | inCoreOnly = false |
||
) |
Total active points in the PointDataTree.
tree | PointDataTree. |
inCoreOnly | if true, points in out-of-core leaf nodes are not counted |
|
inline |
Appends a new attribute to the VDB tree (this method does not require a templated AttributeType)
tree | the PointDataTree to be appended to. |
name | name for the new attribute. |
type | the type of the attibute. |
strideOrTotalSize | the stride of the attribute |
constantStride | if false , stride is interpreted as total size of the array |
metaDefaultValue | metadata default attribute value |
hidden | mark attribute as hidden |
transient | mark attribute as transient |
|
inline |
Appends a new attribute to the VDB tree.
tree | the PointDataTree to be appended to. |
name | name for the new attribute |
uniformValue | the initial value of the attribute |
strideOrTotalSize | the stride of the attribute |
constantStride | if false , stride is interpreted as total size of the array |
metaDefaultValue | metadata default attribute value |
hidden | mark attribute as hidden |
transient | mark attribute as transient |
|
inline |
Appends a new attribute to the VDB tree.
tree | the PointDataTree to be appended to. |
name | name for the new attribute. |
uniformValue | the initial value of the attribute |
strideOrTotalSize | the stride of the attribute |
constantStride | if false , stride is interpreted as total size of the array |
metaDefaultValue | metadata default attribute value |
hidden | mark attribute as hidden |
transient | mark attribute as transient |
|
inline |
Appends a new empty group to the VDB tree.
tree | the PointDataTree to be appended to. |
group | name of the new group. |
|
inline |
Appends new empty groups to the VDB tree.
tree | the PointDataTree to be appended to. |
groups | names of the new groups. |
|
inline |
Apply Blosc compression to one attribute in the VDB tree.
tree | the PointDataTree. |
name | name of the attribute to compress. |
|
inline |
Collapse the attribute into a uniform value.
tree | the PointDataTree in which to collapse the attribute. |
name | name for the attribute. |
uniformValue | value of the attribute |
|
inline |
Compact attributes in a VDB tree (if possible).
tree | the PointDataTree. |
|
inline |
Compacts existing groups of a VDB Tree to use less memory if possible.
tree | the PointDataTree to be compacted. |
|
inline |
@ brief Given a container of world space positions and a target points per voxel, compute a uniform voxel size that would best represent the storage of the points in a grid. This voxel size is typically used for conversion of the points into a PointDataGrid.
positions | array of world space positions |
pointsPerVoxel | the target number of points per voxel, must be positive and non-zero |
transform | voxel size will be computed using this optional transform if provided |
decimalPlaces | for readability, truncate voxel size to this number of decimals |
interrupter | an optional interrupter |
|
inline |
Convert the attribute from a PointDataGrid.
attribute | the attribute to be populated. |
tree | the PointDataTree to be converted. |
pointOffsets | a vector of cumulative point offsets for each leaf. |
startOffset | a value to shift all the point offsets by |
arrayIndex | the index in the Descriptor of the array to be converted. |
stride | the stride of the attribute |
includeGroups | a vector of VDB Points groups to be included (default is all) |
excludeGroups | a vector of VDB Points groups to be excluded (default is none) |
inCoreOnly | true if out-of-core leaf nodes are to be ignored |
|
inline |
Convert the group from a PointDataGrid.
group | the group to be populated. |
tree | the PointDataTree to be converted. |
pointOffsets | a vector of cumulative point offsets for each leaf |
startOffset | a value to shift all the point offsets by |
index | the group index to be converted. |
includeGroups | a vector of VDB Points groups to be included (default is all) |
excludeGroups | a vector of VDB Points groups to be excluded (default is none) |
inCoreOnly | true if out-of-core leaf nodes are to be ignored |
|
inline |
Convert the position attribute from a Point Data Grid.
positionAttribute | the position attribute to be populated. |
grid | the PointDataGrid to be converted. |
pointOffsets | a vector of cumulative point offsets for each leaf |
startOffset | a value to shift all the point offsets by |
includeGroups | a vector of VDB Points groups to be included (default is all) |
excludeGroups | a vector of VDB Points groups to be excluded (default is none) |
inCoreOnly | true if out-of-core leaf nodes are to be ignored |
|
inline |
Localises points with position into a PointDataGrid
into two stages: allocation of the leaf attribute data and population of the positions.
pointIndexGrid | a PointIndexGrid into the points. |
positions | list of world space point positions. |
xform | world to index space transform. |
positionDefaultValue | metadata default position value |
PointIndexGrid
to the points must be supplied to perform this operation. Typically this is built implicitly by the PointDataGrid constructor.
|
inline |
Convenience method to create a PointDataGrid
from a std::vector of point positions.
positions | list of world space point positions. |
xform | world to index space transform. |
positionDefaultValue | metadata default position value |
PointIndexGrid
to the points.
|
inline |
Delete any group that is not present in the Descriptor.
groups | the vector of group names. |
descriptor | the descriptor that holds the group map. |
|
inline |
Drop one attribute from the VDB tree (convenience method).
tree | the PointDataTree to be dropped from. |
index | index of the attribute to drop. |
|
inline |
Drop one attribute from the VDB tree (convenience method).
tree | the PointDataTree to be dropped from. |
name | name of the attribute to drop. |
|
inline |
Drops attributes from the VDB tree.
tree | the PointDataTree to be dropped from. |
indices | indices of the attributes to drop. |
|
inline |
Drops attributes from the VDB tree.
tree | the PointDataTree to be dropped from. |
names | names of the attributes to drop. |
|
inline |
Drops an existing group from the VDB tree.
tree | the PointDataTree to be dropped from. |
group | name of the group. |
compact | compact attributes if possible to reduce memory - if dropping more than one group, compacting once at the end will be faster |
|
inline |
Drops existing groups from the VDB tree, the tree is compacted after dropping.
tree | the PointDataTree to be dropped from. |
groups | names of the groups. |
|
inline |
Drops all existing groups from the VDB tree, the tree is compacted after dropping.
tree | the PointDataTree to be dropped from. |
|
inline |
|
inline |
|
inline |
|
inline |
Index64 getPointOffsets | ( | std::vector< Index64 > & | pointOffsets, |
const PointDataTreeT & | tree, | ||
const std::vector< Name > & | includeGroups = std::vector<Name>() , |
||
const std::vector< Name > & | excludeGroups = std::vector<Name>() , |
||
const bool | inCoreOnly = false |
||
) |
Populate an array of cumulative point offsets per leaf node.
pointOffsets | array of offsets to be populated. |
tree | PointDataTree from which to populate the offsets. |
includeGroups | the group of names to include. |
excludeGroups | the group of names to exclude. |
inCoreOnly | if true, points in out-of-core leaf nodes are ignored |
Index64 groupPointCount | ( | const PointDataTreeT & | tree, |
const Name & | name, | ||
const bool | inCoreOnly = false |
||
) |
Total points in the group in the PointDataTree.
tree | PointDataTree. |
name | group name. |
inCoreOnly | if true, points in out-of-core leaf nodes are not counted |
Index64 inactiveGroupPointCount | ( | const PointDataTreeT & | tree, |
const Name & | name, | ||
const bool | inCoreOnly = false |
||
) |
Total inactive points in the group in the PointDataTree.
tree | PointDataTree. |
name | group name. |
inCoreOnly | if true, points in out-of-core leaf nodes are not counted |
Index64 inactivePointCount | ( | const PointDataTreeT & | tree, |
const bool | inCoreOnly = false |
||
) |
Total inactive points in the PointDataTree.
tree | PointDataTree. |
inCoreOnly | if true, points in out-of-core leaf nodes are not counted |
OPENVDB_DEPRECATED void openvdb::v4_0_1::points::initialize | ( | ) |
|
inline |
|
inline |
|
inline |
Count up the number of times the iterator can iterate.
iter | the iterator. |
|
inline |
Deep copy the descriptor across all leaf nodes.
tree | the PointDataTree. |
Index64 pointCount | ( | const PointDataTreeT & | tree, |
const bool | inCoreOnly = false |
||
) |
Total points in the PointDataTree.
tree | PointDataTree. |
inCoreOnly | if true, points in out-of-core leaf nodes are not counted |
|
inline |
Stores point attribute data in an existing PointDataGrid
attribute.
tree | the PointDataGrid to be populated. |
pointIndexTree | a PointIndexTree into the points. |
attributeName | the name of the VDB Points attribute to be populated. |
data | a wrapper to the attribute data. |
stride | the stride of the attribute |
insertMetadata | true if strings are to be automatically inserted as metadata. |
PointIndexGrid
to the points must be supplied to perform this operation. This is required to ensure the same point index ordering.
|
inline |
Sequentially pre-fetch all delayed-load voxel and attribute data from disk in order to accelerate subsequent random access.
tree | the PointDataTree. |
|
inline |
Rename an attribute in a VDB tree.
tree | the PointDataTree. |
oldName | the old attribute name to rename from. |
newName | the new attribute name to rename to. |
|
inline |
Rename attributes in a VDB tree.
tree | the PointDataTree. |
oldNames | a list of old attribute names to rename from. |
newNames | a list of new attribute names to rename to. |
|
inline |
Sets group membership from a PointIndexTree-ordered vector.
tree | the PointDataTree. |
indexTree | the PointIndexTree. |
membership | 1 if the point is in the group, 0 otherwise. |
group | the name of the group. |
remove | if true also perform removal of points from the group. |
|
inline |
Sets membership for the specified group for all points (on/off).
tree | the PointDataTree. |
group | the name of the group. |
member | true / false for membership of the group. |
|
inline |
Sets group membership based on a provided filter.
tree | the PointDataTree. |
group | the name of the group. |
filter | filter data that is used to create a per-leaf filter |
|
inline |
|
inline |
|
inline |
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).
tree | the PointDataTree. |
on | true to enable streaming |
OPENVDB_DEPRECATED void openvdb::v4_0_1::points::uninitialize | ( | ) |