UFO 1.0.0
An Efficient Probabilistic 3D Mapping Framework That Embraces the Unknown
Loading...
Searching...
No Matches
ufo::TreeCode< Dim > Class Template Reference

Public Types

using code_type = std::uint32_t
 
using depth_type = std::uint32_t
 
using key_type = typename TreeKey< Dim >::key_type
 
using size_type = std::size_t
 

Public Member Functions

constexpr TreeCode (std::array< code_type, 3 > const &code)
 
constexpr TreeCode (std::array< code_type, 3 > const &code, depth_type const &depth)
 
constexpr TreeCode (TreeCode const &) noexcept=default
 
constexpr TreeCode (TreeKey< Dim > const &key)
 
constexpr TreeCode child (std::size_t idx) const
 Get the code of a specific child of this code.
 
constexpr depth_type depth () const noexcept
 
constexpr TreeCode firstborn () const
 Get the code of the firstborn child of this code (same as child(0)).
 
constexpr TreeCode firstbornSibling (std::size_t idx) const
 Get the code of a specific sibling of this firstborn code.
 
constexpr void invalidate () noexcept
 
constexpr bool isAncestorOf (TreeCode const &other) const noexcept
 
constexpr bool isDescendantOf (TreeCode const &other) const noexcept
 
constexpr bool isSiblingOf (TreeCode const &other) const noexcept
 
code_type lowestOffsets () const
 
void lowestOffsets (code_type lowest_offsets, depth_type depth=0)
 
constexpr TreeCode nextSibling () const
 
constexpr code_type offset () const
 Get the offset at the current depth (same as c.offset(c.depth())).
 
constexpr code_type offset (depth_type depth) const
 Get the offset at a specific depth for this code.
 
constexpr operator TreeKey< Dim > () const noexcept
 
constexpr TreeCodeoperator= (TreeCode const &) noexcept=default
 
constexpr key_type operator[] (size_type pos) const noexcept
 
constexpr TreeCode parent () const
 
constexpr TreeCode prevSibling () const
 
constexpr void setDepth (depth_type depth)
 
constexpr void setOffset (code_type offset)
 
constexpr void setOffset (depth_type depth, code_type offset)
 
constexpr TreeCode sibling (std::size_t idx) const
 Get the code of a specific sibling of this code.
 
constexpr TreeCode toDepth (depth_type depth) const
 
constexpr bool valid () const noexcept
 

Static Public Member Functions

static constexpr std::size_t branchingFactor () noexcept
 
static constexpr TreeCode invalid () noexcept
 
static constexpr depth_type lowestCommonAncestor (TreeCode const &lhs, TreeCode const &rhs) noexcept
 
static constexpr depth_type maxDepth () noexcept
 
static constexpr bool sameAncestorAtDepth (TreeCode const &lhs, TreeCode const &rhs, depth_type depth) noexcept
 
static constexpr size_type size () noexcept
 

Friends

constexpr bool operator!= (TreeCode const &lhs, TreeCode const &rhs) noexcept
 
constexpr bool operator< (TreeCode const &lhs, TreeCode const &rhs) noexcept
 
std::ostream & operator<< (std::ostream &os, TreeCode const &code)
 
constexpr bool operator<= (TreeCode const &lhs, TreeCode const &rhs) noexcept
 
constexpr bool operator== (TreeCode const &lhs, TreeCode const &rhs) noexcept
 
constexpr bool operator> (TreeCode const &lhs, TreeCode const &rhs) noexcept
 
constexpr bool operator>= (TreeCode const &lhs, TreeCode const &rhs) noexcept
 
class std::hash< TreeCode >
 

Detailed Description

template<std::size_t Dim>
class ufo::TreeCode< Dim >

Definition at line 58 of file code.hpp.

Member Typedef Documentation

◆ code_type

template<std::size_t Dim>
using ufo::TreeCode< Dim >::code_type = std::uint32_t

Definition at line 68 of file code.hpp.

◆ depth_type

template<std::size_t Dim>
using ufo::TreeCode< Dim >::depth_type = std::uint32_t

Definition at line 70 of file code.hpp.

◆ key_type

template<std::size_t Dim>
using ufo::TreeCode< Dim >::key_type = typename TreeKey<Dim>::key_type

Definition at line 69 of file code.hpp.

◆ size_type

template<std::size_t Dim>
using ufo::TreeCode< Dim >::size_type = std::size_t

Definition at line 71 of file code.hpp.

Constructor & Destructor Documentation

◆ TreeCode() [1/3]

template<std::size_t Dim>
constexpr ufo::TreeCode< Dim >::TreeCode ( std::array< code_type, 3 > const &  code,
depth_type const &  depth 
)
inlineconstexpr

Definition at line 91 of file code.hpp.

◆ TreeCode() [2/3]

