(VertexMapper) Updated interface
Added access parameter Removed useless GetVertexCount method Former-commit-id: 670d16ed9668eb5df476a592929ed9c364b1f11a
This commit is contained in:
parent
ab538e0e2d
commit
5e3fdbca89
|
|
@ -18,18 +18,16 @@ class NzSubMesh;
|
|||
class NAZARA_API NzVertexMapper
|
||||
{
|
||||
public:
|
||||
NzVertexMapper(NzVertexBuffer* vertexBuffer, unsigned int vertexCount);
|
||||
NzVertexMapper(NzSubMesh* subMesh);
|
||||
NzVertexMapper(NzSubMesh* subMesh, nzBufferAccess access = nzBufferAccess_ReadWrite);
|
||||
NzVertexMapper(NzVertexBuffer* vertexBuffer, nzBufferAccess access = nzBufferAccess_ReadWrite);
|
||||
~NzVertexMapper();
|
||||
|
||||
template<typename T> NzSparsePtr<T> GetComponentPtr(nzVertexComponent component);
|
||||
unsigned int GetVertexCount() const;
|
||||
|
||||
void Unmap();
|
||||
|
||||
private:
|
||||
NzBufferMapper<NzVertexBuffer> m_mapper;
|
||||
unsigned int m_vertexCount;
|
||||
};
|
||||
|
||||
#include <Nazara/Utility/VertexMapper.inl>
|
||||
|
|
|
|||
|
|
@ -25,12 +25,12 @@ void NzStaticMesh::Center()
|
|||
{
|
||||
NzVector3f offset(m_aabb.x + m_aabb.width/2.f, m_aabb.y + m_aabb.height/2.f, m_aabb.z + m_aabb.depth/2.f);
|
||||
|
||||
NzVertexMapper mapper(this);
|
||||
NzVertexMapper mapper(m_vertexBuffer);
|
||||
NzSparsePtr<NzVector3f> position = mapper.GetComponentPtr<NzVector3f>(nzVertexComponent_Position);
|
||||
|
||||
unsigned int vertexCount = mapper.GetVertexCount();
|
||||
unsigned int vertexCount = m_vertexBuffer->GetVertexCount();
|
||||
for (unsigned int i = 0; i < vertexCount; ++i)
|
||||
position[i] -= offset;
|
||||
*position++ -= offset;
|
||||
|
||||
m_aabb.x -= offset.x;
|
||||
m_aabb.y -= offset.y;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ NzSubMesh::~NzSubMesh() = default;
|
|||
void NzSubMesh::GenerateNormals()
|
||||
{
|
||||
NzVertexMapper mapper(this);
|
||||
unsigned int vertexCount = mapper.GetVertexCount();
|
||||
unsigned int vertexCount = GetVertexCount();
|
||||
|
||||
NzSparsePtr<NzVector3f> normals = mapper.GetComponentPtr<NzVector3f>(nzVertexComponent_Normal);
|
||||
NzSparsePtr<NzVector3f> positions = mapper.GetComponentPtr<NzVector3f>(nzVertexComponent_Position);
|
||||
|
|
@ -56,7 +56,7 @@ void NzSubMesh::GenerateNormals()
|
|||
void NzSubMesh::GenerateNormalsAndTangents()
|
||||
{
|
||||
NzVertexMapper mapper(this);
|
||||
unsigned int vertexCount = mapper.GetVertexCount();
|
||||
unsigned int vertexCount = GetVertexCount();
|
||||
|
||||
NzSparsePtr<NzVector3f> normals = mapper.GetComponentPtr<NzVector3f>(nzVertexComponent_Normal);
|
||||
NzSparsePtr<NzVector3f> positions = mapper.GetComponentPtr<NzVector3f>(nzVertexComponent_Position);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
#include <Nazara/Utility/SubMesh.hpp>
|
||||
#include <Nazara/Utility/Debug.hpp>
|
||||
|
||||
NzVertexMapper::NzVertexMapper(NzSubMesh* subMesh)
|
||||
NzVertexMapper::NzVertexMapper(NzSubMesh* subMesh, nzBufferAccess access)
|
||||
{
|
||||
NzErrorFlags flags(nzErrorFlag_ThrowException, true);
|
||||
|
||||
|
|
@ -37,26 +37,17 @@ NzVertexMapper::NzVertexMapper(NzSubMesh* subMesh)
|
|||
NazaraInternalError("Animation type not handled (0x" + NzString::Number(subMesh->GetAnimationType(), 16) + ')');
|
||||
}
|
||||
|
||||
m_vertexCount = subMesh->GetVertexCount();
|
||||
|
||||
m_mapper.Map(buffer, nzBufferAccess_ReadWrite);
|
||||
m_mapper.Map(buffer, access);
|
||||
}
|
||||
|
||||
NzVertexMapper::NzVertexMapper(NzVertexBuffer* vertexBuffer, unsigned int vertexCount)
|
||||
NzVertexMapper::NzVertexMapper(NzVertexBuffer* vertexBuffer, nzBufferAccess access)
|
||||
{
|
||||
NzErrorFlags flags(nzErrorFlag_ThrowException, true);
|
||||
|
||||
m_mapper.Map(vertexBuffer, nzBufferAccess_ReadWrite);
|
||||
m_vertexCount = vertexCount;
|
||||
m_mapper.Map(vertexBuffer, access);
|
||||
}
|
||||
|
||||
NzVertexMapper::~NzVertexMapper() = default;
|
||||
|
||||
unsigned int NzVertexMapper::GetVertexCount() const
|
||||
{
|
||||
return m_vertexCount;
|
||||
}
|
||||
|
||||
void NzVertexMapper::Unmap()
|
||||
{
|
||||
m_mapper.Unmap();
|
||||
|
|
|
|||
Loading…
Reference in New Issue