OpenVDB  0.104.0
Classes | Enumerations | Functions | Variables
openvdb::v0_104_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
 
struct  FogVolumeOp
 
struct  InteriorMaskOp
 
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
 

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. More...
 
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. More...
 
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. More...
 
Uint hash (Uint a)
 
double twist (Uint x)
 
double twist (Uint x, Uint y, Uint z)
 
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)
 

Variables

const bool sAmbiguous [256]
 

Enumeration Type Documentation

anonymous enum
Enumerator
INSIDE 
XEDGE 
YEDGE 
ZEDGE 

Function Documentation

void openvdb::v0_104_0::tools::internal::combine ( DistTreeT &  lhsDist,
IndexTreeT &  lhsIndex,
DistTreeT &  rhsDist,
IndexTreeT &  rhsIndex 
)
inline
Uint openvdb::v0_104_0::tools::internal::hash ( Uint  a)
inline
bool openvdb::v0_104_0::tools::internal::isAmbiguous ( const AccessorT &  accessor,
const Coord &  ijk,
typename AccessorT::ValueType  isovalue,
int  dim 
)
inline
bool openvdb::v0_104_0::tools::internal::isMergable ( LeafType &  leaf,
const Coord &  start,
int  dim,
typename LeafType::ValueType::value_type  adaptivity 
)
inline
bool openvdb::v0_104_0::tools::internal::isNonManifold ( const AccessorT &  accessor,
const Coord &  ijk,
typename AccessorT::ValueType  isovalue,
const int  dim 
)
inline
void openvdb::v0_104_0::tools::internal::mergeVoxels ( LeafType &  leaf,
const Coord &  start,
int  dim,
int  regionId 
)
inline
void openvdb::v0_104_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::v0_104_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::v0_104_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
double openvdb::v0_104_0::tools::internal::twist ( Uint  x)
inline
double openvdb::v0_104_0::tools::internal::twist ( Uint  x,
Uint  y,
Uint  z 
)
inline

Variable Documentation

const bool sAmbiguous[256]