template<std::size_t Dim>
constexpr ufo::TreeCode< Dim >::TreeCode ( std::array< code_type, 3 > const &  code)
inlineexplicitconstexpr

Definition at line 97 of file code.hpp.

◆ TreeCode() [3/3]

template<std::size_t Dim>
constexpr ufo::TreeCode< Dim >::TreeCode ( TreeKey< Dim > const &  key)
inlineexplicitconstexpr

Definition at line 99 of file code.hpp.

Member Function Documentation

◆ branchingFactor()

template<std::size_t Dim>
static constexpr std::size_t ufo::TreeCode< Dim >::branchingFactor ( )
inlinestaticconstexprnoexcept

Definition at line 204 of file code.hpp.

◆ child()

template<std::size_t Dim>
constexpr TreeCode ufo::TreeCode< Dim >::child ( std::size_t  idx) const
inlineconstexpr

Get the code of a specific child of this code.

Parameters
idxThe index of the child
Returns
TreeCode The child code

Definition at line 353 of file code.hpp.

◆ depth()

template<std::size_t Dim>
constexpr depth_type ufo::TreeCode< Dim >::depth ( ) const
inlineconstexprnoexcept

Definition at line 223 of file code.hpp.

◆ firstborn()

template<std::size_t Dim>
constexpr TreeCode ufo::TreeCode< Dim >::firstborn ( ) const
inlineconstexpr

Get the code of the firstborn child of this code (same as child(0)).

Returns
TreeCode The firstborn child code

Definition at line 366 of file code.hpp.

◆ firstbornSibling()

template<std::size_t Dim>
constexpr TreeCode ufo::TreeCode< Dim >::firstbornSibling ( std::size_t  idx) const
inlineconstexpr

Get the code of a specific sibling of this firstborn code.

Note
Should only be called on firstborn codes (i.e., offset(depth()) should be 0)
Parameters
idxThe index of the sibling
Returns
TreeCode The sibling code

Definition at line 418 of file code.hpp.

◆ invalid()

template<std::size_t Dim>
static constexpr TreeCode ufo::TreeCode< Dim >::invalid ( )
inlinestaticconstexprnoexcept

Definition at line 112 of file code.hpp.

◆ invalidate()

template<std::size_t Dim>
constexpr void ufo::TreeCode< Dim >::invalidate ( )
inlineconstexprnoexcept

Definition at line 202 of file code.hpp.

◆ isAncestorOf()

template<std::size_t Dim>
constexpr bool ufo::TreeCode< Dim >::isAncestorOf ( TreeCode< Dim > const &  other) const
inlineconstexprnoexcept

Definition at line 246 of file code.hpp.

◆ isDescendantOf()

template<std::size_t Dim>
constexpr bool ufo::TreeCode< Dim >::isDescendantOf ( TreeCode< Dim > const &  other) const
inlineconstexprnoexcept

Definition at line 251 of file code.hpp.

◆ isSiblingOf()

template<std::size_t Dim>
constexpr bool ufo::TreeCode< Dim >::isSiblingOf ( TreeCode< Dim > const &  other) const
inlineconstexprnoexcept

Definition at line 256 of file code.hpp.

◆ lowestCommonAncestor()

template<std::size_t Dim>
static constexpr depth_type ufo::TreeCode< Dim >::lowestCommonAncestor ( TreeCode< Dim > const &  lhs,
TreeCode< Dim > const &  rhs 
)
inlinestaticconstexprnoexcept

Definition at line 261 of file code.hpp.

◆ lowestOffsets() [1/2]

template<std::size_t Dim>
code_type ufo::TreeCode< Dim >::lowestOffsets ( ) const
inline

Definition at line 483 of file code.hpp.

◆ lowestOffsets() [2/2]

template<std::size_t Dim>
void ufo::TreeCode< Dim >::lowestOffsets ( code_type  lowest_offsets,
depth_type  depth = 0 
)
inline

Definition at line 485 of file code.hpp.

◆ maxDepth()

template<std::size_t Dim>
static constexpr depth_type ufo::TreeCode< Dim >::maxDepth ( )
inlinestaticconstexprnoexcept

Definition at line 211 of file code.hpp.

◆ nextSibling()

template<std::size_t Dim>
constexpr TreeCode ufo::TreeCode< Dim >::nextSibling ( ) const
inlineconstexpr

Definition at line 385 of file code.hpp.

◆ offset() [1/2]

template<std::size_t Dim>
constexpr code_type ufo::TreeCode< Dim >::offset ( ) const
inlineconstexpr

Get the offset at the current depth (same as c.offset(c.depth())).

Returns
The offset at the current depth.

Definition at line 314 of file code.hpp.

◆ offset() [2/2]

template<std::size_t Dim>
constexpr code_type ufo::TreeCode< Dim >::offset ( depth_type  depth) const
inlineconstexpr

