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

Revision 2341, 1.8 KB checked in by gumbau, 17 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{
[2341]17        strcpy(mName,"");
[980]18        strcpy(mMaterialName,"");
[774]19}
20
[1009]21//---------------------------------------------------------------------------
22//      Destroyer.
23//---------------------------------------------------------------------------
[774]24SubMesh::~SubMesh()
25{
[1009]26        delete  []      mIndex;
27       
28        if (!mSharedVertexBuffer)
29        {
30                delete mVertexBuffer;
31        }
[774]32}
33
[1009]34//---------------------------------------------------------------------------
35//      Load data from a serializer.
36//---------------------------------------------------------------------------
[774]37void SubMesh::Load(Serializer &s)
38{
[1009]39        //      Clear Data.
40        delete  []      mIndex;
41       
42        mIndex  =       0;
43       
[774]44        if (!mSharedVertexBuffer)
45        {
46                delete mVertexBuffer;
[1009]47               
48                mVertexBuffer   =       0;
[774]49        }
[1009]50       
51        mIndexCount     =       0;
[774]52
[1009]53        //      Load Data from Serializer.
54        s.ReadArray(&mSharedVertexBuffer,       1);
55       
[774]56        if (mSharedVertexBuffer)
57        {
[1009]58                mVertexBuffer   =       0;
[774]59        }
60        else
61        {
[1009]62                mVertexBuffer   =       new VertexBuffer();
63               
[774]64                mVertexBuffer->Load(s);
[1009]65        }
[774]66
[1009]67        s.ReadArray(&mIndexCount,       1);
68       
69        mIndex  =       new Index[mIndexCount];
70       
71        s.ReadArray(mIndex,     mIndexCount);
[774]72}
73
[1009]74//---------------------------------------------------------------------------
75//      Save data to a serializer.
76//---------------------------------------------------------------------------
[774]77void SubMesh::Save(Serializer &s)
78{
[1009]79        s.WriteArray(&mSharedVertexBuffer,      1);
80       
[774]81        if (!mSharedVertexBuffer)
82        {
83                mVertexBuffer->Save(s);
84        }
[1009]85       
86        s.WriteArray(&mIndexCount,      1);
87        s.WriteArray(mIndex,    mIndexCount);
[774]88}
[1009]89
Note: See TracBrowser for help on using the repository browser.