OpenVDB 11.0.0

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Coord Class Reference

Signed (i, j, k) 32-bit integer coordinate class, similar to openvdb::math::Coord. More...

`#include <nanovdb/NanoVDB.h>`

## Public Types
using | ValueType = int32_t
using | IndexType = uint32_t

## Public Member Functions
| Coord ()
| Initialize all coordinates to zero.
| Coord (ValueType n)
| Initializes all coordinates to the given signed integer.
| Coord (ValueType i, ValueType j, ValueType k)
| Initializes coordinate to the given signed integers.
| Coord (ValueType *ptr)
int32_t | x () const
int32_t | y () const
int32_t | z () const
int32_t & | x ()
int32_t & | y ()
int32_t & | z ()
const ValueType & | operator[] (IndexType i) const
| Return a const reference to the given Coord component.
ValueType & | operator[] (IndexType i)
| Return a non-const reference to the given Coord component.
template<typename CoordT >
Coord & | operator= (const CoordT &other)
| Assignment operator that works with openvdb::Coord.
Coord | operator& (IndexType n) const
| Return a new instance with coordinates masked by the given unsigned integer.
Coord | operator<< (IndexType n) const
Coord | operator>> (IndexType n) const
bool | operator< (const Coord &rhs) const
| Return true if this Coord is lexicographically less than the given Coord.
bool | operator<= (const Coord &rhs) const
| Return true if this Coord is lexicographically less or equal to the given Coord.
bool | operator== (const Coord &rhs) const
bool | operator!= (const Coord &rhs) const
Coord & | operator&= (int n)
Coord & | operator<<= (uint32_t n)
Coord & | operator>>= (uint32_t n)
Coord & | operator+= (int n)
Coord | operator+ (const Coord &rhs) const
Coord | operator- (const Coord &rhs) const
Coord | operator- () const
Coord & | operator+= (const Coord &rhs)
Coord & | operator-= (const Coord &rhs)
Coord & | minComponent (const Coord &other)
| Perform a component-wise minimum with the other Coord.
Coord & | maxComponent (const Coord &other)
| Perform a component-wise maximum with the other Coord.
Coord | offsetBy (ValueType dx, ValueType dy, ValueType dz) const
Coord | offsetBy (ValueType n) const
template<int Log2N = 3 + 4 + 5>
uint32_t | hash () const
| Return a hash key derived from the existing coordinates.
uint8_t | octant () const
| Return the octant of this Coord.
Vec3< float > | asVec3s () const
| Return a single precision floating-point vector of this coordinate.
Vec3< double > | asVec3d () const
| Return a double precision floating-point vector of this coordinate.
Coord | round () const

## Static Public Member Functions
static Coord | max ()
static Coord | min ()
static size_t | memUsage ()
static bool | lessThan (const Coord &a, const Coord &b)
template<typename Vec3T >
static Coord | Floor (const Vec3T &xyz)
| Return the largest integer coordinates that are not greater than xyz (node centered conversion).

## Detailed Description

Signed (i, j, k) 32-bit integer coordinate class, similar to openvdb::math::Coord.

## Member Typedef Documentation

## ◆ IndexType

using IndexType = uint32_t

## ◆ ValueType

using ValueType = int32_t

## Constructor & Destructor Documentation

## ◆ Coord() [1/4]

Coord | ( |  | ) |
| inline

Initialize all coordinates to zero.

## ◆ Coord() [2/4]

Coord | ( | ValueType | n | ) |
| inline explicit

Initializes all coordinates to the given signed integer.

## ◆ Coord() [3/4]

Coord | ( | ValueType | i,
|  | ValueType | j,
|  | ValueType | k
| ) |  |
| inline

Initializes coordinate to the given signed integers.

## ◆ Coord() [4/4]

Coord | ( | ValueType * | ptr | ) |
| inline

## Member Function Documentation

## ◆ asVec3d()

Vec3d asVec3d | ( |  | ) | const
| inline

Return a double precision floating-point vector of this coordinate.

## ◆ asVec3s()

Vec3f asVec3s | ( |  | ) | const
| inline

Return a single precision floating-point vector of this coordinate.

## ◆ Floor()

template<typename Vec3T >

static Coord Floor | ( | const Vec3T & | xyz | ) |
| inline static

Return the largest integer coordinates that are not greater than xyz (node centered conversion).

## ◆ hash()

template<int Log2N = 3 + 4 + 5>

