| OpenVDB
    9.0.1
    | 
Dilation/Erosion operations over a Trees leaf level voxel topology. More...
#include <openvdb/tools/Morphology.h>
| Classes | |
| struct | NodeMaskOp | 
| Node Mask dilation/erosion operations for individual leaf nodes on a given tree. The leaf node may optionally belong to a different tree than the provided accessor, which will have the effect of dilating the leaf node mask into a different tree, or eroding the node mask based on corresponding neighbors in a different tree.  More... | |
| Public Types | |
| using | LeafType = typename TreeType::LeafNodeType | 
| using | MaskType = typename LeafType::NodeMaskType | 
| using | ValueType = typename TreeType::ValueType | 
| using | MaskTreeT = typename TreeType::template ValueConverter< ValueMask >::Type | 
| using | MaskLeafT = typename MaskTreeT::LeafNodeType | 
| using | AccessorType = tree::ValueAccessor< TreeType > | 
| Public Member Functions | |
| Morphology (TreeType &tree) | |
| Morphology (tree::LeafManager< TreeType > &tree) | |
| bool | getThreaded () const | 
| Return whether this class is using multi-threading.  More... | |
| void | setThreaded (const bool threaded) | 
| Set whether to use multi-threading.  More... | |
| const tree::LeafManager< TreeType > & | leafManager () const | 
| Return a const reference to the leaf manager.  More... | |
| void | erodeVoxels (const size_t iter, const NearestNeighbors nn, const bool prune=false) | 
| Topologically erode all voxels by the provided nearest neighbor scheme and optionally collapse constant leaf nodes.  More... | |
| void | dilateVoxels (const size_t iter, const NearestNeighbors nn, const bool prune=false, const bool preserveMaskLeafNodes=false) | 
| Topologically dilate all voxels by the provided nearest neighbor scheme and optionally collapse constant leaf nodes.  More... | |
| void | copyMasks (std::vector< MaskType > &masks) const | 
| Copy the current node masks onto the provided vector. The vector is resized if necessary.  More... | |
Dilation/Erosion operations over a Trees leaf level voxel topology.
| using AccessorType = tree::ValueAccessor<TreeType> | 
| using LeafType = typename TreeType::LeafNodeType | 
| using MaskLeafT = typename MaskTreeT::LeafNodeType | 
| using MaskType = typename LeafType::NodeMaskType | 
| using ValueType = typename TreeType::ValueType | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
Copy the current node masks onto the provided vector. The vector is resized if necessary.
| masks | The vector of NodeMasks to copy onto | 
| void dilateVoxels | ( | const size_t | iter, | 
| const NearestNeighbors | nn, | ||
| const bool | prune = false, | ||
| const bool | preserveMaskLeafNodes = false | ||
| ) | 
Topologically dilate all voxels by the provided nearest neighbor scheme and optionally collapse constant leaf nodes.
Voxel values are unchanged and only leaf nodes are used to propagate the dilation.
| iter | Number of dilation iterations | 
| nn | Connectivity pattern of the dilation | 
| prune | Whether to collapse constant leaf nodes after the dilation | 
| preserveMaskLeafNodes | When dilating mask trees, the default behaviour chooses to steal the mask nodes rather than copy them. Although faster, this means that leaf nodes may be re-allocated. Set this to true if you need the original topology pointers to be preserved. | 
| void erodeVoxels | ( | const size_t | iter, | 
| const NearestNeighbors | nn, | ||
| const bool | prune = false | ||
| ) | 
Topologically erode all voxels by the provided nearest neighbor scheme and optionally collapse constant leaf nodes.
Inactive Tiles contribute to the erosion but active tiles are not modified.
| iter | Number of erosion iterations | 
| nn | Connectivity pattern of the erosion | 
| prune | Whether to collapse constant leaf nodes after the erosion | 
| 
 | inline | 
Return whether this class is using multi-threading.
| 
 | inline | 
Return a const reference to the leaf manager.
| 
 | inline | 
Set whether to use multi-threading.
 1.8.11
 1.8.11