29 #ifndef __MeshSerializerImpl_H__
30 #define __MeshSerializerImpl_H__
41 class MeshSerializerListener;
75 Endian endianMode = ENDIAN_NATIVE);
89 virtual void writeSubMeshNameTable(
const Mesh* pMesh);
90 virtual void writeMesh(
const Mesh* pMesh);
91 virtual void writeSubMesh(
const SubMesh* s);
92 virtual void writeSubMeshOperation(
const SubMesh* s);
93 virtual void writeSubMeshTextureAliases(
const SubMesh* s);
94 virtual void writeGeometry(
const VertexData* pGeom);
95 virtual void writeSkeletonLink(
const String& skelName);
98 virtual void writeLodInfo(
const Mesh* pMesh);
99 virtual void writeLodSummary(
unsigned short numLevels,
bool manual,
const LodStrategy *strategy);
100 virtual void writeLodUsageManual(
const MeshLodUsage& usage);
101 virtual void writeLodUsageGenerated(
const Mesh* pMesh,
const MeshLodUsage& usage,
unsigned short lodNum);
102 virtual void writeBoundsInfo(
const Mesh* pMesh);
103 virtual void writeEdgeList(
const Mesh* pMesh);
104 virtual void writeAnimations(
const Mesh* pMesh);
105 virtual void writeAnimation(
const Animation* anim);
106 virtual void writePoses(
const Mesh* pMesh);
107 virtual void writePose(
const Pose* pose);
112 virtual void writeExtremes(
const Mesh *pMesh);
113 virtual void writeSubMeshExtremes(
unsigned short idx,
const SubMesh* s);
115 virtual size_t calcMeshSize(
const Mesh* pMesh);
116 virtual size_t calcSubMeshSize(
const SubMesh* pSub);
117 virtual size_t calcGeometrySize(
const VertexData* pGeom);
118 virtual size_t calcSkeletonLinkSize(
const String& skelName);
119 virtual size_t calcBoneAssignmentSize(
void);
120 virtual size_t calcSubMeshOperationSize(
const SubMesh* pSub);
121 virtual size_t calcSubMeshNameTableSize(
const Mesh* pMesh);
122 virtual size_t calcEdgeListSize(
const Mesh* pMesh);
123 virtual size_t calcEdgeListLodSize(
const EdgeData* data,
bool isManual);
125 virtual size_t calcPosesSize(
const Mesh* pMesh);
126 virtual size_t calcPoseSize(
const Pose* pose);
127 virtual size_t calcAnimationsSize(
const Mesh* pMesh);
128 virtual size_t calcAnimationSize(
const Animation* anim);
132 virtual size_t calcPoseKeyframePoseRefSize(
void);
133 virtual size_t calcPoseVertexSize(
const Pose* pose);
134 virtual size_t calcSubMeshTextureAliasesSize(
const SubMesh* pSub);
194 void writePose(
const Pose* pose);
197 size_t calcPoseSize(
const Pose* pose);
198 size_t calcPoseVertexSize(
void);
210 virtual void writeLodSummary(
unsigned short numLevels,
bool manual,
const LodStrategy *strategy);
211 virtual void writeLodUsageManual(
const MeshLodUsage& usage);
212 virtual void writeLodUsageGenerated(
const Mesh* pMesh,
const MeshLodUsage& usage,
213 unsigned short lodNum);
230 virtual void reorganiseTriangles(
EdgeData* edgeData);
232 virtual void writeEdgeList(
const Mesh* pMesh);
246 virtual void readGeometryPositions(
unsigned short bindIdx,
DataStreamPtr& stream,
248 virtual void readGeometryNormals(
unsigned short bindIdx,
DataStreamPtr& stream,
250 virtual void readGeometryColours(
unsigned short bindIdx,
DataStreamPtr& stream,
252 virtual void readGeometryTexCoords(
unsigned short bindIdx,
DataStreamPtr& stream,
265 void readGeometryTexCoords(
unsigned short bindIdx,
DataStreamPtr& stream,