pcl::octree::OctreeKey Class Reference

Octree key class More...

`#include <pcl/octree/octree_key.h>`

## Public Member Functions

| OctreeKey ()
| Empty constructor. More...
| OctreeKey (uindex_t keyX, uindex_t keyY, uindex_t keyZ)
| Constructor for key initialization. More...
| OctreeKey (const OctreeKey &source)
| Copy constructor. More...
OctreeKey & | operator= (const OctreeKey &)=default
bool | operator== (const OctreeKey &b) const
| Operator== for comparing octree keys with each other. More...
bool | operator!= (const OctreeKey &other) const
| Inequal comparison operator. More...
bool | operator<= (const OctreeKey &b) const
| Operator<= for comparing octree keys with each other. More...
bool | operator>= (const OctreeKey &b) const
| Operator>= for comparing octree keys with each other. More...
void | pushBranch (unsigned char childIndex)
| push a child node to the octree key More...
void | popBranch ()
| pop child node from octree key More...
unsigned char | getChildIdxWithDepthMask (uindex_t depthMask) const
| get child node index using depthMask More...

## Public Attributes

union {
struct {
uindex_t x
uindex_t y
uindex_t z
} |
uindex_t key_ [3]
}; |

## Static Public Attributes

static const unsigned char | maxDepth

## Detailed Description

Octree key class

Note
  Octree keys contain integer indices for each coordinate axis in order to address an octree leaf node.

