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

Classes

struct  S
 

Public Types

using Bucket = std::atomic< value_type * >
 
template<class T >
using bucket_iterator = TreeContainterBucketIterator< T, false, Ts... >
 
template<class T >
using bucket_type = S< T >
 
template<class T >
using const_bucket_iterator = TreeContainterBucketIterator< T, true, Ts... >
 
template<class T >
using const_iterator = TreeContainterIterator< T, true, Ts... >
 
template<class T >
using const_reverse_bucket_iterator = std::reverse_iterator< const_bucket_iterator< T > >
 
template<class T >
using const_reverse_iterator = std::reverse_iterator< const_iterator< T > >
 
template<class T >
using Data = std::array< T, NUM_BLOCKS_PER_BUCKET >
 
template<class T >
using iterator = TreeContainterIterator< T, false, Ts... >
 
using pos_type = TreeIndex::pos_type
 
template<class T >
using reverse_bucket_iterator = std::reverse_iterator< bucket_iterator< T > >
 
template<class T >
using reverse_iterator = std::reverse_iterator< iterator< T > >
 
using size_type = std::size_t
 
using value_type = std::tuple< Data< pos_type >, S< Ts >... >
 

Public Member Functions

 TreeContainer (TreeContainer const &other)
 
template<class... Ts2>
 TreeContainer (TreeContainer< Ts2... > const &other)
 
template<class T >
iterator< T > begin ()
 
template<class T >
const_iterator< T > begin () const
 
template<class T >
bucket_iterator< T > beginBucket ()
 
template<class T >
const_bucket_iterator< T > beginBucket () const
 
constexpr pos_type blockPos (pos_type pos) const noexcept
 
template<class T >
S< T > & bucket (std::size_t idx)
 
template<std::size_t I>
auto & bucket (std::size_t idx)
 
template<class T >
S< T > const & bucket (std::size_t idx) const
 
template<std::size_t I>
auto const & bucket (std::size_t idx) const
 
template<class T >
Data< T > & bucketData (std::size_t idx)
 
template<std::size_t I>
auto & bucketData (std::size_t idx)
 
template<class T >
Data< T > const & bucketData (std::size_t idx) const
 
template<std::size_t I>
auto const & bucketData (std::size_t idx) const
 
template<class T >
bool & bucketModified (std::size_t idx)
 
template<std::size_t I>
bool & bucketModified (std::size_t idx)
 
template<class T >
bool bucketModified (std::size_t idx) const
 
template<std::size_t I>
bool bucketModified (std::size_t idx) const
 
constexpr pos_type bucketPos (pos_type pos) const noexcept
 
pos_type capacity () const
 
template<class T >
const_iterator< T > cbegin () const
 
template<class T >
const_bucket_iterator< T > cbeginBucket () const
 
template<class T >
const_iterator< T > cend () const
 
template<class T >
const_bucket_iterator< T > cendBucket () const
 
void clear ()
 
template<class T >
const_reverse_iterator< T > crbegin () const
 
template<class T >
const_reverse_bucket_iterator< T > crbeginBucket () const
 
pos_type create ()
 
pos_type createThreadSafe ()
 
template<class T >
const_reverse_iterator< T > crend () const
 
template<class T >
const_reverse_bucket_iterator< T > crendBucket () const
 
bool empty () const
 
template<class T >
iterator< T > end ()
 
template<class T >
const_iterator< T > end () const
 
template<class T >
bucket_iterator< T > endBucket ()
 
template<class T >
const_bucket_iterator< T > endBucket () const
 
void eraseBlock (pos_type block)
 
template<class T >
T & get (pos_type pos)
 
template<std::size_t I>
auto & get (pos_type pos)
 
template<class T >
T const & get (pos_type pos) const
 
template<std::size_t I>
auto const & get (pos_type pos) const
 
template<class T >
auto iter ()
 
template<class T >
auto iter () const
 
template<class T >
auto iterBucket ()
 
template<class T >
auto iterBucket () const
 
constexpr pos_type numBlocksPerBucket () const noexcept
 
constexpr pos_type numBuckets () const noexcept
 
TreeContaineroperator= (TreeContainer const &rhs)
 
template<class... Ts2>
TreeContaineroperator= (TreeContainer< Ts2... > const &rhs)
 
template<class T >
reverse_iterator< T > rbegin ()
 
template<class T >
const_reverse_iterator< T > rbegin () const
 
