From 9f80a2a2a9e51a688e44baf75cc235a0e9895e2f Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Sat, 29 Nov 2014 11:33:49 +0100 Subject: [PATCH] update parser. Signed-off-by: Kim Kulling --- code/OpenGEXParser.cpp | 36 ++++++++++++++++++++++++++++++++++-- code/OpenGEXParser.h | 3 +++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/code/OpenGEXParser.cpp b/code/OpenGEXParser.cpp index 03f222d1c..3dcc83e44 100644 --- a/code/OpenGEXParser.cpp +++ b/code/OpenGEXParser.cpp @@ -226,10 +226,19 @@ bool OpenGEXParser::parseNextNode() { //------------------------------------------------------------------------------------------------ bool OpenGEXParser::getNodeHeader( std::string &name ) { bool success( false ); - if( m_nodeTypeStack.back() == MetricNode ) { + TokenType tokenType( m_nodeTypeStack.back() ); + if( tokenType == MetricNode ) { if( getMetricAttributeKey( name ) ) { success = true; } + } else if( tokenType == GeometryNode ) { + + } else if( tokenType == GeometryObject ) { + + } else if( tokenType == Material ) { + + } else { + DefaultLogger::get()->warn( "Unknown token type in file." ); } return success; @@ -307,9 +316,17 @@ bool OpenGEXParser::getNodeData( const std::string &nodeType ) { return false; } - TokenType type( m_nodeTypeStack.back() ); + const TokenType type( m_nodeTypeStack.back() ); if( type == MetricNode ) { success = onMetricNode( nodeType ); + } else if( type == GeometryNode ) { + success = onGeometryNode(); + } else if( type == GeometryObject ) { + success = onGeometryObject(); + } else if( type == Material ) { + success = onMaterial(); + } else { + DefaultLogger::get()->warn( "Unknown token type in file." ); } if( !getBracketClose() ) { @@ -369,6 +386,21 @@ bool OpenGEXParser::onMetricNode( const std::string &attribName ) { return success; } +//------------------------------------------------------------------------------------------------ +bool OpenGEXParser::onGeometryNode() { + return true; +} + +//------------------------------------------------------------------------------------------------ +bool OpenGEXParser::onGeometryObject() { + return true; +} + +//------------------------------------------------------------------------------------------------ +bool OpenGEXParser::onMaterial() { + return true; +} + //------------------------------------------------------------------------------------------------ } // Namespace OpenGEX diff --git a/code/OpenGEXParser.h b/code/OpenGEXParser.h index 82b30e4ae..64debe43c 100644 --- a/code/OpenGEXParser.h +++ b/code/OpenGEXParser.h @@ -97,6 +97,9 @@ protected: bool getNodeData( const std::string &nodeType ); bool getMetricAttributeKey( std::string &attribName ); bool onMetricNode( const std::string &attribName ); + bool onGeometryNode(); + bool onGeometryObject(); + bool onMaterial(); private: OpenGEXParser( const OpenGEXParser & );