27#ifndef NAVMAP_CORE__COMBINE_HPP_
28#define NAVMAP_CORE__COMBINE_HPP_
59 double cap{std::numeric_limits<double>::infinity()};
82 NavMap & nm,
const std::string & dst,
const std::string & src,
CombineOp op,
Core container and data structures for EasyNav navigable meshes.
Definition Combine.hpp:39
CombineOp
How a source value s is combined into the destination value d (as costmap_2d's update modes).
Definition Combine.hpp:43
@ OVERWRITE
d = s, except where s is unknown
Definition Combine.hpp:44
@ MAX
d = max(d, s); s replaces an unknown d; an unknown s is ignored
Definition Combine.hpp:46
@ ADD
d = min(d + s, cap); s replaces an unknown d; an unknown s is ignored
Definition Combine.hpp:49
@ MIN
d = min(d, s); s replaces an unknown d; an unknown s is ignored
Definition Combine.hpp:48
@ MAX_KEEP_UNKNOWN
as MAX, but an unknown d stays unknown
Definition Combine.hpp:47
@ TRUE_OVERWRITE
d = s, unknown included
Definition Combine.hpp:45
std::ptrdiff_t combine_layer(NavMap &nm, const std::string &dst, const std::string &src, CombineOp op, const CombineOptions &options={})
Combine layer src into layer dst cell by cell with op.
Definition Combine.cpp:141
Options of combine_layer().
Definition Combine.hpp:54
Options of combine_layer().
Definition Combine.hpp:54
std::string provenance
U8 layer recording which source set each cell (created if absent, 0 = none). Empty: no record.
Definition Combine.hpp:61
std::vector< NavCelId > cells
Cells to combine (e.g. the source's changed()); all cells if empty.
Definition Combine.hpp:56
double cap
ADD saturates here (and at the range of the destination type).
Definition Combine.hpp:59
std::uint8_t source_id
Value written to the provenance layer for this source.
Definition Combine.hpp:63
CombineOp
How a source value s is combined into the destination value d (as costmap_2d's update modes).
Definition Combine.hpp:43