Initial commit
This commit is contained in:
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
|
||||
Reference in new issue
Block a user