#include "GeoSubMesh.h" using namespace Geometry; SubMesh::SubMesh(): mIndex(0), mVertexBuffer(0), mIndexCount(0),mSharedVertexBuffer(false), mStrip(0), mStripCount(0), mType(GEO_TRIANGLE_LIST) { strcpy(mMaterialName,""); } SubMesh::~SubMesh() { delete[] mIndex; if (!mSharedVertexBuffer) delete mVertexBuffer; } void SubMesh::Load(Serializer &s) { //Clear Data: delete[] mIndex; mIndex = 0; if (!mSharedVertexBuffer) { delete mVertexBuffer; mVertexBuffer = 0; } mIndexCount = 0; //Load Data from Serializer s.ReadArray(&mSharedVertexBuffer,1); if (mSharedVertexBuffer) { mVertexBuffer = 0; } else { mVertexBuffer = new VertexBuffer(); mVertexBuffer->Load(s); }; s.ReadArray(&mIndexCount,1); mIndex = new Index[mIndexCount]; s.ReadArray(mIndex,mIndexCount); } void SubMesh::Save(Serializer &s) { s.WriteArray(&mSharedVertexBuffer,1); if (!mSharedVertexBuffer) { mVertexBuffer->Save(s); } s.WriteArray(&mIndexCount,1); s.WriteArray(mIndex,mIndexCount); }