Improved code

Former-commit-id: 31d737ae9d45a14a59b85118b9797565610866ff
This commit is contained in:
Lynix 2014-07-08 11:29:30 +02:00
parent 18849e7d21
commit d3c3ad5bb8
2 changed files with 6 additions and 32 deletions

View File

@ -20,7 +20,7 @@ class NAZARA_API NzStaticMesh final : public NzSubMesh, NzResourceListener
{
public:
NzStaticMesh(const NzMesh* parent);
virtual ~NzStaticMesh();
~NzStaticMesh();
void Center();
@ -43,8 +43,6 @@ class NAZARA_API NzStaticMesh final : public NzSubMesh, NzResourceListener
void SetIndexBuffer(const NzIndexBuffer* indexBuffer);
private:
void OnResourceReleased(const NzResource* resource, int index) override;
NzBoxf m_aabb;
NzIndexBufferConstRef m_indexBuffer = nullptr;
NzVertexBufferRef m_vertexBuffer = nullptr;

View File

@ -26,9 +26,11 @@ 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);
NzSparsePtr<NzVector3f> position = mapper.GetAttributePtr<NzVector3f>(nzAttributeUsage_Position);
unsigned int vertexCount = mapper.GetVertexCount();
for (unsigned int i = 0; i < vertexCount; ++i)
mapper.SetPosition(i, mapper.GetPosition(i) - offset);
position[i] -= offset;
m_aabb.x -= offset.x;
m_aabb.y -= offset.y;
@ -48,8 +50,6 @@ bool NzStaticMesh::Create(NzVertexBuffer* vertexBuffer)
#endif
m_vertexBuffer = vertexBuffer;
m_vertexBuffer->AddResourceListener(this);
return true;
}
@ -59,14 +59,8 @@ void NzStaticMesh::Destroy()
{
NotifyDestroy();
if (m_indexBuffer)
{
m_indexBuffer->RemoveResourceListener(this);
m_indexBuffer = nullptr;
}
m_vertexBuffer->RemoveResourceListener(this);
m_vertexBuffer = nullptr;
m_indexBuffer.Reset();
m_vertexBuffer.Reset();
}
}
@ -126,23 +120,5 @@ void NzStaticMesh::SetAABB(const NzBoxf& aabb)
void NzStaticMesh::SetIndexBuffer(const NzIndexBuffer* indexBuffer)
{
if (m_indexBuffer)
m_indexBuffer->RemoveResourceListener(this);
if (indexBuffer)
indexBuffer->AddResourceListener(this);
m_indexBuffer = indexBuffer;
}
void NzStaticMesh::OnResourceReleased(const NzResource* resource, int index)
{
NazaraUnused(index);
if (resource == m_indexBuffer)
m_indexBuffer = nullptr;
else if (resource == m_vertexBuffer)
m_vertexBuffer = nullptr;
else
NazaraInternalError("Not listening to " + NzString::Pointer(resource));
}