Get the offset at a specific depth for this code.

Parameters
depthThe depth the index is requested for.
Returns
The offset at the specified depth.

Definition at line 322 of file code.hpp.

◆ operator TreeKey< Dim >()

template<std::size_t Dim>
constexpr ufo::TreeCode< Dim >::operator TreeKey< Dim > ( ) const
inlineexplicitconstexprnoexcept

Definition at line 133 of file code.hpp.

◆ operator[]()

template<std::size_t Dim>
constexpr key_type ufo::TreeCode< Dim >::operator[] ( size_type  pos) const
inlineconstexprnoexcept

Definition at line 159 of file code.hpp.

◆ parent()

template<std::size_t Dim>
constexpr TreeCode ufo::TreeCode< Dim >::parent ( ) const
inlineconstexpr

Definition at line 345 of file code.hpp.

◆ prevSibling()

template<std::size_t Dim>
constexpr TreeCode ufo::TreeCode< Dim >::prevSibling ( ) const
inlineconstexpr

Definition at line 397 of file code.hpp.

◆ sameAncestorAtDepth()

template<std::size_t Dim>
static constexpr bool ufo::TreeCode< Dim >::sameAncestorAtDepth ( TreeCode< Dim > const &  lhs,
TreeCode< Dim > const &  rhs,
depth_type  depth 
)
inlinestaticconstexprnoexcept

Definition at line 225 of file code.hpp.

◆ setDepth()

template<std::size_t Dim>
constexpr void ufo::TreeCode< Dim >::setDepth ( depth_type  depth)
inlineconstexpr

Definition at line 290 of file code.hpp.

◆ setOffset() [1/2]

template<std::size_t Dim>
constexpr void ufo::TreeCode< Dim >::setOffset ( code_type  offset)
inlineconstexpr

Definition at line 331 of file code.hpp.

◆ setOffset() [2/2]

template<std::size_t Dim>
constexpr void ufo::TreeCode< Dim >::setOffset ( depth_type  depth,
code_type  offset 
)
inlineconstexpr

Definition at line 333 of file code.hpp.

◆ sibling()

template<std::size_t Dim>
constexpr TreeCode ufo::TreeCode< Dim >::sibling ( std::size_t  idx) const
inlineconstexpr

Get the code of a specific sibling of this code.

Parameters
idxThe index of the sibling
Returns
TreeCode The sibling code

Definition at line 378 of file code.hpp.

◆ size()

template<std::size_t Dim>
static constexpr size_type ufo::TreeCode< Dim >::size ( )
inlinestaticconstexprnoexcept

Definition at line 181 of file code.hpp.

◆ toDepth()

template<std::size_t Dim>
constexpr TreeCode ufo::TreeCode< Dim >::toDepth ( depth_type  depth) const
inlineconstexpr

Definition at line 281 of file code.hpp.

◆ valid()

template<std::size_t Dim>
constexpr bool ufo::TreeCode< Dim >::valid ( ) const
inlineconstexprnoexcept

Definition at line 189 of file code.hpp.

Friends And Related Symbol Documentation

◆ operator!=

template<std::size_t Dim>
constexpr bool operator!= ( TreeCode< Dim > const &  lhs,
TreeCode< Dim > const &  rhs 
)
friend

Definition at line 502 of file code.hpp.

◆ operator<

template<std::size_t Dim>
constexpr bool operator< ( TreeCode< Dim > const &  lhs,
TreeCode< Dim > const &  rhs 
)
friend

Definition at line 507 of file code.hpp.

◆ operator<<

template<std::size_t Dim>
std::ostream & operator<< ( std::ostream &  os,
TreeCode< Dim > const &  code 
)
friend

Definition at line 527 of file code.hpp.

◆ operator<=

template<std::size_t Dim>
constexpr bool operator<= ( TreeCode< Dim > const &  lhs,
TreeCode< Dim > const &  rhs 
)
friend

Definition at line 512 of file code.hpp.

◆ operator==

template<std::size_t Dim>
constexpr bool operator== ( TreeCode< Dim > const &  lhs,
TreeCode< Dim > const &  rhs 
)
friend

Definition at line 497 of file code.hpp.

◆ operator>

template<std::size_t Dim>
constexpr bool operator> ( TreeCode< Dim > const &  lhs,
TreeCode< Dim > const &  rhs 
)
friend

Definition at line 517 of file code.hpp.

◆ operator>=

template<std::size_t Dim>
constexpr bool operator>= ( TreeCode< Dim > const &  lhs,
TreeCode< Dim > const &  rhs 
)
friend

Definition at line 522 of file code.hpp.

◆ std::hash< TreeCode >

template<std::size_t Dim>
friend class std::hash< TreeCode >
friend

Definition at line 1 of file code.hpp.


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