Rename ColladaParser::CopyPrimitive to ::CopyVertex.
That's a bit closer to what the function actually does.pull/414/head
parent
13a157ea66
commit
ca3ce4703d
|
@ -2125,12 +2125,12 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pP
|
||||||
case Prim_Lines:
|
case Prim_Lines:
|
||||||
numPoints = 2;
|
numPoints = 2;
|
||||||
for (size_t currentVertex = 0; currentVertex < numPoints; currentVertex++)
|
for (size_t currentVertex = 0; currentVertex < numPoints; currentVertex++)
|
||||||
CopyPrimitive(currentVertex, numOffsets, numPoints, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
CopyVertex(currentVertex, numOffsets, numPoints, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
||||||
break;
|
break;
|
||||||
case Prim_Triangles:
|
case Prim_Triangles:
|
||||||
numPoints = 3;
|
numPoints = 3;
|
||||||
for (size_t currentVertex = 0; currentVertex < numPoints; currentVertex++)
|
for (size_t currentVertex = 0; currentVertex < numPoints; currentVertex++)
|
||||||
CopyPrimitive(currentVertex, numOffsets, numPoints, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
CopyVertex(currentVertex, numOffsets, numPoints, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
||||||
break;
|
break;
|
||||||
case Prim_TriStrips:
|
case Prim_TriStrips:
|
||||||
numPoints = 3;
|
numPoints = 3;
|
||||||
|
@ -2139,14 +2139,14 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pP
|
||||||
case Prim_Polylist:
|
case Prim_Polylist:
|
||||||
numPoints = pVCount[currentPrimitive];
|
numPoints = pVCount[currentPrimitive];
|
||||||
for (size_t currentVertex = 0; currentVertex < numPoints; currentVertex++)
|
for (size_t currentVertex = 0; currentVertex < numPoints; currentVertex++)
|
||||||
CopyPrimitive(polylistStartVertex + currentVertex, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, 0, indices);
|
CopyVertex(polylistStartVertex + currentVertex, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, 0, indices);
|
||||||
polylistStartVertex += numPoints;
|
polylistStartVertex += numPoints;
|
||||||
break;
|
break;
|
||||||
case Prim_TriFans:
|
case Prim_TriFans:
|
||||||
case Prim_Polygon:
|
case Prim_Polygon:
|
||||||
numPoints = indices.size() / numOffsets;
|
numPoints = indices.size() / numOffsets;
|
||||||
for (size_t currentVertex = 0; currentVertex < numPoints; currentVertex++)
|
for (size_t currentVertex = 0; currentVertex < numPoints; currentVertex++)
|
||||||
CopyPrimitive(currentVertex, numOffsets, numPoints, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
CopyVertex(currentVertex, numOffsets, numPoints, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// LineStrip is not supported due to expected index unmangling
|
// LineStrip is not supported due to expected index unmangling
|
||||||
|
@ -2163,7 +2163,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pP
|
||||||
return numPrimitives;
|
return numPrimitives;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ColladaParser::CopyPrimitive(size_t currentVertex, size_t numOffsets, size_t numPoints, size_t perVertexOffset, Mesh* pMesh, std::vector<InputChannel>& pPerIndexChannels, size_t currentPrimitive, const std::vector<size_t>& indices){
|
void ColladaParser::CopyVertex(size_t currentVertex, size_t numOffsets, size_t numPoints, size_t perVertexOffset, Mesh* pMesh, std::vector<InputChannel>& pPerIndexChannels, size_t currentPrimitive, const std::vector<size_t>& indices){
|
||||||
// don't overrun the boundaries of the index list
|
// don't overrun the boundaries of the index list
|
||||||
size_t maxIndexRequested = currentPrimitive * numOffsets * numPoints + (currentVertex + 1) * numOffsets - 1;
|
size_t maxIndexRequested = currentPrimitive * numOffsets * numPoints + (currentVertex + 1) * numOffsets - 1;
|
||||||
ai_assert(maxIndexRequested < indices.size());
|
ai_assert(maxIndexRequested < indices.size());
|
||||||
|
@ -2189,14 +2189,14 @@ void ColladaParser::CopyPrimitive(size_t currentVertex, size_t numOffsets, size_
|
||||||
void ColladaParser::ReadPrimTriStrips(size_t numOffsets, size_t perVertexOffset, Mesh* pMesh, std::vector<InputChannel>& pPerIndexChannels, size_t currentPrimitive, const std::vector<size_t>& indices){
|
void ColladaParser::ReadPrimTriStrips(size_t numOffsets, size_t perVertexOffset, Mesh* pMesh, std::vector<InputChannel>& pPerIndexChannels, size_t currentPrimitive, const std::vector<size_t>& indices){
|
||||||
if (currentPrimitive % 2 != 0){
|
if (currentPrimitive % 2 != 0){
|
||||||
//odd tristrip triangles need their indices mangled, to preserve winding direction
|
//odd tristrip triangles need their indices mangled, to preserve winding direction
|
||||||
CopyPrimitive(1, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
CopyVertex(1, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
||||||
CopyPrimitive(0, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
CopyVertex(0, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
||||||
CopyPrimitive(2, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
CopyVertex(2, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
||||||
}
|
}
|
||||||
else {//for non tristrips or even tristrip triangles
|
else {//for non tristrips or even tristrip triangles
|
||||||
CopyPrimitive(0, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
CopyVertex(0, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
||||||
CopyPrimitive(1, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
CopyVertex(1, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
||||||
CopyPrimitive(2, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
CopyVertex(2, numOffsets, 1, perVertexOffset, pMesh, pPerIndexChannels, currentPrimitive, indices);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -181,7 +181,7 @@ protected:
|
||||||
size_t pNumPrimitives, const std::vector<size_t>& pVCount, Collada::PrimitiveType pPrimType);
|
size_t pNumPrimitives, const std::vector<size_t>& pVCount, Collada::PrimitiveType pPrimType);
|
||||||
|
|
||||||
/** Copies the data for a single primitive into the mesh, based on the InputChannels */
|
/** Copies the data for a single primitive into the mesh, based on the InputChannels */
|
||||||
void CopyPrimitive(size_t currentVertex, size_t numOffsets, size_t numPoints, size_t perVertexOffset,
|
void CopyVertex(size_t currentVertex, size_t numOffsets, size_t numPoints, size_t perVertexOffset,
|
||||||
Collada::Mesh* pMesh, std::vector<Collada::InputChannel>& pPerIndexChannels,
|
Collada::Mesh* pMesh, std::vector<Collada::InputChannel>& pPerIndexChannels,
|
||||||
size_t currentPrimitive, const std::vector<size_t>& indices);
|
size_t currentPrimitive, const std::vector<size_t>& indices);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue