MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / removeRenderablesOfObject

Method removeRenderablesOfObject

src/core/renderables/renderable.cpp:598–626  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

596}
597
598void MapRenderables::removeRenderablesOfObject(const Object* object, bool mark_area_as_dirty)
599{
600 for (auto& color : *this)
601 {
602 auto obj = color.second.find(object);
603 if (obj != color.second.end())
604 {
605 if (mark_area_as_dirty)
606 {
607 // We don't want to loop over every dot in an area ...
608 QRectF extent = object->getExtent();
609 if (!extent.isValid())
610 {
611 // ... because here it gets expensive
612 for (const auto& renderables : *obj->second)
613 {
614 for (const auto* renderable : renderables.second)
615 {
616 extent = extent.isValid() ? extent.united(renderable->getExtent()) : renderable->getExtent();
617 }
618 }
619 }
620 map->setObjectAreaDirty(extent);
621 }
622
623 color.second.erase(obj);
624 }
625 }
626}
627
628void MapRenderables::clear(bool mark_area_as_dirty)
629{

Callers 1

operator()Method · 0.45

Calls 5

setObjectAreaDirtyMethod · 0.80
eraseMethod · 0.80
findMethod · 0.45
endMethod · 0.45
isValidMethod · 0.45

Tested by

no test coverage detected