OpenVDB 5.1.0

Classes | Functions | Variables
openvdb::v5_1::util Namespace Reference

## Classes
class | BaseMaskIterator
| Base class for the bit mask iterators. More...
class | CpuTimer
| Simple timer for basic profiling. More...
class | DenseMaskIterator
class | FormattedInt
| I/O manipulator that formats integer values with thousands separators. More...
class | LeafTopologyDiffOp
| Functor for use with tools::foreach() to compute the boolean difference between the value masks of corresponding leaf nodes in two trees. More...
class | LeafTopologyIntOp
| Functor for use with tools::foreach() to compute the boolean intersection between the value masks of corresponding leaf nodes in two trees. More...
class | NodeMask
| Bit mask for the internal and leaf nodes of VDB. This is a 64-bit implementation. More...
class | NodeMask< 1 >
| Template specialization of NodeMask for Log2Dim=1, i.e. 2^3 nodes. More...
class | NodeMask< 2 >
| Template specialization of NodeMask for Log2Dim=2, i.e. 4^3 nodes. More...
struct | NullInterrupter
| Dummy NOOP interrupter class defining interface. More...
class | OffMaskIterator
class | OnMaskIterator
class | PagedArray
| Concurrent, page-based, dynamically-sized linear data structure with O(1) random access and STL-compliant iterators. It is primarily intended for applications that concurrently insert (a possibly unkown number of) elements into a dynamically growing linear array, and fast random access to said elements. More...
class | RootNodeMask

