Improved code
Former-commit-id: 31d737ae9d45a14a59b85118b9797565610866ff
This commit is contained in:
parent
18849e7d21
commit
d3c3ad5bb8
|
|
@ -20,7 +20,7 @@ class NAZARA_API NzStaticMesh final : public NzSubMesh, NzResourceListener
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NzStaticMesh(const NzMesh* parent);
|
NzStaticMesh(const NzMesh* parent);
|
||||||
virtual ~NzStaticMesh();
|
~NzStaticMesh();
|
||||||
|
|
||||||
void Center();
|
void Center();
|
||||||
|
|
||||||
|
|
@ -43,8 +43,6 @@ class NAZARA_API NzStaticMesh final : public NzSubMesh, NzResourceListener
|
||||||
void SetIndexBuffer(const NzIndexBuffer* indexBuffer);
|
void SetIndexBuffer(const NzIndexBuffer* indexBuffer);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void OnResourceReleased(const NzResource* resource, int index) override;
|
|
||||||
|
|
||||||
NzBoxf m_aabb;
|
NzBoxf m_aabb;
|
||||||
NzIndexBufferConstRef m_indexBuffer = nullptr;
|
NzIndexBufferConstRef m_indexBuffer = nullptr;
|
||||||
NzVertexBufferRef m_vertexBuffer = nullptr;
|
NzVertexBufferRef m_vertexBuffer = nullptr;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
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(this);
|
||||||
|
NzSparsePtr<NzVector3f> position = mapper.GetAttributePtr<NzVector3f>(nzAttributeUsage_Position);
|
||||||
|
|
||||||
unsigned int vertexCount = mapper.GetVertexCount();
|
unsigned int vertexCount = mapper.GetVertexCount();
|
||||||
for (unsigned int i = 0; i < vertexCount; ++i)
|
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.x -= offset.x;
|
||||||
m_aabb.y -= offset.y;
|
m_aabb.y -= offset.y;
|
||||||
|
|
@ -48,8 +50,6 @@ bool NzStaticMesh::Create(NzVertexBuffer* vertexBuffer)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_vertexBuffer = vertexBuffer;
|
m_vertexBuffer = vertexBuffer;
|
||||||
m_vertexBuffer->AddResourceListener(this);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -59,14 +59,8 @@ void NzStaticMesh::Destroy()
|
||||||
{
|
{
|
||||||
NotifyDestroy();
|
NotifyDestroy();
|
||||||
|
|
||||||
if (m_indexBuffer)
|
m_indexBuffer.Reset();
|
||||||
{
|
m_vertexBuffer.Reset();
|
||||||
m_indexBuffer->RemoveResourceListener(this);
|
|
||||||
m_indexBuffer = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_vertexBuffer->RemoveResourceListener(this);
|
|
||||||
m_vertexBuffer = nullptr;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -126,23 +120,5 @@ void NzStaticMesh::SetAABB(const NzBoxf& aabb)
|
||||||
|
|
||||||
void NzStaticMesh::SetIndexBuffer(const NzIndexBuffer* indexBuffer)
|
void NzStaticMesh::SetIndexBuffer(const NzIndexBuffer* indexBuffer)
|
||||||
{
|
{
|
||||||
if (m_indexBuffer)
|
|
||||||
m_indexBuffer->RemoveResourceListener(this);
|
|
||||||
|
|
||||||
if (indexBuffer)
|
|
||||||
indexBuffer->AddResourceListener(this);
|
|
||||||
|
|
||||||
m_indexBuffer = indexBuffer;
|
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));
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue