FIX: Change quaternion orientation for B3D loader (this format was forgotten with r502).

FIX: MS3D loader assigns group names to mesh nodes, possibly leading to two nodes with the same name if a group name is the name of a bone as well. This prevents animations from working properly.

These changes are merged with the 1.1 branch as well. 

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@705 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
pull/1/head
aramis_acg 2010-04-24 00:18:34 +00:00
parent a85b851442
commit a53360aa4d
2 changed files with 8 additions and 2 deletions

View File

@ -170,7 +170,8 @@ aiVector3D B3DImporter::ReadVec3(){
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
aiQuaternion B3DImporter::ReadQuat(){ aiQuaternion B3DImporter::ReadQuat(){
float w=ReadFloat(); // (aramis_acg) Fix to adapt the loader to changed quat orientation
float w=-ReadFloat();
float x=ReadFloat(); float x=ReadFloat();
float y=ReadFloat(); float y=ReadFloat();
float z=ReadFloat(); float z=ReadFloat();

View File

@ -552,7 +552,12 @@ void MS3DImporter::InternReadFile( const std::string& pFile,
aiNode* nd = rt->mChildren[i] = new aiNode(); aiNode* nd = rt->mChildren[i] = new aiNode();
const TempGroup& g = groups[i]; const TempGroup& g = groups[i];
nd->mName = aiString(g.name);
// we need to generate an unique name for all mesh nodes.
// since we want to keep the group name, a prefix is
// prepended.
nd->mName = aiString("<MS3DMesh>_");
nd->mName.Append(g.name);
nd->mParent = rt; nd->mParent = rt;
nd->mMeshes = new unsigned int[nd->mNumMeshes = 1]; nd->mMeshes = new unsigned int[nd->mNumMeshes = 1];