Переглянути джерело

colladaloader: fix <extra> handling.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@730 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
aramis_acg 15 роки тому
батько
коміт
367a452ed9
1 змінених файлів з 6 додано та 15 видалено
  1. 6 15
      code/ColladaParser.cpp

+ 6 - 15
code/ColladaParser.cpp

@@ -1113,7 +1113,7 @@ void ColladaParser::ReadEffectProfileCommon( Collada::Effect& pEffect)
 				pEffect.mParams[sid] = EffectParam();
 				ReadEffectParam( pEffect.mParams[sid]);
 			} 
-			else if( IsElement( "technique"))
+			else if( IsElement( "technique") || IsElement( "extra"))
 			{
 				// just syntactic sugar
 			}
@@ -1182,20 +1182,11 @@ void ColladaParser::ReadEffectProfileCommon( Collada::Effect& pEffect)
 				SkipElement();
 			}
 		}
-		else if( mReader->getNodeType() == irr::io::EXN_ELEMENT_END) 
-		{
-			if( strcmp( mReader->getNodeName(), "technique") == 0)
-			{
-				// ignore silently - just syntactic sugar
-			}
-			else if( strcmp( mReader->getNodeName(), "profile_COMMON") == 0)
+		else if( mReader->getNodeType() == irr::io::EXN_ELEMENT_END) {
+			if( strcmp( mReader->getNodeName(), "profile_COMMON") == 0)
 			{
 				break;
-			} else
-			{
-				// might also be the end of "phong", "blinn", "constant" or "lambert"
-				// ThrowException( "Expected end of \"profile_COMMON\" element.");
-			}
+			} 
 		}
 	}
 }
@@ -1221,7 +1212,7 @@ void ColladaParser::ReadSamplerProperties( Sampler& out )
 				out.mWrapU = ReadBoolFromTextContent();
 				TestClosing( "wrapV");
 			}
-			if( IsElement( "mirrorU"))		{
+			else if( IsElement( "mirrorU"))		{
 				out.mMirrorU = ReadBoolFromTextContent();
 				TestClosing( "mirrorU");
 			}
@@ -1348,7 +1339,7 @@ void ColladaParser::ReadEffectColor( aiColor4D& pColor, Sampler& pSampler)
 				}
 				else SkipElement();
 			}
-			else
+			else if( !IsElement( "extra"))
 			{
 				// ignore the rest
 				SkipElement();