Author
  Julius Kammerl (juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

Definition at line 52 of file octree_key.h.

## Constructor & Destructor Documentation

## OctreeKey() [1/3]

pcl::octree::OctreeKey::OctreeKey | ( |  | ) |

inline

Empty constructor.

Definition at line 55 of file octree_key.h.

## OctreeKey() [2/3]

pcl::octree::OctreeKey::OctreeKey | ( | uindex_t | keyX,
|  | uindex_t | keyY,
|  | uindex_t | keyZ
| ) |  |

inline

Constructor for key initialization.

Definition at line 58 of file octree_key.h.

## OctreeKey() [3/3]

pcl::octree::OctreeKey::OctreeKey | ( | const OctreeKey & | source | ) |

inline

Copy constructor.

Definition at line 61 of file octree_key.h.

References key_.

## Member Function Documentation

## getChildIdxWithDepthMask()

unsigned char pcl::octree::OctreeKey::getChildIdxWithDepthMask | ( | uindex_t | depthMask | ) | const

inline

get child node index using depthMask

Parameters

  [in] | depthMask | bit mask with single bit set at query depth

Returns
  child node index

Definition at line 132 of file octree_key.h.

References x, y, and z.

Referenced by pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointIdx(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteLeafRecursive(), pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::deleteLeafRecursive(), pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::findLeaf(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeafRecursive().

## operator!=()

bool pcl::octree::OctreeKey::operator!= | ( | const OctreeKey & | other | ) | const

inline

Inequal comparison operator.

Parameters

  [in] | other | OctreeIteratorBase to compare with

Returns
  "true" if the current and other iterators are different ; "false" otherwise.

Definition at line 81 of file octree_key.h.

References operator==().

## operator<=()

bool pcl::octree::OctreeKey::operator<= | ( | const OctreeKey & | b | ) | const

inline

Operator<= for comparing octree keys with each other.

Returns
  "true" if key indices are not greater than the key indices of b ; "false" otherwise.

Definition at line 90 of file octree_key.h.

References x, y, and z.

## operator=()

OctreeKey& pcl::octree::OctreeKey::operator= | ( | const OctreeKey & |  | ) |

default

## operator==()

bool pcl::octree::OctreeKey::operator== | ( | const OctreeKey & | b | ) | const

inline

Operator== for comparing octree keys with each other.

Returns
  "true" if leaf node indices are identical; "false" otherwise.

Definition at line 70 of file octree_key.h.

References x, y, and z.

Referenced by operator!=().

## operator>=()

bool pcl::octree::OctreeKey::operator>= | ( | const OctreeKey & | b | ) | const

inline

Operator>= for comparing octree keys with each other.

Returns
  "true" if key indices are not smaller than the key indices of b ; "false" otherwise.

Definition at line 101 of file octree_key.h.

References x, y, and z.

## popBranch()

void pcl::octree::OctreeKey::popBranch | ( |  | ) |

inline

pop child node from octree key

Definition at line 120 of file octree_key.h.

References x, y, and z.

Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidsRecursive(), pcl::octree::OctreeDepthFirstIterator< OctreeT >::operator++(), pcl::octree::OctreeBreadthFirstIterator< OctreeT >::operator++(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive(), and pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive().

## pushBranch()

void pcl::octree::OctreeKey::pushBranch | ( | unsigned char | childIndex | ) |

inline

push a child node to the octree key

Parameters

  [in] | childIndex | index of child node to be added (0-7)

Definition at line 110 of file octree_key.h.

References x, y, and z.

Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidsRecursive(), pcl::octree::OctreeDepthFirstIterator< OctreeT >::operator++(), pcl::octree::OctreeBreadthFirstIterator< OctreeT >::operator++(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive(), and pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive().

## Member Data Documentation

##

union { ... }

## key_

uindex_t pcl::octree::OctreeKey::key_[3]

Definition at line 151 of file octree_key.h.

Referenced by OctreeKey().

## maxDepth

const unsigned char pcl::octree::OctreeKey::maxDepth

static

Initial value:
=
static_cast<unsigned char>(sizeof(uindex_t) * 8)
pcl::uindex_t
detail::int_type_t< detail::index_type_size, false > uindex_t
Type used for an unsigned index in PCL.
Definition: types.h:120

Definition at line 140 of file octree_key.h.

Referenced by pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getKeyBitSize(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setMaxVoxelIndex(), and pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::setMaxVoxelIndex().

## x

uindex_t pcl::octree::OctreeKey::x

Definition at line 147 of file octree_key.h.

Referenced by pcl::octree::OctreePointCloudSearch< PointT, pcl::octree::OctreeContainerPointIndices, pcl::octree::OctreeContainerEmpty >::approxNearestSearchRecursive(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::boxSearch(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::boxSearchRecursive(), pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::computeNeighbors(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genLeafNodeCenterFromOctreeKey(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint(), pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::genOctreeKeyforPoint(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelBoundsFromOctreeKey(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelCenterFromOctreeKey(), getChildIdxWithDepthMask(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelCenters(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelCentersRecursive(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelIndices(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelIndicesRecursive(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getNeighborsWithinRadiusRecursive(), pcl::octree::OctreeIteratorBase< OctreeT >::getNodeID(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCenters(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCentersRecursive(), pcl::octree::OctreePointCloudSearch< PointT, pcl::octree::OctreeContainerPointIndices, pcl::octree::OctreeContainerEmpty >::nearestKSearch(), operator<=(), operator==(), operator>=(), popBranch(), pushBranch(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::radiusSearch(), pcl::octree::OctreeDepthFirstIterator< OctreeT >::reset(), pcl::octree::OctreeBreadthFirstIterator< OctreeT >::reset(), and pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::testForOcclusion().

## y

uindex_t pcl::octree::OctreeKey::y

Definition at line 148 of file octree_key.h.

Referenced by pcl::octree::OctreePointCloudSearch< PointT, pcl::octree::OctreeContainerPointIndices, pcl::octree::OctreeContainerEmpty >::approxNearestSearchRecursive(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::boxSearch(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::boxSearchRecursive(), pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::computeNeighbors(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genLeafNodeCenterFromOctreeKey(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint(), pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::genOctreeKeyforPoint(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelBoundsFromOctreeKey(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelCenterFromOctreeKey(), getChildIdxWithDepthMask(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelCenters(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelCentersRecursive(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelIndices(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelIndicesRecursive(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getNeighborsWithinRadiusRecursive(), pcl::octree::OctreeIteratorBase< OctreeT >::getNodeID(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCenters(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCentersRecursive(), pcl::octree::OctreePointCloudSearch< PointT, pcl::octree::OctreeContainerPointIndices, pcl::octree::OctreeContainerEmpty >::nearestKSearch(), operator<=(), operator==(), operator>=(), popBranch(), pushBranch(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::radiusSearch(), pcl::octree::OctreeDepthFirstIterator< OctreeT >::reset(), pcl::octree::OctreeBreadthFirstIterator< OctreeT >::reset(), and pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::testForOcclusion().

## z

uindex_t pcl::octree::OctreeKey::z

Definition at line 149 of file octree_key.h.

Referenced by pcl::octree::OctreePointCloudSearch< PointT, pcl::octree::OctreeContainerPointIndices, pcl::octree::OctreeContainerEmpty >::approxNearestSearchRecursive(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::boxSearch(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::boxSearchRecursive(), pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::computeNeighbors(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genLeafNodeCenterFromOctreeKey(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint(), pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::genOctreeKeyforPoint(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelBoundsFromOctreeKey(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelCenterFromOctreeKey(), getChildIdxWithDepthMask(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelCenters(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelCentersRecursive(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelIndices(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getIntersectedVoxelIndicesRecursive(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::getNeighborsWithinRadiusRecursive(), pcl::octree::OctreeIteratorBase< OctreeT >::getNodeID(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCenters(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCentersRecursive(), pcl::octree::OctreePointCloudSearch< PointT, pcl::octree::OctreeContainerPointIndices, pcl::octree::OctreeContainerEmpty >::nearestKSearch(), operator<=(), operator==(), operator>=(), popBranch(), pushBranch(), pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::radiusSearch(), pcl::octree::OctreeDepthFirstIterator< OctreeT >::reset(), pcl::octree::OctreeBreadthFirstIterator< OctreeT >::reset(), and pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >::testForOcclusion().

The documentation for this class was generated from the following file:

- pcl/octree/octree_key.h