OpenVDB: Coord Class Reference

OpenVDB 10.1.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
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 &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.

## 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 | ) |
| inlineexplicit

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 | ) |
| inlinestatic

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.

For details on this hash function please see the VDB paper. The prime numbers are modified based on the ACM Transactions on Graphics paper: "Real-time 3D reconstruction at scale using voxel hashing"

## ◆ lessThan()

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

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

## ◆ max()

static Coord max | ( |  | ) |
| inlinestatic

## ◆ maxComponent()

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

Perform a component-wise maximum with the other Coord.

## ◆ memUsage()

static size_t memUsage | ( |  | ) |
| inlinestatic

## ◆ min()

static Coord min | ( |  | ) |
| inlinestatic

## ◆ 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-()

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=()

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.

## ◆ 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