uint32_t hash | ( |  | ) | const
| inline

Return a hash key derived from the existing coordinates.

The hash function is originally taken from the SIGGRAPH paper: "VDB: High-resolution sparse volumes with dynamic topology" and the prime numbers are modified based on the ACM Transactions on Graphics paper: "Real-time 3D reconstruction at scale using voxel hashing" (the second number had a typo!)

## ◆ lessThan()

static bool lessThan | ( | const Coord & | a,
|  | const Coord & | b
| ) |  |
| inline static

Return true if any of the components of a are smaller than the corresponding components of b.

## ◆ max()

static Coord max | ( |  | ) |
| inline static

## ◆ maxComponent()

Coord & maxComponent | ( | const Coord & | other | ) |
| inline

Perform a component-wise maximum with the other Coord.

## ◆ memUsage()

static size_t memUsage | ( |  | ) |
| inline static

## ◆ min()

static Coord min | ( |  | ) |
| inline static

## ◆ minComponent()

Coord & minComponent | ( | const Coord & | other | ) |
| inline

Perform a component-wise minimum with the other Coord.

## ◆ octant()

uint8_t octant | ( |  | ) | const
| inline

Return the octant of this Coord.

## ◆ offsetBy() [1/2]

Coord offsetBy | ( | ValueType | dx,
|  | ValueType | dy,
|  | ValueType | dz
| ) |  | const
| inline

## ◆ offsetBy() [2/2]

Coord offsetBy | ( | ValueType | n | ) | const
| inline

## ◆ operator!=()

bool operator!= | ( | const Coord & | rhs | ) | const
| inline

## ◆ operator&()

Coord operator& | ( | IndexType | n | ) | const
| inline

Return a new instance with coordinates masked by the given unsigned integer.

## ◆ operator&=()

Coord & operator&= | ( | int | n | ) |
| inline

## ◆ operator+()

Coord operator+ | ( | const Coord & | rhs | ) | const
| inline

## ◆ operator+=() [1/2]

Coord & operator+= | ( | const Coord & | rhs | ) |
| inline

## ◆ operator+=() [2/2]

Coord & operator+= | ( | int | n | ) |
| inline

## ◆ operator-() [1/2]

Coord operator- | ( |  | ) | const
| inline

## ◆ operator-() [2/2]

Coord operator- | ( | const Coord & | rhs | ) | const
| inline

## ◆ operator-=()

Coord & operator-= | ( | const Coord & | rhs | ) |
| inline

## ◆ operator<()

bool operator< | ( | const Coord & | rhs | ) | const
| inline

Return true if this Coord is lexicographically less than the given Coord.

## ◆ operator<<()

Coord operator<< | ( | IndexType | n | ) | const
| inline

## ◆ operator<<=()

Coord & operator<<= | ( | uint32_t | n | ) |
| inline

## ◆ operator<=()

bool operator<= | ( | const Coord & | rhs | ) | const
| inline

Return true if this Coord is lexicographically less or equal to the given Coord.

## ◆ operator=()

template<typename CoordT >

Coord & operator= | ( | const CoordT & | other | ) |
| inline

Assignment operator that works with openvdb::Coord.

## ◆ operator==()

bool operator== | ( | const Coord & | rhs | ) | const
| inline

## ◆ operator>>()

Coord operator>> | ( | IndexType | n | ) | const
| inline

## ◆ operator>>=()

Coord & operator>>= | ( | uint32_t | n | ) |
| inline

## ◆ operator[]() [1/2]

ValueType & operator[] | ( | IndexType | i | ) |
| inline

Return a non-const reference to the given Coord component.

Warning
  The argument is assumed to be 0, 1, or 2.

## ◆ operator[]() [2/2]

const ValueType & operator[] | ( | IndexType | i | ) | const
| inline

Return a const reference to the given Coord component.

Warning
  The argument is assumed to be 0, 1, or 2.

## ◆ round()

Coord round | ( |  | ) | const
| inline

## ◆ x() [1/2]

int32_t & x | ( |  | ) |
| inline

## ◆ x() [2/2]

int32_t x | ( |  | ) | const
| inline

## ◆ y() [1/2]

int32_t & y | ( |  | ) |
| inline

## ◆ y() [2/2]

int32_t y | ( |  | ) | const
| inline

## ◆ z() [1/2]

int32_t & z | ( |  | ) |
| inline

## ◆ z() [2/2]

int32_t z | ( |  | ) | const
| inline