source: GTP/trunk/Lib/Geom/shared/GTGeometry/src/GeoSubMesh.cpp @ 1009

Revision 1009, 1.8 KB checked in by gumbau, 18 years ago (diff)
RevLine 
[774]1#include "GeoSubMesh.h"
2
3using namespace Geometry;
4
[1009]5//---------------------------------------------------------------------------
6//      Constructor.
7//---------------------------------------------------------------------------
[774]8SubMesh::SubMesh():
[1009]9        mIndex(0),
10        mVertexBuffer(0),
11        mIndexCount(0),
12        mSharedVertexBuffer(false),
13        mStrip(0),
14        mStripCount(0),
15        mType(GEO_TRIANGLE_LIST)
[774]16{
[980]17        strcpy(mMaterialName,"");
[774]18}
19
[1009]20//---------------------------------------------------------------------------
21//      Destroyer.
22//---------------------------------------------------------------------------
[774]23SubMesh::~SubMesh()
24{
[1009]25        delete  []      mIndex;
26       
27        if (!mSharedVertexBuffer)
28        {
29                delete mVertexBuffer;
30        }
[774]31}
32
[1009]33//---------------------------------------------------------------------------
34//      Load data from a serializer.
35//---------------------------------------------------------------------------
[774]36void SubMesh::Load(Serializer &s)
37{
[1009]38        //      Clear Data.
39        delete  []      mIndex;
40       
41        mIndex  =       0;
42       
[774]43        if (!mSharedVertexBuffer)
44        {
45                delete mVertexBuffer;
[1009]46               
47                mVertexBuffer   =       0;
[774]48        }
[1009]49       
50        mIndexCount     =       0;
[774]51
[1009]52        //      Load Data from Serializer.
53        s.ReadArray(&mSharedVertexBuffer,       1);
54       
[774]55        if (mSharedVertexBuffer)
56        {
[1009]57                mVertexBuffer   =       0;
[774]58        }
59        else
60        {
[1009]61                mVertexBuffer   =       new VertexBuffer();
62               
[774]63                mVertexBuffer->Load(s);
[1009]64        }
[774]65
[1009]66        s.ReadArray(&mIndexCount,       1);
67       
68        mIndex  =       new Index[mIndexCount];
69       
70        s.ReadArray(mIndex,     mIndexCount);
[774]71}
72
[1009]73//---------------------------------------------------------------------------
74//      Save data to a serializer.
75//---------------------------------------------------------------------------
[774]76void SubMesh::Save(Serializer &s)
77{
[1009]78        s.WriteArray(&mSharedVertexBuffer,      1);
79       
[774]80        if (!mSharedVertexBuffer)
81        {
82                mVertexBuffer->Save(s);
83        }
[1009]84       
85        s.WriteArray(&mIndexCount,      1);
86        s.WriteArray(mIndex,    mIndexCount);
[774]87}
[1009]88
Note: See TracBrowser for help on using the repository browser.