template<class T >
reverse_bucket_iterator< T > rbeginBucket ()
 
template<class T >
const_reverse_bucket_iterator< T > rbeginBucket () const
 
template<class T >
reverse_iterator< T > rend ()
 
template<class T >
const_reverse_iterator< T > rend () const
 
template<class T >
reverse_bucket_iterator< T > rendBucket ()
 
template<class T >
const_reverse_bucket_iterator< T > rendBucket () const
 
void reserve (pos_type cap)
 
template<class T >
auto riter ()
 
template<class T >
auto riter () const
 
template<class T >
auto riterBucket ()
 
template<class T >
auto riterBucket () const
 
template<class T >
constexpr size_type serializedSize () const
 
void shrinkToFit ()
 
pos_type size () const
 
void swap (TreeContainer &other)
 

Static Public Member Functions

template<class T >
static constexpr size_type serializedBucketSize ()
 

Detailed Description

template<class... Ts>
class ufo::TreeContainer< Ts >

Definition at line 68 of file container.hpp.

Member Typedef Documentation

◆ Bucket

template<class... Ts>
using ufo::TreeContainer< Ts >::Bucket = std::atomic<value_type*>

Definition at line 95 of file container.hpp.

◆ bucket_iterator

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::bucket_iterator = TreeContainterBucketIterator<T, false, Ts...>

Definition at line 107 of file container.hpp.

◆ bucket_type

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::bucket_type = S<T>

Definition at line 90 of file container.hpp.

◆ const_bucket_iterator

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::const_bucket_iterator = TreeContainterBucketIterator<T, true, Ts...>

Definition at line 109 of file container.hpp.

◆ const_iterator

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::const_iterator = TreeContainterIterator<T, true, Ts...>

Definition at line 100 of file container.hpp.

◆ const_reverse_bucket_iterator

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::const_reverse_bucket_iterator = std::reverse_iterator<const_bucket_iterator<T> >

Definition at line 113 of file container.hpp.

◆ const_reverse_iterator

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::const_reverse_iterator = std::reverse_iterator<const_iterator<T> >

Definition at line 104 of file container.hpp.

◆ Data

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::Data = std::array<T, NUM_BLOCKS_PER_BUCKET>

Definition at line 81 of file container.hpp.

◆ iterator

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::iterator = TreeContainterIterator<T, false, Ts...>

Definition at line 98 of file container.hpp.

◆ pos_type

template<class... Ts>
using ufo::TreeContainer< Ts >::pos_type = TreeIndex::pos_type

Definition at line 92 of file container.hpp.

◆ reverse_bucket_iterator

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::reverse_bucket_iterator = std::reverse_iterator<bucket_iterator<T> >

Definition at line 111 of file container.hpp.

◆ reverse_iterator

template<class... Ts>
template<class T >
using ufo::TreeContainer< Ts >::reverse_iterator = std::reverse_iterator<iterator<T> >

Definition at line 102 of file container.hpp.

◆ size_type

template<class... Ts>
using ufo::TreeContainer< Ts >::size_type = std::size_t

Definition at line 91 of file container.hpp.

◆ value_type

template<class... Ts>
using ufo::TreeContainer< Ts >::value_type = std::tuple<Data<pos_type>, S<Ts>...>

Definition at line 94 of file container.hpp.

Constructor & Destructor Documentation

◆ TreeContainer() [1/2]

template<class... Ts>
ufo::TreeContainer< Ts >::TreeContainer ( TreeContainer< Ts > const &  other)
inline

Definition at line 118 of file container.hpp.

◆ TreeContainer() [2/2]

template<class... Ts>
template<class... Ts2>
ufo::TreeContainer< Ts >::TreeContainer ( TreeContainer< Ts2... > const &  other)
inline

Definition at line 131 of file container.hpp.

◆ ~TreeContainer()

template<class... Ts>
ufo::TreeContainer< Ts >::~TreeContainer ( )
inline

Definition at line 137 of file container.hpp.

Member Function Documentation

◆ begin() [1/2]

template<class... Ts>
template<class T >
iterator< T > ufo::TreeContainer< Ts >::begin ( )
inline

Definition at line 180 of file container.hpp.

◆ begin() [2/2]

template<class... Ts>
template<class T >
const_iterator< T > ufo::TreeContainer< Ts >::begin ( ) const
inline

Definition at line 186 of file container.hpp.

