From fd3a0d4a9dcbfff9277660d3c666f4783ec70038 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Tue, 5 May 2015 22:27:05 +0200 Subject: [PATCH] fix name handling of geoemtryobjectname nodes Signed-off-by: Kim Kulling --- code/OpenGEXImporter.cpp | 12 +++++++++--- code/OpenGEXImporter.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/code/OpenGEXImporter.cpp b/code/OpenGEXImporter.cpp index 6e4fb33af..fde5e3d45 100644 --- a/code/OpenGEXImporter.cpp +++ b/code/OpenGEXImporter.cpp @@ -223,6 +223,7 @@ OpenGEXImporter::OpenGEXImporter() , m_currentNode( NULL ) , m_currentMesh( NULL ) , m_currentMaterial( NULL ) +, m_tokenType( Grammar::NoneType ) , m_nodeStack() , m_unresolvedRefStack() { // empty @@ -406,7 +407,12 @@ void OpenGEXImporter::handleNameNode( DDLNode *node, aiScene *pScene ) { } const std::string name( val->getString() ); - m_currentNode->mName.Set( name.c_str() ); + if( m_tokenType == Grammar::GeometryNodeToken ) { + m_currentNode->mName.Set( name.c_str() ); + } else if( m_tokenType == Grammar::MaterialToken ) { + + } + } } @@ -462,6 +468,7 @@ void OpenGEXImporter::handleMaterialRefNode( ODDLParser::DDLNode *node, aiScene void OpenGEXImporter::handleGeometryNode( DDLNode *node, aiScene *pScene ) { aiNode *newNode = new aiNode; pushNode( newNode, pScene ); + m_tokenType = Grammar::GeometryNodeToken; m_currentNode = newNode; handleNodes( node, pScene ); @@ -768,9 +775,8 @@ static ColorType getColorType( Identifier *id ) { void OpenGEXImporter::handleMaterialNode( ODDLParser::DDLNode *node, aiScene *pScene ) { m_currentMaterial = new aiMaterial; m_materialCache.push_back( m_currentMaterial ); - + m_tokenType = Grammar::MaterialToken; handleNodes( node, pScene ); - } //------------------------------------------------------------------------------------------------ diff --git a/code/OpenGEXImporter.h b/code/OpenGEXImporter.h index ac72e8224..d187c4ac4 100644 --- a/code/OpenGEXImporter.h +++ b/code/OpenGEXImporter.h @@ -179,6 +179,7 @@ private: VertexContainer m_currentVertices; aiMesh *m_currentMesh; aiMaterial *m_currentMaterial; + int m_tokenType; std::vector m_materialCache; std::vector m_nodeStack; std::vector m_unresolvedRefStack;