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

Public Types

using Code = typename Tree::Code
 
using Coord = typename Tree::Coord
 
using coord_t = typename Tree::coord_t
 
using depth_t = typename Tree::depth_t
 
using Index = typename Tree::Index
 
using Key = typename Tree::Key
 
using labels_t = typename LabelsBlock< BF >::labels_t
 
using length_t = typename Tree::length_t
 
using Node = typename Tree::Node
 
using offset_t = typename Tree::offset_t
 
using Point = typename Tree::Point
 
using pos_t = typename Tree::pos_t
 

Public Member Functions

template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
labels_t labels (NodeType node) const
 
constexpr LabelsPropagationCriteria labelsPropagationCriteria () const noexcept
 
template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
void labelsSet (NodeType node, labels_t value, bool propagate=true)
 
void labelsSetPropagationCriteria (LabelsPropagationCriteria prop_criteria, bool propagate=true)
 
template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
void labelsUpdate (NodeType node, label_t value, bool propagate=true)
 
template<class NodeType , class UnaryOp , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true, std::enable_if_t< std::is_invocable_r_v< labels_t, UnaryOp, Index >, bool > = true>
void labelsUpdate (NodeType node, UnaryOp unary_op, bool propagate=true)
 

Static Public Attributes

static constexpr MapType const Type = MapType::LABEL_SET
 

Protected Member Functions

 LabelsMap (LabelsMap &&other)=default
 
 LabelsMap (LabelsMap const &other)=default
 
template<class Derived2 , class Tree2 >
 LabelsMap (LabelsMap< Derived2, Tree2 > &&other)
 
template<class Derived2 , class Tree2 >
 LabelsMap (LabelsMap< Derived2, Tree2 > const &other)
 
constexpr Derived & derived ()
 
constexpr Derived const & derived () const
 
LabelsBlock< BF > & labelsBlock (pos_t pos)
 
LabelsBlock< BF > const & labelsBlock (pos_t pos) const
 
void onDotFileInfo (std::ostream &out, Index node) const
 
void onInitChildren (Index node, pos_t children)
 
void onInitRoot ()
 
bool onIsPrunable (pos_t block) const
 
void onPropagateChildren (Index node, pos_t children)
 
void onPruneChildren (Index node, pos_t children)
 
void onRead (ReadBuffer &in, std::vector< std::pair< pos_t, BitSet< BF > > > const &nodes)
 
void onWrite (WriteBuffer &out, std::vector< std::pair< pos_t, BitSet< BF > > > const &nodes)
 
LabelsMapoperator= (LabelsMap &&rhs)=default
 
LabelsMapoperator= (LabelsMap const &rhs)=default
 
template<class Derived2 , class Tree2 >
LabelsMapoperator= (LabelsMap< Derived2, Tree2 > &&rhs)
 
template<class Derived2 , class Tree2 >
LabelsMapoperator= (LabelsMap< Derived2, Tree2 > const &rhs)
 
constexpr std::size_t serializedSize (std::vector< std::pair< pos_t, BitSet< BF > > > const &, std::size_t num_nodes) const
 
void swap (LabelsMap &other) noexcept
 

Static Protected Member Functions

static constexpr std::size_t serializedSizeNode () noexcept
 

Detailed Description

template<class Derived, class Tree>
class ufo::LabelsMap< Derived, Tree >

Definition at line 73 of file map.hpp.

Member Typedef Documentation

◆ Code

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::Code = typename Tree::Code

Definition at line 94 of file map.hpp.

◆ Coord

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::Coord = typename Tree::Coord

Definition at line 97 of file map.hpp.

◆ coord_t

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::coord_t = typename Tree::coord_t

Definition at line 98 of file map.hpp.

◆ depth_t

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::depth_t = typename Tree::depth_t

Definition at line 99 of file map.hpp.

◆ Index

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::Index = typename Tree::Index

Definition at line 92 of file map.hpp.

◆ Key

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::Key = typename Tree::Key

Definition at line 95 of file map.hpp.

◆ labels_t

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::labels_t = typename LabelsBlock<BF>::labels_t

Definition at line 105 of file map.hpp.