◆ beginBucket() [1/2]

template<class... Ts>
template<class T >
bucket_iterator< T > ufo::TreeContainer< Ts >::beginBucket ( )
inline

Definition at line 276 of file container.hpp.

◆ beginBucket() [2/2]

template<class... Ts>
template<class T >
const_bucket_iterator< T > ufo::TreeContainer< Ts >::beginBucket ( ) const
inline

Definition at line 282 of file container.hpp.

◆ blockPos()

template<class... Ts>
constexpr pos_type ufo::TreeContainer< Ts >::blockPos ( pos_type  pos) const
inlineconstexprnoexcept

Definition at line 486 of file container.hpp.

◆ bucket() [1/4]

template<class... Ts>
template<class T >
S< T > & ufo::TreeContainer< Ts >::bucket ( std::size_t  idx)
inline

Definition at line 372 of file container.hpp.

◆ bucket() [2/4]

template<class... Ts>
template<std::size_t I>
auto & ufo::TreeContainer< Ts >::bucket ( std::size_t  idx)
inline

Definition at line 384 of file container.hpp.

◆ bucket() [3/4]

template<class... Ts>
template<class T >
S< T > const & ufo::TreeContainer< Ts >::bucket ( std::size_t  idx) const
inline

Definition at line 378 of file container.hpp.

◆ bucket() [4/4]

template<class... Ts>
template<std::size_t I>
auto const & ufo::TreeContainer< Ts >::bucket ( std::size_t  idx) const
inline

Definition at line 390 of file container.hpp.

◆ bucketData() [1/4]

template<class... Ts>
template<class T >
Data< T > & ufo::TreeContainer< Ts >::bucketData ( std::size_t  idx)
inline

Definition at line 420 of file container.hpp.

◆ bucketData() [2/4]

template<class... Ts>
template<std::size_t I>
auto & ufo::TreeContainer< Ts >::bucketData ( std::size_t  idx)
inline

Definition at line 434 of file container.hpp.

◆ bucketData() [3/4]

template<class... Ts>
template<class T >
Data< T > const & ufo::TreeContainer< Ts >::bucketData ( std::size_t  idx) const
inline

Definition at line 428 of file container.hpp.

◆ bucketData() [4/4]

template<class... Ts>
template<std::size_t I>
auto const & ufo::TreeContainer< Ts >::bucketData ( std::size_t  idx) const
inline

Definition at line 442 of file container.hpp.

◆ bucketModified() [1/4]

template<class... Ts>
template<class T >
bool & ufo::TreeContainer< Ts >::bucketModified ( std::size_t  idx)
inline

Definition at line 396 of file container.hpp.

◆ bucketModified() [2/4]

template<class... Ts>
template<std::size_t I>
bool & ufo::TreeContainer< Ts >::bucketModified ( std::size_t  idx)
inline

Definition at line 408 of file container.hpp.

◆ bucketModified() [3/4]

template<class... Ts>
template<class T >
bool ufo::TreeContainer< Ts >::bucketModified ( std::size_t  idx) const
inline

Definition at line 402 of file container.hpp.

◆ bucketModified() [4/4]

template<class... Ts>
template<std::size_t I>
bool ufo::TreeContainer< Ts >::bucketModified ( std::size_t  idx) const
inline

Definition at line 414 of file container.hpp.

◆ bucketPos()

template<class... Ts>
constexpr pos_type ufo::TreeContainer< Ts >::bucketPos ( pos_type  pos) const
inlineconstexprnoexcept

Definition at line 481 of file container.hpp.

◆ capacity()

template<class... Ts>
pos_type ufo::TreeContainer< Ts >::capacity ( ) const
inline

Definition at line 607 of file container.hpp.

◆ cbegin()

template<class... Ts>
template<class T >
const_iterator< T > ufo::TreeContainer< Ts >::cbegin ( ) const
inline

Definition at line 192 of file container.hpp.

◆ cbeginBucket()

template<class... Ts>
template<class T >
const_bucket_iterator< T > ufo::TreeContainer< Ts >::cbeginBucket ( ) const
inline

Definition at line 288 of file container.hpp.

◆ cend()

template<class... Ts>
template<class T >
const_iterator< T > ufo::TreeContainer< Ts >::cend ( ) const
inline

Definition at line 210 of file container.hpp.

◆ cendBucket()

