(a) ) )
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
}
mOutput << startstr << "";
@@ -1113,18 +1139,18 @@ void ColladaExporter::WriteGeometry( size_t pIndex)
{
mOutput << startstr << "" << endstr;
PushTag();
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
if( mesh->HasNormals() )
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
for( size_t a = 0; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++a )
{
if( mesh->HasTextureCoords(static_cast(a)) )
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
}
for( size_t a = 0; a < AI_MAX_NUMBER_OF_COLOR_SETS; ++a )
{
if( mesh->HasVertexColors(static_cast(a) ) )
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
}
mOutput << startstr << "";
@@ -1173,13 +1199,13 @@ void ColladaExporter::WriteFloatArray( const std::string& pIdString, FloatDataTy
return;
}
- std::string arrayId = pIdString + "-array";
+ std::string arrayId = XMLIDEncode(pIdString) + "-array";
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
PushTag();
// source array
- mOutput << startstr << " ";
+ mOutput << startstr << " ";
PushTag();
if( pType == FloatType_TexCoord2 )
@@ -1265,11 +1291,12 @@ void ColladaExporter::WriteFloatArray( const std::string& pIdString, FloatDataTy
// Writes the scene library
void ColladaExporter::WriteSceneLibrary()
{
- const std::string scene_name_escaped = XMLEscape(mScene->mRootNode->mName.C_Str());
+ const std::string sceneName = XMLEscape(mScene->mRootNode->mName.C_Str());
+ const std::string sceneId = XMLIDEncode(mScene->mRootNode->mName.C_Str());
mOutput << startstr << "" << endstr;
PushTag();
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
PushTag();
// start recursive write at the root node
@@ -1300,7 +1327,7 @@ void ColladaExporter::WriteAnimationLibrary(size_t pIndex)
idstr = idstr + ending;
}
- const std::string idstrEscaped = XMLEscape(idstr);
+ const std::string idstrEscaped = XMLIDEncode(idstr);
mOutput << startstr << "" << endstr;
PushTag();
@@ -1372,13 +1399,13 @@ void ColladaExporter::WriteAnimationLibrary(size_t pIndex)
}
const std::string node_idstr = nodeAnim->mNodeName.data + std::string("_matrix-interpolation");
- std::string arrayId = node_idstr + "-array";
+ std::string arrayId = XMLIDEncode(node_idstr) + "-array";
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
PushTag();
// source array
- mOutput << startstr << " ";
+ mOutput << startstr << " ";
for( size_t a = 0; a < names.size(); ++a ) {
mOutput << names[a] << " ";
}
@@ -1387,7 +1414,7 @@ void ColladaExporter::WriteAnimationLibrary(size_t pIndex)
mOutput << startstr << "" << endstr;
PushTag();
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
PushTag();
mOutput << startstr << "" << endstr;
@@ -1409,12 +1436,12 @@ void ColladaExporter::WriteAnimationLibrary(size_t pIndex)
{
// samplers
const std::string node_idstr = nodeAnim->mNodeName.data + std::string("_matrix-sampler");
- mOutput << startstr << "" << endstr;
+ mOutput << startstr << "" << endstr;
PushTag();
- mOutput << startstr << "mNodeName.data + std::string("_matrix-input") ) << "\"/>" << endstr;
- mOutput << startstr << "mNodeName.data + std::string("_matrix-output") ) << "\"/>" << endstr;
- mOutput << startstr << "mNodeName.data + std::string("_matrix-interpolation") ) << "\"/>" << endstr;
+ mOutput << startstr << "mNodeName.data + std::string("_matrix-input") ) << "\"/>" << endstr;
+ mOutput << startstr << "mNodeName.data + std::string("_matrix-output") ) << "\"/>" << endstr;
+ mOutput << startstr << "mNodeName.data + std::string("_matrix-interpolation") ) << "\"/>" << endstr;
PopTag();
mOutput << startstr << "" << endstr;
@@ -1426,7 +1453,7 @@ void ColladaExporter::WriteAnimationLibrary(size_t pIndex)
{
// channels
- mOutput << startstr << "mNodeName.data + std::string("_matrix-sampler") ) << "\" target=\"" << XMLEscape(nodeAnim->mNodeName.data) << "/matrix\"/>" << endstr;
+ mOutput << startstr << "mNodeName.data + std::string("_matrix-sampler") ) << "\" target=\"" << XMLIDEncode(nodeAnim->mNodeName.data) << "/matrix\"/>" << endstr;
}
}
@@ -1437,8 +1464,6 @@ void ColladaExporter::WriteAnimationLibrary(size_t pIndex)
// ------------------------------------------------------------------------------------------------
void ColladaExporter::WriteAnimationsLibrary()
{
- const std::string scene_name_escaped = XMLEscape(mScene->mRootNode->mName.C_Str());
-
if ( mScene->mNumAnimations > 0 ) {
mOutput << startstr << "" << endstr;
PushTag();
@@ -1546,16 +1571,17 @@ void ColladaExporter::WriteNode( const aiScene* pScene, aiNode* pNode)
}
}
- const std::string node_name_escaped = XMLEscape(pNode->mName.data);
+ const std::string node_id = XMLIDEncode(pNode->mName.data);
+ const std::string node_name = XMLEscape(pNode->mName.data);
mOutput << startstr << "" << endstr;
PushTag();
@@ -1594,14 +1620,14 @@ void ColladaExporter::WriteNode( const aiScene* pScene, aiNode* pNode)
//check if it is a camera node
for(size_t i=0; imNumCameras; i++){
if(mScene->mCameras[i]->mName == pNode->mName){
- mOutput << startstr <<"" << endstr;
+ mOutput << startstr <<"" << endstr;
break;
}
}
//check if it is a light node
for(size_t i=0; imNumLights; i++){
if(mScene->mLights[i]->mName == pNode->mName){
- mOutput << startstr <<"" << endstr;
+ mOutput << startstr <<"" << endstr;
break;
}
}
@@ -1617,13 +1643,13 @@ void ColladaExporter::WriteNode( const aiScene* pScene, aiNode* pNode)
if( mesh->mNumBones == 0 )
{
- mOutput << startstr << "mMeshes[a])) << "\">" << endstr;
+ mOutput << startstr << "mMeshes[a])) << "\">" << endstr;
PushTag();
}
else
{
mOutput << startstr
- << "mMeshes[a])) << "-skin\">"
+ << "mMeshes[a])) << "-skin\">"
<< endstr;
PushTag();
@@ -1631,7 +1657,7 @@ void ColladaExporter::WriteNode( const aiScene* pScene, aiNode* pNode)
// use the first bone to find skeleton root
const aiNode * skeletonRootBoneNode = findSkeletonRootNode( pScene, mesh );
if ( skeletonRootBoneNode ) {
- mFoundSkeletonRootNodeID = XMLEscape( skeletonRootBoneNode->mName.C_Str() );
+ mFoundSkeletonRootNodeID = XMLIDEncode( skeletonRootBoneNode->mName.C_Str() );
}
mOutput << startstr << "#" << mFoundSkeletonRootNodeID << "" << endstr;
}
@@ -1639,7 +1665,7 @@ void ColladaExporter::WriteNode( const aiScene* pScene, aiNode* pNode)
PushTag();
mOutput << startstr << "" << endstr;
PushTag();
- mOutput << startstr << "mMaterialIndex].name) << "\">" << endstr;
+ mOutput << startstr << "mMaterialIndex].name) << "\">" << endstr;
PushTag();
for( size_t a = 0; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++a )
{