Ogre: Use C++11 range-based for loop

This commit is contained in:
Turo Lamminen
2016-05-22 01:44:37 +03:00
parent 3eb9b8e91b
commit 32e4dd0bd1
3 changed files with 34 additions and 41 deletions

View File

@@ -453,7 +453,7 @@ void OgreXmlSerializer::ReadGeometryVertexBuffer(VertexDataXml *dest)
}
else if (uvs > 0 && m_currentNodeName == nnTexCoord)
{
for(size_t i=0, len=dest->uvs.size(); i<len; ++i)
for(auto &uvs : dest->uvs)
{
if (m_currentNodeName != nnTexCoord) {
throw DeadlyImportError("Vertex buffer declared more UVs than can be found in a vertex");
@@ -462,7 +462,7 @@ void OgreXmlSerializer::ReadGeometryVertexBuffer(VertexDataXml *dest)
aiVector3D uv;
uv.x = ReadAttribute<float>("u");
uv.y = (ReadAttribute<float>("v") * -1) + 1; // Flip UV from Ogre to Assimp form
dest->uvs[i].push_back(uv);
uvs.push_back(uv);
NextNode();
}
@@ -657,10 +657,8 @@ void OgreXmlSerializer::ReadBoneAssignments(VertexDataXml *dest)
Some exporters wont care if the sum of all bone weights
for a single vertex equals 1 or not, so validate here. */
const float epsilon = 0.05f;
for(std::set<uint32_t>::const_iterator iter=influencedVertices.begin(), end=influencedVertices.end(); iter != end; ++iter)
for (const uint32_t vertexIndex : influencedVertices)
{
const uint32_t vertexIndex = (*iter);
float sum = 0.0f;
for (VertexBoneAssignmentList::const_iterator baIter=dest->boneAssignments.begin(), baEnd=dest->boneAssignments.end(); baIter != baEnd; ++baIter)
{
@@ -669,10 +667,10 @@ void OgreXmlSerializer::ReadBoneAssignments(VertexDataXml *dest)
}
if ((sum < (1.0f - epsilon)) || (sum > (1.0f + epsilon)))
{
for (VertexBoneAssignmentList::iterator baIter=dest->boneAssignments.begin(), baEnd=dest->boneAssignments.end(); baIter != baEnd; ++baIter)
for (auto &boneAssign : dest->boneAssignments)
{
if (baIter->vertexIndex == vertexIndex)
baIter->weight /= sum;
if (boneAssign.vertexIndex == vertexIndex)
boneAssign.weight /= sum;
}
}
}