Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

@@ -0,0 +1,75 @@
/**
**
** @RDE_HEADER@
** Node visitor for GeometryModel.
** $Id$
** $HeadURL$
** $Author$
**
** -----------------------------------------------------------------------------------------------
**
** Hardware-Environment: Intel-PC
** Software-Environment: Windows 7, Qt 5.4. ArcGIS 10.2.5
**
** Language ........: C++ 11
**
** -----------------------------------------------------------------------------------------------
**
** Author ...........: Jörg Turla, SPD G, Tel. 3132
**
** -----------------------------------------------------------------------------------------------
**
** Notes .........:
**
** 07.07.2016, JT : First edition for use with Qt5
**
** -----------------------------------------------------------------------------------------------
*/
#include "geometry_node_visitor.h"
namespace SituationMap
{
GeometryNodeVisitor::GeometryNodeVisitor(GeometryModel *geoModel) : m_geometryModel(geoModel) {;}
bool GeometryNodeVisitor::traverse()
{
if (!m_geometryModel)
return true;
return traverse(m_geometryModel->getRootNode());
} // bool GeometryNodeVisitor::traverse()
bool GeometryNodeVisitor::traverse(GeometryModel::Node node)
{
if (!m_geometryModel)
return true;
if (node.isValid())
{
const GeometryModel::PrimitiveType primitiveType = m_geometryModel->getType(node);
if ((GeometryModel::PrimitiveType::RootNode == primitiveType) || (GeometryModel::PrimitiveType::Node == primitiveType))
{
if (node.hasChildNodes())
{
node = node.firstChildNode();
while (node.isValid())
{
if (!traverse(node))
return false;
node = node.next();
}
}
}
if (!apply(m_geometryModel, node, primitiveType))
return false;
} // if
return true;
}
} // namespace SituationMap