◆ length_t

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::length_t = typename Tree::length_t

Definition at line 101 of file map.hpp.

◆ Node

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::Node = typename Tree::Node

Definition at line 93 of file map.hpp.

◆ offset_t

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::offset_t = typename Tree::offset_t

Definition at line 100 of file map.hpp.

◆ Point

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::Point = typename Tree::Point

Definition at line 96 of file map.hpp.

◆ pos_t

template<class Derived , class Tree >
using ufo::LabelsMap< Derived, Tree >::pos_t = typename Tree::pos_t

Definition at line 102 of file map.hpp.

Constructor & Destructor Documentation

◆ LabelsMap() [1/3]

template<class Derived , class Tree >
ufo::LabelsMap< Derived, Tree >::LabelsMap ( )
inlineprotected

Definition at line 231 of file map.hpp.

◆ LabelsMap() [2/3]

template<class Derived , class Tree >
template<class Derived2 , class Tree2 >
ufo::LabelsMap< Derived, Tree >::LabelsMap ( LabelsMap< Derived2, Tree2 > const &  other)
inlineprotected

Definition at line 238 of file map.hpp.

◆ LabelsMap() [3/3]

template<class Derived , class Tree >
template<class Derived2 , class Tree2 >
ufo::LabelsMap< Derived, Tree >::LabelsMap ( LabelsMap< Derived2, Tree2 > &&  other)
inlineprotected

Definition at line 244 of file map.hpp.

Member Function Documentation

◆ derived() [1/2]

template<class Derived , class Tree >
constexpr Derived & ufo::LabelsMap< Derived, Tree >::derived ( )
inlineconstexprprotected

Definition at line 296 of file map.hpp.

◆ derived() [2/2]

template<class Derived , class Tree >
constexpr Derived const & ufo::LabelsMap< Derived, Tree >::derived ( ) const
inlineconstexprprotected

Definition at line 298 of file map.hpp.

◆ labels()

template<class Derived , class Tree >
template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
labels_t ufo::LabelsMap< Derived, Tree >::labels ( NodeType  node) const
inline

Definition at line 116 of file map.hpp.

◆ labelsBlock() [1/2]

template<class Derived , class Tree >
LabelsBlock< BF > & ufo::LabelsMap< Derived, Tree >::labelsBlock ( pos_t  pos)
inlineprotected

Definition at line 309 of file map.hpp.

◆ labelsBlock() [2/2]

template<class Derived , class Tree >
LabelsBlock< BF > const & ufo::LabelsMap< Derived, Tree >::labelsBlock ( pos_t  pos) const
inlineprotected

Definition at line 314 of file map.hpp.

◆ labelsPropagationCriteria()

template<class Derived , class Tree >
constexpr LabelsPropagationCriteria ufo::LabelsMap< Derived, Tree >::labelsPropagationCriteria ( ) const
inlineconstexprnoexcept

Definition at line 199 of file map.hpp.

◆ labelsSet()

template<class Derived , class Tree >
template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
void ufo::LabelsMap< Derived, Tree >::labelsSet ( NodeType  node,
labels_t  value,
bool  propagate = true 
)
inline
Note
If NodeType is Index, only propagates up to node and it does not set modified if propagation is false.
Template Parameters
NodeTypeShould be of type Node, Code, Key, or Coord
Parameters
node
value
propagate

Definition at line 141 of file map.hpp.

◆ labelsSetPropagationCriteria()

template<class Derived , class Tree >
void ufo::LabelsMap< Derived, Tree >::labelsSetPropagationCriteria ( LabelsPropagationCriteria  prop_criteria,
bool  propagate = true 
)
inline

Definition at line 205 of file map.hpp.

◆ labelsUpdate() [1/2]

template<class Derived , class Tree >
template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
void ufo::LabelsMap< Derived, Tree >::labelsUpdate ( NodeType  node,
label_t  value,
bool  propagate = true 
)
inline

Definition at line 158 of file map.hpp.

◆ labelsUpdate() [2/2]

