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-9d2fd5bffc1fpull/1/head
parent
ad79da7aa1
commit
84f8e3c68c
|
@ -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';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue