HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 <hboost/mpl/at.hpp>
#include <hboost/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>
+ Include dependency graph for LevelSetUtil.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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

Namespaces

 openvdb
 
 openvdb::OPENVDB_VERSION_NAME
 
 openvdb::OPENVDB_VERSION_NAME::tools
 
 openvdb::OPENVDB_VERSION_NAME::tools::level_set_util_internal
 

Functions

template<class GridType >
void openvdb::OPENVDB_VERSION_NAME::tools::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 
openvdb::OPENVDB_VERSION_NAME::tools::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 
openvdb::OPENVDB_VERSION_NAME::tools::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 
openvdb::OPENVDB_VERSION_NAME::tools::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 openvdb::OPENVDB_VERSION_NAME::tools::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 openvdb::OPENVDB_VERSION_NAME::tools::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 openvdb::OPENVDB_VERSION_NAME::tools::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 
openvdb::OPENVDB_VERSION_NAME::tools::level_set_util_internal::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 
openvdb::OPENVDB_VERSION_NAME::tools::level_set_util_internal::computeInteriorMask (const TreeType &tree, typename TreeType::ValueType iso)
 
template<typename NodeType >
void openvdb::OPENVDB_VERSION_NAME::tools::level_set_util_internal::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

Definition in file LevelSetUtil.h.