HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT > Struct Template Reference

DynamicNodeManager operator to merge two trees using a CSG difference. More...

#include <Merge.h>

Public Types

using ValueT = typename TreeT::ValueType
 
using RootT = typename TreeT::RootNodeType
 
using LeafT = typename TreeT::LeafNodeType
 

Public Member Functions

template<typename TagT >
 CsgDifferenceOp (TreeT &tree, TagT tag)
 Convenience constructor to CSG difference a single non-const tree from another. This constructor takes a Steal or DeepCopy tag dispatch class. More...
 
 CsgDifferenceOp (const TreeT &tree, DeepCopy tag)
 Convenience constructor to CSG difference a single const tree from another. This constructor requires an explicit DeepCopy tag dispatch class. More...
 
 CsgDifferenceOp (TreeToMerge< TreeT > &tree)
 Constructor to CSG difference the tree in a TreeToMerge object from another. More...
 
void setPruneCancelledTiles (bool doprune)
 Enables immediate pruning of tiles that cancel each other out. More...
 
size_t size () const
 Return the number of trees being merged (only ever 1) More...
 
bool operator() (RootT &root, size_t idx) const
 
template<typename NodeT >
bool operator() (NodeT &node, size_t idx) const
 
bool operator() (LeafT &leaf, size_t idx) const
 

Detailed Description

template<typename TreeT>
struct openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >

DynamicNodeManager operator to merge two trees using a CSG difference.

Note
This class modifies the topology of the tree so is designed to be used from DynamicNodeManager::foreachTopDown(). PruneCancelledTiles will set to background any leaf tile that matches in the two trees, thus minimizing ghost banding when common borders are differenced.

Definition at line 279 of file Merge.h.

Member Typedef Documentation

template<typename TreeT>
using openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::LeafT = typename TreeT::LeafNodeType

Definition at line 283 of file Merge.h.

template<typename TreeT>
using openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::RootT = typename TreeT::RootNodeType

Definition at line 282 of file Merge.h.

template<typename TreeT>
using openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::ValueT = typename TreeT::ValueType

Definition at line 281 of file Merge.h.

Constructor & Destructor Documentation

template<typename TreeT>
template<typename TagT >
openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::CsgDifferenceOp ( TreeT &  tree,
TagT  tag 
)
inline

Convenience constructor to CSG difference a single non-const tree from another. This constructor takes a Steal or DeepCopy tag dispatch class.

Definition at line 289 of file Merge.h.

template<typename TreeT>
openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::CsgDifferenceOp ( const TreeT &  tree,
DeepCopy  tag 
)
inline

Convenience constructor to CSG difference a single const tree from another. This constructor requires an explicit DeepCopy tag dispatch class.

Definition at line 293 of file Merge.h.

template<typename TreeT>
openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::CsgDifferenceOp ( TreeToMerge< TreeT > &  tree)
inlineexplicit

Constructor to CSG difference the tree in a TreeToMerge object from another.

Definition at line 297 of file Merge.h.

Member Function Documentation

template<typename TreeT >
bool openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::operator() ( RootT root,
size_t  idx 
) const

Definition at line 1054 of file Merge.h.

template<typename TreeT >
template<typename NodeT >
bool openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::operator() ( NodeT &  node,
size_t  idx 
) const

Definition at line 1141 of file Merge.h.

template<typename TreeT >
bool openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::operator() ( LeafT leaf,
size_t  idx 
) const

Definition at line 1196 of file Merge.h.

template<typename TreeT>
void openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::setPruneCancelledTiles ( bool  doprune)
inline

Enables immediate pruning of tiles that cancel each other out.

Definition at line 300 of file Merge.h.

template<typename TreeT>
size_t openvdb::OPENVDB_VERSION_NAME::tools::CsgDifferenceOp< TreeT >::size ( void  ) const
inline

Return the number of trees being merged (only ever 1)

Definition at line 303 of file Merge.h.


The documentation for this struct was generated from the following file: