UFO 1.0.0
An Efficient Probabilistic 3D Mapping Framework That Embraces the Unknown
Loading...
Searching...
No Matches
ufo::CostMap< 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 cost_t = typename CostBlock< BF >::cost_t
 
using depth_t = typename Tree::depth_t
 
using Index = typename Tree::Index
 
using Key = typename Tree::Key
 
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>
cost_t cost (NodeType node) const
 
constexpr CostPropagationCriteria costPropagationCriteria () const noexcept
 
template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
void costSet (NodeType node, cost_t value, bool propagate=true)
 
void costSetPropagationCriteria (CostPropagationCriteria prop_criteria, bool propagate=true)
 
template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
void costUpdate (NodeType node, cost_t change, 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< cost_t, UnaryOp, Index >, bool > = true>
void costUpdate (NodeType node, UnaryOp unary_op, bool propagate=true)
 

Static Public Attributes

static constexpr MapType const Type = MapType::COST
 

Protected Member Functions

 CostMap (CostMap &&other)=default
 
 CostMap (CostMap const &other)=default
 
template<class Derived2 , class Tree2 >
 CostMap (CostMap< Derived2, Tree2 > &&other)
 
template<class Derived2 , class Tree2 >
 CostMap (CostMap< Derived2, Tree2 > const &other)
 
CostBlock< BF > & costBlock (pos_t pos)
 
CostBlock< BF > const & costBlock (pos_t pos) const
 
constexpr Derived & derived ()
 
constexpr Derived const & derived () const
 
void onDotFileInfo (std::ostream &out, Index node) const
 
void onInitChildren (Index node, pos_t children)
 
void onInitRoot ()
 
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)
 
CostMapoperator= (CostMap &&rhs)=default
 
CostMapoperator= (CostMap const &rhs)=default
 
template<class Derived2 , class Tree2 >
CostMapoperator= (CostMap< Derived2, Tree2 > &&rhs)
 
template<class Derived2 , class Tree2 >
CostMapoperator= (CostMap< Derived2, Tree2 > const &rhs)
 
bool prunable (pos_t block) const
 
constexpr std::size_t serializedSize (std::vector< std::pair< pos_t, BitSet< BF > > > const &, std::size_t num_nodes) const
 
void swap (CostMap &other) noexcept
 

Static Protected Member Functions

static constexpr std::size_t serializedSizeNode () noexcept
 

Detailed Description

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

Definition at line 69 of file map.hpp.

Member Typedef Documentation

◆ Code

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

Definition at line 90 of file map.hpp.

◆ Coord

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

Definition at line 93 of file map.hpp.

◆ coord_t

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

Definition at line 94 of file map.hpp.

◆ cost_t

template<class Derived , class Tree >
using ufo::CostMap< Derived, Tree >::cost_t = typename CostBlock<BF>::cost_t

Definition at line 101 of file map.hpp.

◆ depth_t

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

Definition at line 95 of file map.hpp.

◆ Index

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

Definition at line 88 of file map.hpp.

◆ Key

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

Definition at line 91 of file map.hpp.

◆ length_t

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

Definition at line 97 of file map.hpp.

◆ Node

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

Definition at line 89 of file map.hpp.

◆ offset_t

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

Definition at line 96 of file map.hpp.

◆ Point

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

Definition at line 92 of file map.hpp.

◆ pos_t

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

Definition at line 98 of file map.hpp.

Constructor & Destructor Documentation

◆ CostMap() [1/3]

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

Definition at line 244 of file map.hpp.

◆ CostMap() [2/3]

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

Definition at line 251 of file map.hpp.

◆ CostMap() [3/3]

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

Definition at line 256 of file map.hpp.

Member Function Documentation

◆ cost()

template<class Derived , class Tree >
template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
cost_t ufo::CostMap< Derived, Tree >::cost ( NodeType  node) const
inline

Definition at line 112 of file map.hpp.

◆ costBlock() [1/2]

template<class Derived , class Tree >
CostBlock< BF > & ufo::CostMap< Derived, Tree >::costBlock ( pos_t  pos)
inlineprotected

Definition at line 318 of file map.hpp.

◆ costBlock() [2/2]

template<class Derived , class Tree >
CostBlock< BF > const & ufo::CostMap< Derived, Tree >::costBlock ( pos_t  pos) const
inlineprotected

Definition at line 323 of file map.hpp.

◆ costPropagationCriteria()

template<class Derived , class Tree >
constexpr CostPropagationCriteria ufo::CostMap< Derived, Tree >::costPropagationCriteria ( ) const
inlineconstexprnoexcept

Definition at line 214 of file map.hpp.

◆ costSet()

template<class Derived , class Tree >
template<class NodeType , std::enable_if_t< Tree::template is_node_type_v< NodeType >, bool > = true>
void ufo::CostMap< Derived, Tree >::costSet ( NodeType  node,
cost_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 137 of file map.hpp.

◆ costSetPropagationCriteria()

template<class Derived , class Tree >
void ufo::CostMap< Derived, Tree >::costSetPropagationCriteria ( CostPropagationCriteria  prop_criteria,
bool  propagate = true 
)
inline

Definition at line 219 of file map.hpp.

◆ costUpdate() [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::CostMap< Derived, Tree >::costUpdate ( NodeType  node,
cost_t  change,
bool  propagate = true 
)
inline

Definition at line 166 of file map.hpp.

◆ costUpdate() [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< cost_t, UnaryOp, Index >, bool > = true>
void ufo::CostMap< Derived, Tree >::costUpdate ( NodeType  node,
UnaryOp  unary_op,
bool  propagate = true 
)
inline

Definition at line 179 of file map.hpp.

◆ derived() [1/2]

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

Definition at line 305 of file map.hpp.

◆ derived() [2/2]

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

Definition at line 307 of file map.hpp.

◆ onDotFileInfo()

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

Definition at line 463 of file map.hpp.

◆ onInitChildren()

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

Definition at line 342 of file map.hpp.

◆ onInitRoot()

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

Definition at line 334 of file map.hpp.

◆ onPropagateChildren()

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

Definition at line 352 of file map.hpp.

◆ onPruneChildren()

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

Definition at line 347 of file map.hpp.

◆ onRead()

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

Definition at line 415 of file map.hpp.

◆ onWrite()

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

Definition at line 438 of file map.hpp.

◆ operator=() [1/2]

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

Definition at line 287 of file map.hpp.

◆ operator=() [2/2]

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

Definition at line 280 of file map.hpp.

◆ prunable()

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

Definition at line 390 of file map.hpp.

◆ serializedSize()

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

Definition at line 408 of file map.hpp.

◆ serializedSizeNode()

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

Definition at line 403 of file map.hpp.

◆ swap()

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

Definition at line 297 of file map.hpp.

Friends And Related Symbol Documentation

◆ CostMap

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

Definition at line 73 of file map.hpp.

Member Data Documentation

◆ Type

template<class Derived , class Tree >
constexpr MapType const ufo::CostMap< Derived, Tree >::Type = MapType::COST
staticconstexpr

Definition at line 85 of file map.hpp.


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