Utility: Allow TriangleIterator and VertexMapper to take constant submesh

Former-commit-id: 708fe75333a54b739794e7c9729ee1557ab26164 [formerly c68c2ff4e2deb1a512237ec4e502f00c801f7c7e]
Former-commit-id: 5fd3fd8b0a518526ee3c91d418cf321611d2bc67
This commit is contained in:
Lynix
2016-07-08 08:36:42 +02:00
parent 52436a9395
commit 5711ff555f
4 changed files with 49 additions and 4 deletions

View File

@@ -17,12 +17,19 @@ namespace Nz
m_triangleIndices[1] = m_indexMapper.Get(1);
m_triangleIndices[2] = m_indexMapper.Get(2);
m_indexCount = indexBuffer->GetIndexCount();
m_indexCount = m_indexMapper.GetIndexCount();
}
TriangleIterator::TriangleIterator(SubMesh* subMesh) :
TriangleIterator(subMesh->GetPrimitiveMode(), subMesh->GetIndexBuffer())
TriangleIterator::TriangleIterator(const SubMesh* subMesh) :
m_primitiveMode(subMesh->GetPrimitiveMode()),
m_indexMapper(subMesh, BufferAccess_ReadOnly)
{
m_currentIndex = 3;
m_triangleIndices[0] = m_indexMapper.Get(0);
m_triangleIndices[1] = m_indexMapper.Get(1);
m_triangleIndices[2] = m_indexMapper.Get(2);
m_indexCount = m_indexMapper.GetIndexCount();
}
bool TriangleIterator::Advance()