OpenVDB  12.0.0
Classes | Functions | Variables
openvdb::v12_0::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
 Base class for interrupters. 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="\n", 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="\n", bool exact=true, int width=8, int precision=3)
 
OPENVDB_API int printTime (std::ostream &os, double milliseconds, const std::string &head="", const std::string &tail="\n", int width=4, int precision=1, int verbose=0)
 
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)
 
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

constexpr Index32 INVALID_IDX = std::numeric_limits<Index32>::max()
 
constexpr Coord COORD_OFFSETS [26]
 coordinate offset table for neighboring voxels More...
 

Function Documentation

void openvdb::v12_0::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)

void openvdb::v12_0::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.

void openvdb::v12_0::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
Index32 openvdb::v12_0::util::CountOff ( Byte  v)
inline

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

Index32 openvdb::v12_0::util::CountOff ( Index32  v)
inline

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

Index32 openvdb::v12_0::util::CountOff ( Index64  v)
inline

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

Index32 openvdb::v12_0::util::CountOn ( Byte  v)
inline

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

Index32 openvdb::v12_0::util::CountOn ( Index32  v)
inline

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

Index32 openvdb::v12_0::util::CountOn ( Index64  v)
inline

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

Index32 openvdb::v12_0::util::FindHighestOn ( Index32  v)
inline

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

Index32 openvdb::v12_0::util::FindLowestOn ( Byte  v)
inline

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

Index32 openvdb::v12_0::util::FindLowestOn ( Index32  v)
inline

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

Index32 openvdb::v12_0::util::FindLowestOn ( Index64  v)
inline

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

FormattedInt<IntT> openvdb::v12_0::util::formattedInt ( IntT  n)
Returns
an I/O manipulator that formats the given integer value for output to a stream.
TreeType1::template ValueConverter<bool>::Type::Ptr openvdb::v12_0::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.
TreeType1::template ValueConverter<bool>::Type::Ptr openvdb::v12_0::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.
Coord openvdb::v12_0::util::nearestCoord ( const Vec3d &  voxelCoord)
inline

Return voxelCoord rounded to the closest integer coordinates.

std::ostream& openvdb::v12_0::util::operator<< ( std::ostream &  os,
const FormattedInt< IntT > &  n 
)
OPENVDB_API int openvdb::v12_0::util::printBytes ( std::ostream &  os,
uint64_t  bytes,
const std::string &  head = "",
const std::string &  tail = "\n",
bool  exact = false,
int  width = 8,
int  precision = 3 
)

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

Parameters
osthe output stream
bytesthe byte count to be output
heada string to be output before the numeric text
taila string to be output after the numeric text
exactif true, also output the unmodified count, e.g., "4.6 KB (4620 Bytes)"
widtha fixed width for the numeric text
precisionthe number of digits after the decimal point
Returns
0, 1, 2, 3 or 4, denoting the order of magnitude of the count.
OPENVDB_API int openvdb::v12_0::util::printNumber ( std::ostream &  os,
uint64_t  number,
const std::string &  head = "",
const std::string &  tail = "\n",
bool  exact = true,
int  width = 8,
int  precision = 3 
)

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

Parameters
osthe output stream
numberthe number to be output
heada string to be output before the numeric text
taila string to be output after the numeric text
exactif true, also output the unmodified count, e.g., "4.6 Thousand (4620)"
widtha fixed width for the numeric text
precisionthe number of digits after the decimal point
Returns
0, 1, 2, 3 or 4, denoting the order of magnitude of the number.
OPENVDB_API int openvdb::v12_0::util::printTime ( std::ostream &  os,
double  milliseconds,
const std::string &  head = "",
const std::string &  tail = "\n",
int  width = 4,
int  precision = 1,
int  verbose = 0 
)

Output a time in milliseconds with the correct suffix (days, hours, minutes, seconds and milliseconds)

Parameters
osthe output stream
millisecondsthe time to be output
heada string to be output before the time
taila string to be output after the time
widtha fixed width for the numeric text
precisionthe number of digits after the decimal point
verboseverbose level, 0 is compact format and 1 is long format
Returns
0, 1, 2, 3, or 4 denoting the order of magnitude of the time.
bool openvdb::v12_0::util::wasInterrupted ( T *  i,
int  percent = -1 
)
inline

This method is primarily for backwards-compatibility as the ability to compile out the call to wasInterrupted() is no longer supported.

Variable Documentation

constexpr Coord COORD_OFFSETS[26]
inline
Initial value:
=
{
Coord( 1, 0, 0),
Coord(-1, 0, 0),
Coord( 0, 1, 0),
Coord( 0, -1, 0),
Coord( 0, 0, 1),
Coord( 0, 0, -1),
Coord( 1, 0, -1),
Coord(-1, 0, -1),
Coord( 1, 0, 1),
Coord(-1, 0, 1),
Coord( 1, 1, 0),
Coord(-1, 1, 0),
Coord( 1, -1, 0),
Coord(-1, -1, 0),
Coord( 0, -1, 1),
Coord( 0, -1, -1),
Coord( 0, 1, 1),
Coord( 0, 1, -1),
Coord(-1, -1, -1),
Coord(-1, -1, 1),
Coord( 1, -1, 1),
Coord( 1, -1, -1),
Coord(-1, 1, -1),
Coord(-1, 1, 1),
Coord( 1, 1, 1),
Coord( 1, 1, -1)
}

coordinate offset table for neighboring voxels

constexpr Index32 INVALID_IDX = std::numeric_limits<Index32>::max()
inline