## Functions
OPENVDB_API int | printBytes (std::ostream &os, uint64_t bytes, const std::string &head="", const std::string &tail="\, bool exact=false, int width=8, int precision=3)
OPENVDB_API int | printNumber (std::ostream &os, uint64_t number, const std::string &head="", const std::string &tail="\, bool exact=true, int width=8, int precision=3)
template<typename IntT >
std::ostream & | operator<< (std::ostream &os, const FormattedInt< IntT > &n)
template<typename IntT >
FormattedInt< IntT > | formattedInt (IntT n)
template<typename MapType >
void | calculateBounds (const MapType &map, const BBoxd &in, BBoxd &out)
| Calculate an axis-aligned bounding box in the given map's domain (e.g., index space) from an axis-aligned bounding box in its range (e.g., world space) More...
template<typename MapType >
void | calculateBounds (const MapType &map, const Vec3d &center, const Real radius, BBoxd &out)
| Calculate an axis-aligned bounding box in the given map's domain from a spherical bounding box in its range. More...
template<>
void | calculateBounds< math::NonlinearFrustumMap > (const math::NonlinearFrustumMap &frustum, const Vec3d &center, const Real radius, BBoxd &out)
| Calculate an axis-aligned bounding box in index space from a spherical bounding box in world space. More...
Index32 | CountOn (Byte v)
| Return the number of on bits in the given 8-bit value. More...
Index32 | CountOff (Byte v)
| Return the number of off bits in the given 8-bit value. More...
Index32 | CountOn (Index32 v)
| Return the number of on bits in the given 32-bit value. More...
Index32 | CountOff (Index32 v)
| Return the number of off bits in the given 32-bit value. More...
Index32 | CountOn (Index64 v)
| Return the number of on bits in the given 64-bit value. More...
Index32 | CountOff (Index64 v)
| Return the number of off bits in the given 64-bit value. More...
Index32 | FindLowestOn (Byte v)
| Return the least significant on bit of the given 8-bit value. More...
Index32 | FindLowestOn (Index32 v)
| Return the least significant on bit of the given 32-bit value. More...
Index32 | FindLowestOn (Index64 v)
| Return the least significant on bit of the given 64-bit value. More...
Index32 | FindHighestOn (Index32 v)
| Return the most significant on bit of the given 32-bit value. More...
template<typename T >
bool | wasInterrupted (T *i, int percent=-1)
template<>
bool | wasInterrupted< util::NullInterrupter > (util::NullInterrupter *, int)
| Specialization for NullInterrupter. More...
Coord | nearestCoord (const Vec3d &voxelCoord)
| Return voxelCoord rounded to the closest integer coordinates. More...
template<class TreeType1 , class TreeType2 >
TreeType1::template ValueConverter< bool >::Type::Ptr | leafTopologyIntersection (const TreeType1 &lhs, const TreeType2 &rhs, bool threaded=true)
| Perform a boolean intersection between two leaf nodes' topology masks. More...
template<class TreeType1 , class TreeType2 >
TreeType1::template ValueConverter< bool >::Type::Ptr | leafTopologyDifference (const TreeType1 &lhs, const TreeType2 &rhs, bool threaded=true)
| Perform a boolean difference between two leaf nodes' topology masks. More...

## Variables
OPENVDB_API const Index32 | INVALID_IDX
OPENVDB_API const Coord | COORD_OFFSETS [26]
| coordinate offset table for neighboring voxels More...

## Function Documentation

## ◆ calculateBounds() [1/2]

void openvdb::v5_1::util::calculateBounds | ( | const MapType & | map,
|  | const BBoxd & | in,
|  | BBoxd & | out
| ) |  |
| inline

Calculate an axis-aligned bounding box in the given map's domain (e.g., index space) from an axis-aligned bounding box in its range (e.g., world space)

## ◆ calculateBounds() [2/2]

void openvdb::v5_1::util::calculateBounds | ( | const MapType & | map,
|  | const Vec3d & | center,
|  | const Real | radius,
|  | BBoxd & | out
| ) |  |
| inline

Calculate an axis-aligned bounding box in the given map's domain from a spherical bounding box in its range.

## ◆ calculateBounds< math::NonlinearFrustumMap >()

void openvdb::v5_1::util::calculateBounds< math::NonlinearFrustumMap > | ( | const math::NonlinearFrustumMap & | frustum,
|  | const Vec3d & | center,
|  | const Real | radius,
|  | BBoxd & | out
| ) |  |
| inline

Calculate an axis-aligned bounding box in index space from a spherical bounding box in world space.

Note
  This specialization is optimized for a frustum map

## ◆ CountOff() [1/3]

Index32 openvdb::v5_1::util::CountOff | ( | Byte | v | ) |
| inline

Return the number of off bits in the given 8-bit value.

## ◆ CountOff() [2/3]

Index32 openvdb::v5_1::util::CountOff | ( | Index32 | v | ) |
| inline

Return the number of off bits in the given 32-bit value.

## ◆ CountOff() [3/3]

Index32 openvdb::v5_1::util::CountOff | ( | Index64 | v | ) |
| inline

Return the number of off bits in the given 64-bit value.

## ◆ CountOn() [1/3]

Index32 openvdb::v5_1::util::CountOn | ( | Byte | v | ) |
| inline

Return the number of on bits in the given 8-bit value.

## ◆ CountOn() [2/3]

Index32 openvdb::v5_1::util::CountOn | ( | Index32 | v | ) |
| inline

Return the number of on bits in the given 32-bit value.

## ◆ CountOn() [3/3]

Index32 openvdb::v5_1::util::CountOn | ( | Index64 | v | ) |
| inline

Return the number of on bits in the given 64-bit value.

## ◆ FindHighestOn()

Index32 openvdb::v5_1::util::FindHighestOn | ( | Index32 | v | ) |
| inline

Return the most significant on bit of the given 32-bit value.

## ◆ FindLowestOn() [1/3]

Index32 openvdb::v5_1::util::FindLowestOn | ( | Byte | v | ) |
| inline

Return the least significant on bit of the given 8-bit value.

## ◆ FindLowestOn() [2/3]

Index32 openvdb::v5_1::util::FindLowestOn | ( | Index32 | v | ) |
| inline

Return the least significant on bit of the given 32-bit value.

## ◆ FindLowestOn() [3/3]

Index32 openvdb::v5_1::util::FindLowestOn | ( | Index64 | v | ) |
| inline

Return the least significant on bit of the given 64-bit value.

## ◆ formattedInt()

FormattedInt<IntT> openvdb::v5_1::util::formattedInt | ( | IntT | n | ) |

Returns
  an I/O manipulator that formats the given integer value for output to a stream.

## ◆ leafTopologyDifference()

TreeType1::template ValueConverter<bool>::Type::Ptr openvdb::v5_1::util::leafTopologyDifference | ( | const TreeType1 & | lhs,
|  | const TreeType2 & | rhs,
|  | bool | threaded = `true`
| ) |  |
| inline

Perform a boolean difference between two leaf nodes' topology masks.

Returns
  a pointer to a new, boolean-valued tree containing the non-overlapping voxels from the lhs.

## ◆ leafTopologyIntersection()

TreeType1::template ValueConverter<bool>::Type::Ptr openvdb::v5_1::util::leafTopologyIntersection | ( | const TreeType1 & | lhs,
|  | const TreeType2 & | rhs,
|  | bool | threaded = `true`
| ) |  |
| inline

Perform a boolean intersection between two leaf nodes' topology masks.

Returns
  a pointer to a new, boolean-valued tree containing the overlapping voxels.

## ◆ nearestCoord()

Coord openvdb::v5_1::util::nearestCoord | ( | const Vec3d & | voxelCoord | ) |
| inline

Return voxelCoord rounded to the closest integer coordinates.

## ◆ operator<<()

std::ostream& openvdb::v5_1::util::operator<< | ( | std::ostream & | os,
|  | const FormattedInt< IntT > & | n
| ) |  |

## ◆ printBytes()

OPENVDB_API int openvdb::v5_1::util::printBytes | ( | std::ostream & | os,
|  | uint64_t | bytes,
|  | const std::string & | head = `""`
| ) |  |

Output a byte count with the correct binary suffix (KB, MB, GB or TB).

Parameters

  os | the output stream
  bytes | the byte count to be output
  head | a string to be output before the numeric text
  tail | a string to be output after the numeric text
  exact | if true, also output the unmodified count, e.g., "4.6 KB (4620 Bytes)"
  width | a fixed width for the numeric text
  precision | the number of digits after the decimal point

Returns
  0, 1, 2, 3 or 4, denoting the order of magnitude of the count.

## ◆ printNumber()

OPENVDB_API int openvdb::v5_1::util::printNumber | ( | std::ostream & | os,
|  | uint64_t | number,
|  | const std::string & | head = `""`
| ) |  |

Output a number with the correct SI suffix (thousand, million, billion or trillion)

Parameters

  os | the output stream
  number | the number to be output
  head | a string to be output before the numeric text
  tail | a string to be output after the numeric text
  exact | if true, also output the unmodified count, e.g., "4.6 Thousand (4620)"
  width | a fixed width for the numeric text
  precision | the number of digits after the decimal point

Returns
  0, 1, 2, 3 or 4, denoting the order of magnitude of the number.

## ◆ wasInterrupted()

bool openvdb::v5_1::util::wasInterrupted | ( | T * | i,
|  | int | percent = `-1`
| ) |  |
| inline

This method allows NullInterrupter::wasInterrupted to be compiled out when client code only has a pointer (vs reference) to the interrupter.

Note
  This is a free-standing function since C++ doesn't allow for partial template specialization (in client code of the interrupter).

## ◆ wasInterrupted< util::NullInterrupter >()

bool openvdb::v5_1::util::wasInterrupted< util::NullInterrupter > | ( | util::NullInterrupter * | ,
|  | int |
| ) |  |
| inline

Specialization for NullInterrupter.

## Variable Documentation

## ◆ COORD_OFFSETS

OPENVDB_API const Coord COORD_OFFSETS[26]

coordinate offset table for neighboring voxels

## ◆ INVALID_IDX

OPENVDB_API const Index32 INVALID_IDX