- Timestamp:
- 06/09/06 14:26:57 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Geom/shared/GTGeometry/src/GeoVertexBuffer.cpp
r774 r1009 3 3 using namespace Geometry; 4 4 5 //--------------------------------------------------------------------- 5 //--------------------------------------------------------------------------- 6 // Destroyer. 7 //--------------------------------------------------------------------------- 6 8 VertexBuffer::~VertexBuffer() 7 9 { 8 delete [] mPosition;9 delete [] mNormal;10 delete [] mTexCoords;10 delete [] mPosition; 11 delete [] mNormal; 12 delete [] mTexCoords; 11 13 } 12 14 13 //--------------------------------------------------------------------- 15 //--------------------------------------------------------------------------- 16 // Save to a serializer. 17 //--------------------------------------------------------------------------- 14 18 void VertexBuffer::Save(Serializer &s) 15 19 { 16 s.WriteArray(&mVertexInfo,1); 17 s.WriteArray(&mVertexCount,1); 20 s.WriteArray(&mVertexInfo, 1); 21 s.WriteArray(&mVertexCount, 1); 22 18 23 if (mVertexInfo & VERTEX_POSITION) 19 24 { … … 30 35 } 31 36 32 //--------------------------------------------------------------------- 37 //--------------------------------------------------------------------------- 38 // Loads from a serializer. 39 //--------------------------------------------------------------------------- 33 40 void VertexBuffer::Load(Serializer &s) 34 41 { 35 //Clear data 36 delete[] mPosition; mPosition = 0; 37 delete[] mNormal; mNormal = 0; 38 delete[] mTexCoords; mTexCoords = 0; 42 // Clear data. 43 delete [] mPosition; 44 45 mPosition = 0; 46 47 delete [] mNormal; 48 49 mNormal = 0; 50 51 delete [] mTexCoords; 52 53 mTexCoords = 0; 39 54 40 55 s.ReadArray(&mVertexInfo,1); 41 56 s.ReadArray(&mVertexCount,1); 57 42 58 if (mVertexInfo & VERTEX_POSITION) 43 59 { 44 mPosition = new Vector3[mVertexCount]; 60 mPosition = new Vector3[mVertexCount]; 61 45 62 s.ReadArray(mPosition, mVertexCount); 46 63 } 64 47 65 if (mVertexInfo & VERTEX_NORMAL) 48 66 { 49 mNormal = new Vector3[mVertexCount]; 67 mNormal = new Vector3[mVertexCount]; 68 50 69 s.ReadArray(mNormal, mVertexCount); 51 70 } 71 52 72 if (mVertexInfo & VERTEX_TEXCOORDS) 53 73 { 54 mTexCoords = new Vector2[mVertexCount]; 74 mTexCoords = new Vector2[mVertexCount]; 75 55 76 s.ReadArray(mTexCoords, mVertexCount); 56 77 } 57 78 } 58 79 59 //--------------------------------------------------------------------- 80 //--------------------------------------------------------------------------- 81 // Copy contents of vertex buffer to another. 82 //--------------------------------------------------------------------------- 60 83 VertexBuffer *VertexBuffer::Clone() const 61 84 { 62 VertexBuffer *vnew =new VertexBuffer();63 vnew->mVertexInfo =mVertexInfo;64 vnew->mVertexCount =mVertexCount;65 vnew->mPosition =new Vector3[mVertexCount];66 vnew->mNormal =new Vector3[mVertexCount];67 vnew->mTexCoords =new Vector2[mVertexCount];85 VertexBuffer *vnew = new VertexBuffer(); 86 vnew->mVertexInfo = mVertexInfo; 87 vnew->mVertexCount = mVertexCount; 88 vnew->mPosition = new Vector3[mVertexCount]; 89 vnew->mNormal = new Vector3[mVertexCount]; 90 vnew->mTexCoords = new Vector2[mVertexCount]; 68 91 69 92 memcpy(vnew->mPosition, mPosition, mVertexCount*sizeof(Vector3)); 70 93 memcpy(vnew->mNormal, mNormal, mVertexCount*sizeof(Vector3)); 71 94 memcpy(vnew->mTexCoords, mTexCoords, mVertexCount*sizeof(Vector2)); 72 return vnew; 95 96 return vnew; 73 97 } 98
Note: See TracChangeset
for help on using the changeset viewer.