template<class Derived , class Tree >
template<class NodeType , class UnaryOp , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true, std::enable_if_t< std::is_invocable_r_v< labels_t, UnaryOp, Index >, bool > = true>
void ufo::LabelsMap< Derived, Tree >::labelsUpdate ( NodeType  node,
UnaryOp  unary_op,
bool  propagate = true 
)
inline

Definition at line 173 of file map.hpp.

◆ onDotFileInfo()

template<class Derived , class Tree >
void ufo::LabelsMap< Derived, Tree >::onDotFileInfo ( std::ostream &  out,
Index  node 
) const
inlineprotected

Definition at line 468 of file map.hpp.

◆ onInitChildren()

template<class Derived , class Tree >
void ufo::LabelsMap< Derived, Tree >::onInitChildren ( Index  node,
pos_t  children 
)
inlineprotected

Definition at line 333 of file map.hpp.

◆ onInitRoot()

template<class Derived , class Tree >
void ufo::LabelsMap< Derived, Tree >::onInitRoot ( )
inlineprotected

Definition at line 325 of file map.hpp.

◆ onIsPrunable()

template<class Derived , class Tree >
bool ufo::LabelsMap< Derived, Tree >::onIsPrunable ( pos_t  block) const
inlineprotected

Definition at line 395 of file map.hpp.

◆ onPropagateChildren()

template<class Derived , class Tree >
void ufo::LabelsMap< Derived, Tree >::onPropagateChildren ( Index  node,
pos_t  children 
)
inlineprotected

Definition at line 344 of file map.hpp.

◆ onPruneChildren()

template<class Derived , class Tree >
void ufo::LabelsMap< Derived, Tree >::onPruneChildren ( Index  node,
pos_t  children 
)
inlineprotected

Definition at line 338 of file map.hpp.

◆ onRead()

template<class Derived , class Tree >
void ufo::LabelsMap< Derived, Tree >::onRead ( ReadBuffer in,
std::vector< std::pair< pos_t, BitSet< BF > > > const &  nodes 
)
inlineprotected

Definition at line 420 of file map.hpp.

◆ onWrite()

template<class Derived , class Tree >
void ufo::LabelsMap< Derived, Tree >::onWrite ( WriteBuffer out,
std::vector< std::pair< pos_t, BitSet< BF > > > const &  nodes 
)
inlineprotected

Definition at line 443 of file map.hpp.

◆ operator=() [1/2]

template<class Derived , class Tree >
template<class Derived2 , class Tree2 >
LabelsMap & ufo::LabelsMap< Derived, Tree >::operator= ( LabelsMap< Derived2, Tree2 > &&  rhs)
inlineprotected

Definition at line 275 of file map.hpp.

◆ operator=() [2/2]

template<class Derived , class Tree >
template<class Derived2 , class Tree2 >
LabelsMap & ufo::LabelsMap< Derived, Tree >::operator= ( LabelsMap< Derived2, Tree2 > const &  rhs)
inlineprotected

Definition at line 268 of file map.hpp.

◆ serializedSize()

template<class Derived , class Tree >
constexpr std::size_t ufo::LabelsMap< Derived, Tree >::serializedSize ( std::vector< std::pair< pos_t, BitSet< BF > > > const &  ,
std::size_t  num_nodes 
) const
inlineconstexprprotected

Definition at line 413 of file map.hpp.

◆ serializedSizeNode()

template<class Derived , class Tree >
static constexpr std::size_t ufo::LabelsMap< Derived, Tree >::serializedSizeNode ( )
inlinestaticconstexprprotectednoexcept

Definition at line 408 of file map.hpp.

◆ swap()

template<class Derived , class Tree >
void ufo::LabelsMap< Derived, Tree >::swap ( LabelsMap< Derived, Tree > &  other)
inlineprotectednoexcept

Definition at line 285 of file map.hpp.

Friends And Related Symbol Documentation

◆ LabelsMap

template<class Derived , class Tree >
template<class Derived2 , class Tree2 >
friend class LabelsMap
friend

Definition at line 77 of file map.hpp.

Member Data Documentation

◆ Type

template<class Derived , class Tree >
constexpr MapType const ufo::LabelsMap< Derived, Tree >::Type = MapType::LABEL_SET
staticconstexpr

Definition at line 89 of file map.hpp.


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