summaryrefslogtreecommitdiff
path: root/apps/opencs/view/render/cell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'apps/opencs/view/render/cell.cpp')
-rw-r--r--apps/opencs/view/render/cell.cpp50
1 files changed, 22 insertions, 28 deletions
diff --git a/apps/opencs/view/render/cell.cpp b/apps/opencs/view/render/cell.cpp
index 3395e90e11..418bcee696 100644
--- a/apps/opencs/view/render/cell.cpp
+++ b/apps/opencs/view/render/cell.cpp
@@ -1,9 +1,9 @@
#include "cell.hpp"
#include <osg/PositionAttitudeTransform>
-#include <osg/Geode>
#include <osg/Group>
+#include <memory>
#include <components/misc/stringops.hpp>
#include <components/esm3/loadcell.hpp>
#include <components/esm3/loadland.hpp>
@@ -43,7 +43,7 @@ namespace CSVRender
void operator()(osg::Node* node, osg::NodeVisitor* nv) override
{
traverse(node, nv);
- CellNodeContainer* container = static_cast<CellNodeContainer*>(node->getUserData());
+ auto* container = dynamic_cast<CellNodeContainer*>(node->getUserData());
container->getCell()->updateLand();
}
};
@@ -51,8 +51,7 @@ namespace CSVRender
bool CSVRender::Cell::removeObject (const std::string& id)
{
- std::map<std::string, Object *>::iterator iter =
- mObjects.find (Misc::StringUtils::lowerCase (id));
+ auto iter = mObjects.find (Misc::StringUtils::lowerCase (id));
if (iter==mObjects.end())
return false;
@@ -193,9 +192,8 @@ CSVRender::Cell::Cell (CSMWorld::Data& data, osg::Group* rootNode, const std::st
CSVRender::Cell::~Cell()
{
- for (std::map<std::string, Object *>::iterator iter (mObjects.begin());
- iter!=mObjects.end(); ++iter)
- delete iter->second;
+ for (auto & mObject : mObjects)
+ delete mObject.second;
mCellNode->getParent(0)->removeChild(mCellNode);
}
@@ -210,9 +208,8 @@ bool CSVRender::Cell::referenceableDataChanged (const QModelIndex& topLeft,
{
bool modified = false;
- for (std::map<std::string, Object *>::iterator iter (mObjects.begin());
- iter!=mObjects.end(); ++iter)
- if (iter->second->referenceableDataChanged (topLeft, bottomRight))
+ for (auto & mObject : mObjects)
+ if (mObject.second->referenceableDataChanged (topLeft, bottomRight))
modified = true;
return modified;
@@ -226,9 +223,8 @@ bool CSVRender::Cell::referenceableAboutToBeRemoved (const QModelIndex& parent,
bool modified = false;
- for (std::map<std::string, Object *>::iterator iter (mObjects.begin());
- iter!=mObjects.end(); ++iter)
- if (iter->second->referenceableAboutToBeRemoved (parent, start, end))
+ for (auto & mObject : mObjects)
+ if (mObject.second->referenceableAboutToBeRemoved (parent, start, end))
modified = true;
return modified;
@@ -269,13 +265,13 @@ bool CSVRender::Cell::referenceDataChanged (const QModelIndex& topLeft,
// perform update and remove where needed
bool modified = false;
- std::map<std::string, Object *>::iterator iter = mObjects.begin();
+ auto iter = mObjects.begin();
while (iter!=mObjects.end())
{
if (iter->second->referenceDataChanged (topLeft, bottomRight))
modified = true;
- std::map<std::string, bool>::iterator iter2 = ids.find (iter->first);
+ auto iter2 = ids.find (iter->first);
if (iter2!=ids.end())
{
@@ -294,12 +290,12 @@ bool CSVRender::Cell::referenceDataChanged (const QModelIndex& topLeft,
}
// add new objects
- for (std::map<std::string, bool>::iterator mapIter (ids.begin()); mapIter!=ids.end(); ++mapIter)
+ for (auto & id : ids)
{
- if (!mapIter->second)
+ if (!id.second)
{
mObjects.insert (std::make_pair (
- mapIter->first, new Object (mData, mCellNode, mapIter->first, false)));
+ id.first, new Object (mData, mCellNode, id.first, false)));
modified = true;
}
@@ -539,11 +535,11 @@ void CSVRender::Cell::setCellArrows (int mask)
{
for (int i=0; i<4; ++i)
{
- CellArrow::Direction direction = static_cast<CellArrow::Direction> (1<<i);
+ auto direction = static_cast<CellArrow::Direction> (1<<i);
bool enable = mask & direction;
- if (enable!=(mCellArrows[i].get()!=nullptr))
+ if (enable!=(mCellArrows[i]!=nullptr))
{
if (enable)
mCellArrows[i] = std::make_unique<CellArrow>(mCellNode, direction, mCoordinates);
@@ -586,10 +582,9 @@ std::vector<osg::ref_ptr<CSVRender::TagBase> > CSVRender::Cell::getSelection (un
std::vector<osg::ref_ptr<TagBase> > result;
if (elementMask & Mask_Reference)
- for (std::map<std::string, Object *>::const_iterator iter (mObjects.begin());
- iter!=mObjects.end(); ++iter)
- if (iter->second->getSelected())
- result.push_back (iter->second->getTag());
+ for (const auto & mObject : mObjects)
+ if (mObject.second->getSelected())
+ result.push_back (mObject.second->getTag());
if (mPathgrid && elementMask & Mask_Pathgrid)
if (mPathgrid->isSelected())
result.emplace_back(mPathgrid->getTag());
@@ -602,10 +597,9 @@ std::vector<osg::ref_ptr<CSVRender::TagBase> > CSVRender::Cell::getEdited (unsig
std::vector<osg::ref_ptr<TagBase> > result;
if (elementMask & Mask_Reference)
- for (std::map<std::string, Object *>::const_iterator iter (mObjects.begin());
- iter!=mObjects.end(); ++iter)
- if (iter->second->isEdited())
- result.push_back (iter->second->getTag());
+ for (const auto & mObject : mObjects)
+ if (mObject.second->isEdited())
+ result.push_back (mObject.second->getTag());
return result;
}