template<class... Ts>
template<class T >
const_bucket_iterator< T > ufo::TreeContainer< Ts >::cendBucket ( ) const
inline

Definition at line 306 of file container.hpp.

◆ clear()

template<class... Ts>
void ufo::TreeContainer< Ts >::clear ( )
inline

Definition at line 556 of file container.hpp.

◆ crbegin()

template<class... Ts>
template<class T >
const_reverse_iterator< T > ufo::TreeContainer< Ts >::crbegin ( ) const
inline

Definition at line 228 of file container.hpp.

◆ crbeginBucket()

template<class... Ts>
template<class T >
const_reverse_bucket_iterator< T > ufo::TreeContainer< Ts >::crbeginBucket ( ) const
inline

Definition at line 324 of file container.hpp.

◆ create()

template<class... Ts>
pos_type ufo::TreeContainer< Ts >::create ( )
inline

Definition at line 491 of file container.hpp.

◆ createThreadSafe()

template<class... Ts>
pos_type ufo::TreeContainer< Ts >::createThreadSafe ( )
inline

Definition at line 514 of file container.hpp.

◆ crend()

template<class... Ts>
template<class T >
const_reverse_iterator< T > ufo::TreeContainer< Ts >::crend ( ) const
inline

Definition at line 246 of file container.hpp.

◆ crendBucket()

template<class... Ts>
template<class T >
const_reverse_bucket_iterator< T > ufo::TreeContainer< Ts >::crendBucket ( ) const
inline

Definition at line 342 of file container.hpp.

◆ empty()

template<class... Ts>
bool ufo::TreeContainer< Ts >::empty ( ) const
inline

Definition at line 603 of file container.hpp.

◆ end() [1/2]

template<class... Ts>
template<class T >
iterator< T > ufo::TreeContainer< Ts >::end ( )
inline

Definition at line 198 of file container.hpp.

◆ end() [2/2]

template<class... Ts>
template<class T >
const_iterator< T > ufo::TreeContainer< Ts >::end ( ) const
inline

Definition at line 204 of file container.hpp.

◆ endBucket() [1/2]

template<class... Ts>
template<class T >
bucket_iterator< T > ufo::TreeContainer< Ts >::endBucket ( )
inline

Definition at line 294 of file container.hpp.

◆ endBucket() [2/2]

template<class... Ts>
template<class T >
const_bucket_iterator< T > ufo::TreeContainer< Ts >::endBucket ( ) const
inline

Definition at line 300 of file container.hpp.

◆ eraseBlock()

template<class... Ts>
void ufo::TreeContainer< Ts >::eraseBlock ( pos_type  block)
inline

Definition at line 549 of file container.hpp.

◆ get() [1/4]

template<class... Ts>
template<class T >
T & ufo::TreeContainer< Ts >::get ( pos_type  pos)
inline

Definition at line 448 of file container.hpp.

◆ get() [2/4]

template<class... Ts>
template<std::size_t I>
auto & ufo::TreeContainer< Ts >::get ( pos_type  pos)
inline

Definition at line 460 of file container.hpp.

◆ get() [3/4]

template<class... Ts>
template<class T >
T const & ufo::TreeContainer< Ts >::get ( pos_type  pos) const
inline

Definition at line 454 of file container.hpp.

◆ get() [4/4]

template<class... Ts>
template<std::size_t I>
auto const & ufo::TreeContainer< Ts >::get ( pos_type  pos) const
inline

Definition at line 466 of file container.hpp.

◆ iter() [1/2]

template<class... Ts>
template<class T >
auto ufo::TreeContainer< Ts >::iter ( )
inline

Definition at line 252 of file container.hpp.

◆ iter() [2/2]

template<class... Ts>
template<class T >
auto ufo::TreeContainer< Ts >::iter ( ) const
inline

Definition at line 258 of file container.hpp.

◆ iterBucket() [1/2]

template<class... Ts>
template<class T >
auto ufo::TreeContainer< Ts >::iterBucket ( )
inline

Definition at line 348 of file container.hpp.

◆ iterBucket() [2/2]

template<class... Ts>
template<class T >
auto ufo::TreeContainer< Ts >::iterBucket ( ) const
inline

Definition at line 354 of file container.hpp.

◆ numBlocksPerBucket()

template<class... Ts>
constexpr pos_type ufo::TreeContainer< Ts >::numBlocksPerBucket ( ) const
inlineconstexprnoexcept

