Go to the documentation of this file.
29 #ifndef __MeshSerializerImpl_H__
30 #define __MeshSerializerImpl_H__
41 class MeshSerializerListener;
75 Endian endianMode = ENDIAN_NATIVE);
213 unsigned short lodNum);
virtual ~MeshSerializerImpl()
virtual void writeLodSummary(unsigned short numLevels, bool manual, const LodStrategy *strategy)
A way of recording the way each LODs is recorded this Mesh.
virtual void readGeometry(DataStreamPtr &stream, Mesh *pMesh, VertexData *dest)
size_t calcPoseVertexSize(void)
virtual size_t calcBoneAssignmentSize(void)
virtual void readBoundsInfo(DataStreamPtr &stream, Mesh *pMesh)
virtual void readEdgeList(DataStreamPtr &stream, Mesh *pMesh)
virtual void readGeometryNormals(unsigned short bindIdx, DataStreamPtr &stream, Mesh *pMesh, VertexData *dest)
virtual void writeSubMeshNameTable(const Mesh *pMesh)
virtual void readSubMeshBoneAssignment(DataStreamPtr &stream, Mesh *pMesh, SubMesh *sub)
virtual void writeLodInfo(const Mesh *pMesh)
virtual void readGeometryPositions(unsigned short bindIdx, DataStreamPtr &stream, Mesh *pMesh, VertexData *dest)
virtual void writeEdgeList(const Mesh *pMesh)
void readPose(DataStreamPtr &stream, Mesh *pMesh)
Class for providing backwards-compatibility for loading version 1.4 of the .mesh format.
~MeshSerializerImpl_v1_4()
virtual void readMeshBoneAssignment(DataStreamPtr &stream, Mesh *pMesh)
void writeMorphKeyframe(const VertexMorphKeyFrame *kf, size_t vertexCount)
void importMesh(DataStreamPtr &stream, Mesh *pDest, MeshSerializerListener *listener)
Imports Mesh and (optionally) Material data from a .mesh file DataStream.
virtual size_t calcMorphKeyframeSize(const VertexMorphKeyFrame *kf, size_t vertexCount)
virtual void writeBoundsInfo(const Mesh *pMesh)
virtual void readMeshLodInfo(DataStreamPtr &stream, Mesh *pMesh)
virtual size_t calcEdgeGroupSize(const EdgeData::EdgeGroup &group)
Class for providing backwards-compatibility for loading version 1.1 of the .mesh format.
Reference to a pose at a given influence level.
virtual void readGeometryVertexDeclaration(DataStreamPtr &stream, Mesh *pMesh, VertexData *dest)
virtual void writeLodSummary(unsigned short numLevels, bool manual, const LodStrategy *strategy)
virtual size_t calcEdgeListSize(const Mesh *pMesh)
virtual void readTextureLayer(DataStreamPtr &stream, Mesh *pMesh, MaterialPtr &pMat)
virtual void flipEndian(void *pData, size_t vertexCount, size_t vertexSize, const VertexDeclaration::VertexElementList &elems)
Flip the endianness of an entire vertex buffer, passed in as a pointer to locked or temporary memory
virtual size_t calcPoseKeyframeSize(const VertexPoseKeyFrame *kf)
list< VertexElement >::type VertexElementList
Defines the list of vertex elements that makes up this declaration.
virtual void readMeshLodUsageManual(DataStreamPtr &stream, Mesh *pMesh, unsigned short lodNum, MeshLodUsage &usage)
Specialised KeyFrame which references a Mesh::Pose at a certain influence level, which stores offsets...
virtual void writeLodUsageManual(const MeshLodUsage &usage)
void exportMesh(const Mesh *pMesh, DataStreamPtr stream, Endian endianMode=ENDIAN_NATIVE)
Exports a mesh to the file specified.
virtual void readSubMeshTextureAlias(DataStreamPtr &stream, Mesh *pMesh, SubMesh *sub)
virtual void writeEdgeList(const Mesh *pMesh)
virtual void writeSubMeshBoneAssignment(const VertexBoneAssignment &assign)
virtual void reorganiseTriangles(EdgeData *edgeData)
Reorganise triangles of the edge list to group by vertex set.
virtual void writePoses(const Mesh *pMesh)
Records the assignment of a single vertex to a single bone with the corresponding weight.
virtual size_t calcSubMeshSize(const SubMesh *pSub)
Specialised AnimationTrack for dealing with changing vertex position information.
virtual void readExtremes(DataStreamPtr &stream, Mesh *pMesh)
virtual void readSkeletonLink(DataStreamPtr &stream, Mesh *pMesh, MeshSerializerListener *listener)
MeshSerializerImpl_v1_4()
Class for providing backwards-compatibility for loading version 1.3 of the .mesh format.
A pose is a linked set of vertex offsets applying to one set of vertex data.
~MeshSerializerImpl_v1_3()
virtual void writeAnimations(const Mesh *pMesh)
Summary class collecting together vertex source information.
Strategy for determining level of detail.
virtual size_t calcSubMeshTextureAliasesSize(const SubMesh *pSub)
virtual size_t calcSkeletonLinkSize(const String &skelName)
virtual void writeSubMeshTextureAliases(const SubMesh *s)
virtual void writePose(const Pose *pose)
virtual void writeSubMeshOperation(const SubMesh *s)
virtual void readAnimationTrack(DataStreamPtr &stream, Animation *anim, Mesh *pMesh)
MeshSerializerImpl_v1_41()
Class for providing backwards-compatibility for loading version 1.41 of the .mesh format.
virtual void readEdgeListLodInfo(DataStreamPtr &stream, EdgeData *edgeData)
virtual void writeLodUsageGenerated(const Mesh *pMesh, const MeshLodUsage &usage, unsigned short lodNum)
virtual void readEdgeListLodInfo(DataStreamPtr &stream, EdgeData *edgeData)
~MeshSerializerImpl_v1_2()
size_t calcPoseSize(const Pose *pose)
virtual void writeMesh(const Mesh *pMesh)
virtual size_t calcSubMeshNameTableSize(const Mesh *pMesh)
Defines a part of a complete mesh.
virtual void readMesh(DataStreamPtr &stream, Mesh *pMesh, MeshSerializerListener *listener)
~MeshSerializerImpl_v1_41()
virtual void flipFromLittleEndian(void *pData, size_t vertexCount, size_t vertexSize, const VertexDeclaration::VertexElementList &elems)
Flip an entire vertex buffer from little endian.
virtual size_t calcSubMeshOperationSize(const SubMesh *pSub)
virtual void readMesh(DataStreamPtr &stream, Mesh *pMesh, MeshSerializerListener *listener)
virtual void readMeshLodUsageGenerated(DataStreamPtr &stream, Mesh *pMesh, unsigned short lodNum, MeshLodUsage &usage)
virtual void flipToLittleEndian(void *pData, size_t vertexCount, size_t vertexSize, const VertexDeclaration::VertexElementList &elems)
Flip an entire vertex buffer to little endian.
virtual void readGeometryVertexBuffer(DataStreamPtr &stream, Mesh *pMesh, VertexData *dest)
virtual void readAnimation(DataStreamPtr &stream, Mesh *pMesh)
virtual void readMeshLodInfo(DataStreamPtr &stream, Mesh *pMesh)
virtual void readMorphKeyFrame(DataStreamPtr &stream, VertexAnimationTrack *track)
virtual size_t calcAnimationTrackSize(const VertexAnimationTrack *track)
~MeshSerializerImpl_v1_1()
void writePose(const Pose *pose)
virtual void writeLodUsageManual(const MeshLodUsage &usage)
virtual size_t calcEdgeListLodSize(const EdgeData *data, bool isManual)
virtual void readPoses(DataStreamPtr &stream, Mesh *pMesh)
virtual void writePoseKeyframePoseRef(const VertexPoseKeyFrame::PoseRef &poseRef)
virtual void readPose(DataStreamPtr &stream, Mesh *pMesh)
virtual void writeSubMesh(const SubMesh *s)
size_t calcMorphKeyframeSize(const VertexMorphKeyFrame *kf, size_t vertexCount)
virtual size_t calcPoseSize(const Pose *pose)
void readMorphKeyFrame(DataStreamPtr &stream, VertexAnimationTrack *track)
virtual void readAnimations(DataStreamPtr &stream, Mesh *pMesh)
virtual void writeSubMeshExtremes(unsigned short idx, const SubMesh *s)
virtual void readSubMeshNameTable(DataStreamPtr &stream, Mesh *pMesh)
virtual void readPoseKeyFrame(DataStreamPtr &stream, VertexAnimationTrack *track)
Resource holding data about 3D mesh.
virtual void readSubMeshOperation(DataStreamPtr &stream, Mesh *pMesh, SubMesh *sub)
MeshSerializerImpl_v1_3()
virtual size_t calcPosesSize(const Mesh *pMesh)
virtual size_t calcAnimationsSize(const Mesh *pMesh)
virtual void readSubMesh(DataStreamPtr &stream, Mesh *pMesh, MeshSerializerListener *listener)
Generic class for serialising data to / from binary stream-based files.
virtual void writeMorphKeyframe(const VertexMorphKeyFrame *kf, size_t vertexCount)
virtual void writeLodUsageGenerated(const Mesh *pMesh, const MeshLodUsage &usage, unsigned short lodNum)
This class contains the information required to describe the edge connectivity of a given set of vert...
MeshSerializerImpl_v1_1()
virtual void readGeometry(DataStreamPtr &stream, Mesh *pMesh, VertexData *dest)
virtual void writePoseKeyframe(const VertexPoseKeyFrame *kf)
Specialised KeyFrame which stores absolute vertex positions for a complete buffer,...
virtual size_t calcMeshSize(const Mesh *pMesh)
Internal implementation of Mesh reading / writing for the latest version of the .mesh format.
void readGeometryTexCoords(unsigned short bindIdx, DataStreamPtr &stream, Mesh *pMesh, VertexData *dest, unsigned short set)
virtual size_t calcPoseKeyframePoseRefSize(void)
MeshSerializerImpl_v1_2()
virtual void writeAnimationTrack(const VertexAnimationTrack *track)
Endian
The endianness of written files.
virtual size_t calcAnimationSize(const Animation *anim)
virtual size_t calcGeometrySize(const VertexData *pGeom)
virtual size_t calcPoseVertexSize(const Pose *pose)
virtual void writeAnimation(const Animation *anim)
virtual void readGeometryColours(unsigned short bindIdx, DataStreamPtr &stream, Mesh *pMesh, VertexData *dest)
virtual void readGeometryVertexElement(DataStreamPtr &stream, Mesh *pMesh, VertexData *dest)
virtual void writeMeshBoneAssignment(const VertexBoneAssignment &assign)
A group of edges sharing the same vertex data.
virtual void writeExtremes(const Mesh *pMesh)
virtual void writeGeometry(const VertexData *pGeom)
virtual void readGeometryTexCoords(unsigned short bindIdx, DataStreamPtr &stream, Mesh *pMesh, VertexData *dest, unsigned short set)
virtual void writeSkeletonLink(const String &skelName)
Class for providing backwards-compatibility for loading version 1.2 of the .mesh format.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.