Temporary fix: collada loader strips 'file://' from paths now.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@289 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
pull/1/head
aramis_acg 2009-01-12 00:00:13 +00:00
parent ad79da7aa1
commit 84f8e3c68c
2 changed files with 21 additions and 1 deletions

View File

@ -382,6 +382,23 @@ const aiString& ColladaLoader::FindFilenameForEffectTexture( const ColladaParser
throw new ImportErrorException( boost::str( boost::format( "Unable to resolve effect texture entry \"%s\", ended up at ID \"%s\".") % pName % name));
static aiString result;
result.Set( imIt->second.mFileName);
result.Set( imIt->second.mFileName );
ConvertPath(result);
return result;
}
// ------------------------------------------------------------------------------------------------
// Convert a path read from a collada file to the usual representation
void ColladaLoader::ConvertPath (aiString& ss)
{
// TODO: collada spec, p 22. Handle URI correctly.
// For the moment we're just stripping the file:// away to make it work.
// Windoes doesn't seem to be able to find stuff like
// 'file://..\LWO\LWO2\MappingModes\earthSpherical.jpg'
if (0 == ::strncmp(ss.data,"file://",7))
{
ss.length -= 7;
::memmove(ss.data,ss.data+7,ss.length);
ss.data[ss.length] = '\0';
}
}

View File

@ -121,6 +121,9 @@ protected:
/** Resolves the texture name for the given effect texture entry */
const aiString& FindFilenameForEffectTexture( const ColladaParser& pParser, const Collada::Effect& pEffect, const std::string& pName);
/** Converts a path read from a collada file to the usual representation */
void ConvertPath (aiString& ss);
protected:
/** Filename, for a verbose error message */
std::string mFileName;