Definition at line 476 of file container.hpp.

◆ numBuckets()

template<class... Ts>
constexpr pos_type ufo::TreeContainer< Ts >::numBuckets ( ) const
inlineconstexprnoexcept

Definition at line 471 of file container.hpp.

◆ operator=() [1/2]

template<class... Ts>
TreeContainer & ufo::TreeContainer< Ts >::operator= ( TreeContainer< Ts > const &  rhs)
inline

Definition at line 148 of file container.hpp.

◆ operator=() [2/2]

template<class... Ts>
template<class... Ts2>
TreeContainer & ufo::TreeContainer< Ts >::operator= ( TreeContainer< Ts2... > const &  rhs)
inline

Definition at line 169 of file container.hpp.

◆ rbegin() [1/2]

template<class... Ts>
template<class T >
reverse_iterator< T > ufo::TreeContainer< Ts >::rbegin ( )
inline

Definition at line 216 of file container.hpp.

◆ rbegin() [2/2]

template<class... Ts>
template<class T >
const_reverse_iterator< T > ufo::TreeContainer< Ts >::rbegin ( ) const
inline

Definition at line 222 of file container.hpp.

◆ rbeginBucket() [1/2]

template<class... Ts>
template<class T >
reverse_bucket_iterator< T > ufo::TreeContainer< Ts >::rbeginBucket ( )
inline

Definition at line 312 of file container.hpp.

◆ rbeginBucket() [2/2]

template<class... Ts>
template<class T >
const_reverse_bucket_iterator< T > ufo::TreeContainer< Ts >::rbeginBucket ( ) const
inline

Definition at line 318 of file container.hpp.

◆ rend() [1/2]

template<class... Ts>
template<class T >
reverse_iterator< T > ufo::TreeContainer< Ts >::rend ( )
inline

Definition at line 234 of file container.hpp.

◆ rend() [2/2]

template<class... Ts>
template<class T >
const_reverse_iterator< T > ufo::TreeContainer< Ts >::rend ( ) const
inline

Definition at line 240 of file container.hpp.

◆ rendBucket() [1/2]

template<class... Ts>
template<class T >
reverse_bucket_iterator< T > ufo::TreeContainer< Ts >::rendBucket ( )
inline

Definition at line 330 of file container.hpp.

◆ rendBucket() [2/2]

template<class... Ts>
template<class T >
const_reverse_bucket_iterator< T > ufo::TreeContainer< Ts >::rendBucket ( ) const
inline

Definition at line 336 of file container.hpp.

◆ reserve()

template<class... Ts>
void ufo::TreeContainer< Ts >::reserve ( pos_type  cap)
inline

Definition at line 572 of file container.hpp.

◆ riter() [1/2]

template<class... Ts>
template<class T >
auto ufo::TreeContainer< Ts >::riter ( )
inline

Definition at line 264 of file container.hpp.

◆ riter() [2/2]

template<class... Ts>
template<class T >
auto ufo::TreeContainer< Ts >::riter ( ) const
inline

Definition at line 270 of file container.hpp.

◆ riterBucket() [1/2]

template<class... Ts>
template<class T >
auto ufo::TreeContainer< Ts >::riterBucket ( )
inline

Definition at line 360 of file container.hpp.

◆ riterBucket() [2/2]

template<class... Ts>
template<class T >
auto ufo::TreeContainer< Ts >::riterBucket ( ) const
inline

Definition at line 366 of file container.hpp.

◆ serializedBucketSize()

template<class... Ts>
template<class T >
static constexpr size_type ufo::TreeContainer< Ts >::serializedBucketSize ( )
inlinestaticconstexpr

Definition at line 610 of file container.hpp.

◆ serializedSize()

template<class... Ts>
template<class T >
constexpr size_type ufo::TreeContainer< Ts >::serializedSize ( ) const
inlineconstexpr

Definition at line 616 of file container.hpp.

◆ shrinkToFit()

template<class... Ts>
void ufo::TreeContainer< Ts >::shrinkToFit ( )
inline

Definition at line 591 of file container.hpp.

◆ size()

template<class... Ts>
pos_type ufo::TreeContainer< Ts >::size ( ) const
inline

Definition at line 605 of file container.hpp.

◆ swap()

template<class... Ts>
void ufo::TreeContainer< Ts >::swap ( TreeContainer< Ts > &  other)
inline

Definition at line 621 of file container.hpp.


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