OpenVDB  1.1.0
Classes | Enumerations | Functions | Variables
openvdb::v1_1_0::tools::internal Namespace Reference

Classes

class  TileSampler
 A TileSampler wraps a grid sampler of another type (BoxSampler, QuadraticSampler, etc.), and for samples that fall within a given tile of the grid, it returns a cached tile value instead of accessing the grid. More...
struct  TileSampler< PointSampler, TreeT >
 For point sampling, tree traversal is less expensive than testing bounding box membership. More...
struct  TileSampler< StaggeredPointSampler, TreeT >
 For point sampling, tree traversal is less expensive than testing bounding box membership. More...
class  PointTransform
class  PrimCpy
class  FogVolumeOp
class  InteriorMaskOp
struct  Tolerance
class  MeshVoxelizer
 TBB class object to voxelize a mesh of triangles and/or quads into a collection of VDB grids, namely a square distance grid, closest primitive grid and a intersecting voxels grid (the voxels intersect the mesh). More...
class  ContourTracer
 TBB Class object that slices up the volume into 2D slices that can be processed in parallel and marks the exterior contour of disjoint voxel sets in each slice. More...
class  IntersectingVoxelSign
 TBB Class object that traversers all the intersecting voxels (defined by the intersectingVoxelsGrid) and potentially flips their sign, by comparing the 'closest point' directions of outside-marked and non-intersecting neighbouring voxel. More...
class  IntersectingVoxelCleaner
 TBB Class object that removes intersecting voxels that where set by rasterizing self-intersecting parts of the mesh. More...
class  ShellVoxelCleaner
 TBB Class object that removes non-intersecting voxels that where set by rasterizing self-intersecting parts of the mesh. More...
class  ExpandNB
 TBB Class object to expand the level-set narrow-band. More...
struct  SqrtAndScaleOp
struct  VoxelSignOp
struct  TrimOp
struct  OffsetOp
struct  RenormOp
struct  MinOp
struct  MergeBufferOp
class  LeafCPtrList
class  LeafPtrList
struct  ReferenceData
class  Count
class  Merge
class  PointGen
struct  QuadMeshOp
struct  AdaptiveMeshOp
class  MeshGen
class  AuxiliaryData
class  SeamMaskGen
class  AuxDataGenerator

Enumerations

enum  { INSIDE = 0x1, XEDGE = 0x2, YEDGE = 0x4, ZEDGE = 0x8 }

Functions

template<typename GridType , typename InterruptType >
std::vector< typename
GridType::Ptr > 
segment (GridType &grid, InterruptType *interrupter=NULL)
 Segmentation scheme, splits disjoint fragments into separate grids.
template<typename DistTreeT , typename IndexTreeT >
void combine (DistTreeT &lhsDist, IndexTreeT &lhsIndex, DistTreeT &rhsDist, IndexTreeT &rhsIndex)
template<typename DistTreeT >
void surfaceTracer (const Coord &seed, DistTreeT &distTree, typename DistTreeT::template ValueConverter< bool >::Type &intersectionTree)
 Surface tracing method that flips the sign of interior marked voxels, will not cross the boundary defined by the intersecting voxels.
template<typename DistTreeT , typename InterruptT >
void propagateSign (DistTreeT &distTree, typename DistTreeT::template ValueConverter< bool >::Type &intersectionTree, InterruptT *interrupter=NULL)
 Does a sparse iteration on the distance grid to find regions with inconsistent sign information. The surfaceTracer method is then used to resolve the sign inconsistency in these regions.
template<class AccessorT >
bool isAmbiguous (const AccessorT &accessor, const Coord &ijk, typename AccessorT::ValueType isovalue, int dim)
template<class AccessorT >
bool isNonManifold (const AccessorT &accessor, const Coord &ijk, typename AccessorT::ValueType isovalue, const int dim)
template<class LeafType >
void mergeVoxels (LeafType &leaf, const Coord &start, int dim, int regionId)
template<class LeafType >
bool isMergable (LeafType &leaf, const Coord &start, int dim, typename LeafType::ValueType::value_type adaptivity)
template<class DistTreeT , class AuxTreeT , class CharTreeT >
void tileAuxiliaryData (const DistTreeT &distTree, CharTreeT &edgeTree, AuxTreeT &auxTree, double iso)

Variables

const bool sAmbiguous [256]

Enumeration Type Documentation

anonymous enum
Enumerator:
INSIDE 
XEDGE 
YEDGE 
ZEDGE 

Function Documentation

void openvdb::v1_1_0::tools::internal::combine ( DistTreeT &  lhsDist,
IndexTreeT &  lhsIndex,
DistTreeT &  rhsDist,
IndexTreeT &  rhsIndex 
)
inline
bool openvdb::v1_1_0::tools::internal::isAmbiguous ( const AccessorT &  accessor,
const Coord &  ijk,
typename AccessorT::ValueType  isovalue,
int  dim 
)
inline
bool openvdb::v1_1_0::tools::internal::isMergable ( LeafType &  leaf,
const Coord &  start,
int  dim,
typename LeafType::ValueType::value_type  adaptivity 
)
inline
bool openvdb::v1_1_0::tools::internal::isNonManifold ( const AccessorT &  accessor,
const Coord &  ijk,
typename AccessorT::ValueType  isovalue,
const int  dim 
)
inline
void openvdb::v1_1_0::tools::internal::mergeVoxels ( LeafType &  leaf,
const Coord &  start,
int  dim,
int  regionId 
)
inline
void openvdb::v1_1_0::tools::internal::propagateSign ( DistTreeT &  distTree,
typename DistTreeT::template ValueConverter< bool >::Type &  intersectionTree,
InterruptT *  interrupter = NULL 
)
inline

Does a sparse iteration on the distance grid to find regions with inconsistent sign information. The surfaceTracer method is then used to resolve the sign inconsistency in these regions.

Parameters
distTreesigned distance field to operate on
intersectionTreetree that defines the surface boundary for the surface tracer
interrupteran object that implements the util::NullInterrupter interface
std::vector<typename GridType::Ptr> openvdb::v1_1_0::tools::internal::segment ( GridType &  grid,
InterruptType *  interrupter = NULL 
)
inline

Segmentation scheme, splits disjoint fragments into separate grids.

Note
This is a temporary solution and it will be replaced soon.
void openvdb::v1_1_0::tools::internal::surfaceTracer ( const Coord &  seed,
DistTreeT &  distTree,
typename DistTreeT::template ValueConverter< bool >::Type &  intersectionTree 
)
inline

Surface tracing method that flips the sign of interior marked voxels, will not cross the boundary defined by the intersecting voxels.

Parameters
seedthe coordinates of a interior marked seed point
distTreethe distance field to operate on
intersectionTreetree that defines the surface boundary
void openvdb::v1_1_0::tools::internal::tileAuxiliaryData ( const DistTreeT &  distTree,
CharTreeT &  edgeTree,
AuxTreeT &  auxTree,
double  iso 
)
inline

Variable Documentation

const bool sAmbiguous[256]