OpenVDB  6.1.0
Classes | Namespaces | Functions
LevelSetUtil.h File Reference

Miscellaneous utility methods that operate primarily or exclusively on level set grids. More...

#include "MeshToVolume.h"
#include "SignedFloodFill.h"
#include <openvdb/Types.h>
#include <openvdb/Grid.h>
#include <boost/mpl/at.hpp>
#include <boost/mpl/int.hpp>
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <tbb/parallel_reduce.h>
#include <tbb/parallel_sort.h>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <deque>
#include <limits>
#include <memory>
#include <set>
#include <vector>

Go to the source code of this file.

Classes

struct  MaskInteriorVoxels< LeafNodeType >
 
struct  MaskInteriorTiles< TreeType, InternalNodeType >
 
struct  PopulateTree< TreeType >
 
struct  LabelBoundaryVoxels< LeafNodeType >
 Negative active values are set 0, everything else is set to 1. More...
 
struct  FlipRegionSign< LeafNodeType >
 
struct  FindMinVoxelValue< LeafNodeType >
 
struct  FindMinTileValue< InternalNodeType >
 
struct  SDFVoxelsToFogVolume< LeafNodeType >
 
struct  SDFTilesToFogVolume< TreeType, InternalNodeType >
 
struct  FillMaskBoundary< TreeType >
 
struct  MaskIsovalueCrossingVoxels< InputTreeType >
 
struct  NodeMaskSegment< NodeType >
 
struct  SegmentNodeMask< NodeType >
 
struct  ConnectNodeMaskSegments< TreeType, NodeType >
 
struct  MaskSegmentGroup< TreeType >
 
struct  ExpandLeafNodeRegion< TreeType >
 
struct  FillLeafNodeVoxels< TreeType >
 
struct  ExpandNarrowbandMask< TreeType >
 
struct  FloodFillSign< TreeType >
 
struct  MaskedCopy< TreeType >
 
struct  ComputeActiveVoxelCount< VolumePtrType >
 
struct  GreaterCount
 
struct  GridOrTreeConstructor< TreeType >
 
struct  GridOrTreeConstructor< Grid< TreeType > >
 

Namespaces

 openvdb
 
 openvdb::v6_1
 
 openvdb::v6_1::tools
 
 openvdb::v6_1::tools::level_set_util_internal
 

Functions

template<class GridType >
void sdfToFogVolume (GridType &grid, typename GridType::ValueType cutoffDistance=lsutilGridMax< GridType >())
 Threaded method to convert a sparse level set/SDF into a sparse fog volume. More...
 
template<class GridOrTreeType >
GridOrTreeType::template ValueConverter< bool >::Type::Ptr sdfInteriorMask (const GridOrTreeType &volume, typename GridOrTreeType::ValueType isovalue=lsutilGridZero< GridOrTreeType >())
 Threaded method to construct a boolean mask that represents interior regions in a signed distance field. More...
 
template<typename GridOrTreeType >
GridOrTreeType::template ValueConverter< bool >::Type::Ptr extractEnclosedRegion (const GridOrTreeType &volume, typename GridOrTreeType::ValueType isovalue=lsutilGridZero< GridOrTreeType >(), const typename TreeAdapter< GridOrTreeType >::TreeType::template ValueConverter< bool >::Type *fillMask=nullptr)
 Extracts the interior regions of a signed distance field and topologically enclosed (watertight) regions of value greater than the isovalue (cavities) that can arise as the result of CSG union operations between different shapes where at least one of the shapes has a concavity that is capped. More...
 
template<typename GridOrTreeType >
GridOrTreeType::template ValueConverter< bool >::Type::Ptr extractIsosurfaceMask (const GridOrTreeType &volume, typename GridOrTreeType::ValueType isovalue)
 Return a mask of the voxels that intersect the implicit surface with the given isovalue. More...
 
template<typename GridOrTreeType >
void extractActiveVoxelSegmentMasks (const GridOrTreeType &volume, std::vector< typename GridOrTreeType::template ValueConverter< bool >::Type::Ptr > &masks)
 Return a mask for each connected component of the given grid's active voxels. More...
 
template<typename GridOrTreeType >
void segmentActiveVoxels (const GridOrTreeType &volume, std::vector< typename GridOrTreeType::Ptr > &segments)
 Separates disjoint active topology components into distinct grids or trees. More...
 
template<typename GridOrTreeType >
void segmentSDF (const GridOrTreeType &volume, std::vector< typename GridOrTreeType::Ptr > &segments)
 Separates disjoint SDF surfaces into distinct grids or trees. More...
 
template<class TreeType >
TreeType::template ValueConverter< char >::Type::Ptr computeEnclosedRegionMask (const TreeType &tree, typename TreeType::ValueType isovalue, const typename TreeType::template ValueConverter< bool >::Type *fillMask)
 Constructs a memory light char tree that represents the exterior region with +1 and the interior regions with -1. More...
 
template<class TreeType >
TreeType::template ValueConverter< bool >::Type::Ptr computeInteriorMask (const TreeType &tree, typename TreeType::ValueType iso)
 
template<typename NodeType >
void nodeMaskSegmentation (const NodeType &node, std::vector< typename NodeMaskSegment< NodeType >::Ptr > &segments)
 

Detailed Description

Miscellaneous utility methods that operate primarily or exclusively on level set grids.

Author
Mihai Alden