1#if !defined(ISCE_UNWRAP_ICU_LABELMAP_ICC)
2#error "LabelMap.icc is an implementation detail of class LabelMap"
8namespace isce3::unwrap::icu
20uint8_t LabelMap::nextlabel()
22 if (_labels.size() > UINT8_MAX)
24 throw std::overflow_error(
"exceeded max connected components\n");
27 uint8_t newlabel = _labels.size();
28 _labels.push_back(newlabel);
32inline uint8_t LabelMap::getlabel(
const uint8_t l)
const {
return _labels[l]; }
35void LabelMap::setlabel(
const uint8_t oldlabel,
const uint8_t newlabel)
37 for (
size_t l = 1; l < _labels.size(); ++l)
39 if (_labels[l] == oldlabel) { _labels[l] = newlabel; }
43inline size_t LabelMap::size()
const {
return _labels.size(); }