OpenVDB
8.0.0
|
Classes | |
struct | AdaptiveLeafNodePointCount |
struct | AdaptivePrimBuilder |
struct | ComputeAuxiliaryData |
struct | ComputePoints |
struct | ComputePolygons |
struct | CopyArray |
struct | FillArray |
struct | FlagAndCountQuadsToSubdivide |
struct | IdentifyIntersectingVoxels |
struct | LeafNodePointCount |
struct | LeafNodeVoxelOffsets |
struct | MapPoints |
struct | MaskBorderVoxels |
struct | MaskDisorientedTrianglePoints |
struct | MaskIntersectingVoxels |
struct | MaskSeamLineVoxels |
struct | MaskSurface |
struct | MaskTileBorders |
struct | MergeVoxelRegions |
class | PointListCopy |
struct | ReviseSeamLineFlags |
struct | SeamLineWeights |
struct | SetSeamLineFlags |
struct | SubdivideQuads |
struct | SyncMaskValues |
struct | TransferSeamLineFlags |
struct | UniformPrimBuilder |
struct | VoxelEdgeAccessor |
Utility method to marks all voxels that share an edge. More... | |
Enumerations | |
enum | { SIGNS = 0xFF, EDGES = 0xE00, INSIDE = 0x100, XEDGE = 0x200, YEDGE = 0x400, ZEDGE = 0x800, SEAM = 0x1000 } |
Bit-flags used to classify cells. More... | |
Functions | |
template<typename ValueType > | |
void | fillArray (ValueType *array, const ValueType &val, const size_t length) |
bool | isPlanarQuad (const Vec3d &p0, const Vec3d &p1, const Vec3d &p2, const Vec3d &p3, double epsilon=0.001) |
template<typename T > | |
bool | isBoolValue () |
template<> | |
bool | isBoolValue< bool > () |
template<typename T > | |
bool | isInsideValue (T value, T isovalue) |
template<> | |
bool | isInsideValue< bool > (bool value, bool) |
template<typename AccessorT > | |
void | getCellVertexValues (const AccessorT &accessor, Coord ijk, math::Tuple< 8, typename AccessorT::ValueType > &values) |
template<typename LeafT > | |
void | getCellVertexValues (const LeafT &leaf, const Index offset, math::Tuple< 8, typename LeafT::ValueType > &values) |
template<typename ValueType > | |
uint8_t | computeSignFlags (const math::Tuple< 8, ValueType > &values, const ValueType iso) |
template<typename AccessorT > | |
uint8_t | evalCellSigns (const AccessorT &accessor, const Coord &ijk, typename AccessorT::ValueType iso) |
General method that computes the cell-sign configuration at the given ijk coordinate. More... | |
template<typename LeafT > | |
uint8_t | evalCellSigns (const LeafT &leaf, const Index offset, typename LeafT::ValueType iso) |
Leaf node optimized method that computes the cell-sign configuration at the given local offset . More... | |
template<class AccessorT > | |
void | correctCellSigns (uint8_t &signs, uint8_t face, const AccessorT &acc, Coord ijk, typename AccessorT::ValueType iso) |
Used to correct topological ambiguities related to two adjacent cells that share an ambiguous face. More... | |
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) |
double | evalZeroCrossing (double v0, double v1, double iso) |
linear interpolation. More... | |
template<typename LeafT > | |
void | collectCornerValues (const LeafT &leaf, const Index offset, std::vector< double > &values) |
Extracts the eight corner values for leaf inclusive cells. More... | |
template<typename AccessorT > | |
void | collectCornerValues (const AccessorT &acc, const Coord &ijk, std::vector< double > &values) |
Extracts the eight corner values for a cell starting at the given (i,  j,  k) coordinate. More... | |
Vec3d | computePoint (const std::vector< double > &values, unsigned char signs, unsigned char edgeGroup, double iso) |
Computes the average cell point for a given edge group. More... | |
int | computeMaskedPoint (Vec3d &avg, const std::vector< double > &values, unsigned char signs, unsigned char signsMask, unsigned char edgeGroup, double iso) |
Computes the average cell point for a given edge group, ignoring edge samples present in the signsMask configuration. More... | |
Vec3d | computeWeightedPoint (const Vec3d &p, const std::vector< double > &values, unsigned char signs, unsigned char edgeGroup, double iso) |
Computes the average cell point for a given edge group, by computing convex weights based on the distance from the sample point p . More... | |
void | computeCellPoints (std::vector< Vec3d > &points, const std::vector< double > &values, unsigned char signs, double iso) |
Computes the average cell points defined by the sign configuration signs and the given corner values values . More... | |
int | matchEdgeGroup (unsigned char groupId, unsigned char lhsSigns, unsigned char rhsSigns) |
Given a sign configuration lhsSigns and an edge group groupId , finds the corresponding edge group in a different sign configuration rhsSigns . Returns -1 if no match is found. More... | |
void | computeCellPoints (std::vector< Vec3d > &points, std::vector< bool > &weightedPointMask, const std::vector< double > &lhsValues, const std::vector< double > &rhsValues, unsigned char lhsSigns, unsigned char rhsSigns, double iso, size_t pointIdx, const uint32_t *seamPointArray) |
Computes the average cell points defined by the sign configuration signs and the given corner values values . Combines data from two different level sets to eliminate seam lines when meshing fractured segments. More... | |
template<typename SignDataTreeType > | |
void | markSeamLineData (SignDataTreeType &signFlagsTree, const SignDataTreeType &refSignFlagsTree) |
template<typename SignAccT , typename IdxAccT , typename PrimBuilder > | |
void | constructPolygons (bool invertSurfaceOrientation, Int16 flags, Int16 refFlags, const Vec3i &offsets, const Coord &ijk, const SignAccT &signAcc, const IdxAccT &idxAcc, PrimBuilder &mesher) |
template<typename InputTreeType > | |
void | maskActiveTileBorders (const InputTreeType &inputTree, typename InputTreeType::ValueType iso, typename InputTreeType::template ValueConverter< bool >::Type &mask) |
template<typename VoxelEdgeAcc , typename LeafNode > | |
void | evalInternalVoxelEdges (VoxelEdgeAcc &edgeAcc, const LeafNode &leafnode, const LeafNodeVoxelOffsets &voxels, const typename LeafNode::ValueType iso) |
template<typename LeafNode , typename TreeAcc , typename VoxelEdgeAcc > | |
void | evalExtrenalVoxelEdges (VoxelEdgeAcc &edgeAcc, TreeAcc &acc, const LeafNode &lhsNode, const LeafNodeVoxelOffsets &voxels, const typename LeafNode::ValueType iso) |
template<typename LeafNode , typename TreeAcc , typename VoxelEdgeAcc > | |
void | evalExtrenalVoxelEdgesInv (VoxelEdgeAcc &edgeAcc, TreeAcc &acc, const LeafNode &leafnode, const LeafNodeVoxelOffsets &voxels, const typename LeafNode::ValueType iso) |
template<typename InputTreeType > | |
void | identifySurfaceIntersectingVoxels (typename InputTreeType::template ValueConverter< bool >::Type &intersectionTree, const InputTreeType &inputTree, typename InputTreeType::ValueType isovalue) |
template<typename InputGridType > | |
void | applySurfaceMask (typename InputGridType::TreeType::template ValueConverter< bool >::Type &intersectionTree, typename InputGridType::TreeType::template ValueConverter< bool >::Type &borderTree, const InputGridType &inputGrid, const GridBase::ConstPtr &maskGrid, bool invertMask, typename InputGridType::ValueType isovalue) |
template<typename InputTreeType > | |
void | computeAuxiliaryData (typename InputTreeType::template ValueConverter< Int16 >::Type &signFlagsTree, typename InputTreeType::template ValueConverter< Index32 >::Type &pointIndexTree, const typename InputTreeType::template ValueConverter< bool >::Type &intersectionTree, const InputTreeType &inputTree, typename InputTreeType::ValueType isovalue) |
void | subdivideNonplanarSeamLineQuads (PolygonPoolList &polygonPoolList, size_t polygonPoolListSize, PointList &pointList, size_t &pointListSize, std::vector< uint8_t > &pointFlags) |
void | reviseSeamLineFlags (PolygonPoolList &polygonPoolList, size_t polygonPoolListSize, std::vector< uint8_t > &pointFlags) |
template<typename InputTree > | |
void | relaxDisorientedTriangles (bool invertSurfaceOrientation, const InputTree &inputTree, const math::Transform &transform, PolygonPoolList &polygonPoolList, size_t polygonPoolListSize, PointList &pointList, const size_t pointListSize) |
Variables | |
const bool | sAdaptable [256] |
Used to quickly determine if a given cell is adaptable. More... | |
const unsigned char | sAmbiguousFace [256] |
Contains the ambiguous face index for certain cell configuration. More... | |
const unsigned char | sEdgeGroupTable [256][13] |
Lookup table for different cell sign configurations. The first entry specifies the total number of points that need to be generated inside a cell and the remaining 12 entries indicate different edge groups. More... | |
enum | { MASK_FIRST_10_BITS = 0x000003FF, MASK_DIRTY_BIT = 0x80000000, MASK_INVALID_BIT = 0x40000000 } |
Utility methods for point quantization. More... | |
uint32_t | packPoint (const Vec3d &v) |
Utility methods for point quantization. More... | |
Vec3d | unpackPoint (uint32_t data) |
Utility methods for point quantization. More... | |
anonymous enum |
anonymous enum |
|
inline |
|
inline |
Extracts the eight corner values for leaf inclusive cells.
|
inline |
Extracts the eight corner values for a cell starting at the given (i,  j,  k) coordinate.
|
inline |
|
inline |
Computes the average cell points defined by the sign configuration signs
and the given corner values values
.
|
inline |
Computes the average cell points defined by the sign configuration signs
and the given corner values values
. Combines data from two different level sets to eliminate seam lines when meshing fractured segments.
|
inline |
Computes the average cell point for a given edge group, ignoring edge samples present in the signsMask
configuration.
|
inline |
Computes the average cell point for a given edge group.
|
inline |
|
inline |
Computes the average cell point for a given edge group, by computing convex weights based on the distance from the sample point p
.
|
inline |
|
inline |
Used to correct topological ambiguities related to two adjacent cells that share an ambiguous face.
|
inline |
General method that computes the cell-sign configuration at the given ijk
coordinate.
|
inline |
Leaf node optimized method that computes the cell-sign configuration at the given local offset
.
void openvdb::v8_2::tools::volume_to_mesh_internal::evalExtrenalVoxelEdges | ( | VoxelEdgeAcc & | edgeAcc, |
TreeAcc & | acc, | ||
const LeafNode & | lhsNode, | ||
const LeafNodeVoxelOffsets & | voxels, | ||
const typename LeafNode::ValueType | iso | ||
) |
Utility method to check for sign changes along the x + 1, y + 1 or z + 1 directions. The direction is determined by the edgeAcc parameter. All voxels that reside in the specified leafnode face: back, top or right are evaluated.
void openvdb::v8_2::tools::volume_to_mesh_internal::evalExtrenalVoxelEdgesInv | ( | VoxelEdgeAcc & | edgeAcc, |
TreeAcc & | acc, | ||
const LeafNode & | leafnode, | ||
const LeafNodeVoxelOffsets & | voxels, | ||
const typename LeafNode::ValueType | iso | ||
) |
Utility method to check for sign changes along the x - 1, y - 1 or z - 1 directions. The direction is determined by the edgeAcc parameter. All voxels that reside in the specified leafnode face: front, bottom or left are evaluated.
void openvdb::v8_2::tools::volume_to_mesh_internal::evalInternalVoxelEdges | ( | VoxelEdgeAcc & | edgeAcc, |
const LeafNode & | leafnode, | ||
const LeafNodeVoxelOffsets & | voxels, | ||
const typename LeafNode::ValueType | iso | ||
) |
Utility method to check for sign changes along the x + 1, y + 1 or z + 1 directions. The direction is determined by the edgeAcc parameter. Only voxels that have internal neighbours are evaluated.
|
inline |
linear interpolation.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Given a sign configuration lhsSigns
and an edge group groupId
, finds the corresponding edge group in a different sign configuration rhsSigns
. Returns -1 if no match is found.
|
inline |
|
inline |
Utility methods for point quantization.
|
inline |
|
inline |
|
inline |
|
inline |
Utility methods for point quantization.
const bool sAdaptable[256] |
Used to quickly determine if a given cell is adaptable.
const unsigned char sAmbiguousFace[256] |
Contains the ambiguous face index for certain cell configuration.
const unsigned char sEdgeGroupTable[256][13] |
Lookup table for different cell sign configurations. The first entry specifies the total number of points that need to be generated inside a cell and the remaining 12 entries indicate different edge groups.