HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LevelSetRebuild.h File Reference
#include <openvdb/Grid.h>
#include <openvdb/Exceptions.h>
#include <openvdb/math/Math.h>
#include <openvdb/math/Transform.h>
#include <openvdb/util/NullInterrupter.h>
#include <openvdb/util/Util.h>
#include <openvdb/openvdb.h>
#include "VolumeToMesh.h"
#include "MeshToVolume.h"
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <type_traits>
+ Include dependency graph for LevelSetRebuild.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

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

Macros

#define OPENVDB_USE_ORACLE_IN_REBUILD   0
 

Functions

template<class GridType >
GridType::Ptr openvdb::OPENVDB_VERSION_NAME::tools::levelSetRebuild (const GridType &grid, float isovalue=0, float halfWidth=float(LEVEL_SET_HALF_WIDTH), const math::Transform *xform=nullptr)
 Return a new grid of type GridType that contains a narrow-band level set representation of an isosurface of a given grid. More...
 
template<class GridType >
GridType::Ptr openvdb::OPENVDB_VERSION_NAME::tools::levelSetRebuild (const GridType &grid, float isovalue, float exBandWidth, float inBandWidth, const math::Transform *xform=nullptr)
 Return a new grid of type GridType that contains a narrow-band level set representation of an isosurface of a given grid. More...
 
template<class GridType , typename InterruptT >
GridType::Ptr openvdb::OPENVDB_VERSION_NAME::tools::levelSetRebuild (const GridType &grid, float isovalue, float exBandWidth, float inBandWidth, const math::Transform *xform=nullptr, InterruptT *interrupter=nullptr)
 Return a new grid of type GridType that contains a narrow-band level set representation of an isosurface of a given grid. More...
 

Macro Definition Documentation

#define OPENVDB_USE_ORACLE_IN_REBUILD   0

When rebuilding we convert from grid -> mesh -> grid. The conversion from mesh -> grid will close any internal bubbles. By using the original grid as an oracle we can set the sign of the bubbles properly. Unfortunately, when increasing resolution the rasterization of the mesh diverges too far from interpolated original grid and results in incorrect sign choices. The likely correct solution is to use a different approach for rebuilding when resolution is increasing.

Definition at line 15 of file LevelSetRebuild.h.