Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Ogre::MeshSerializerImpl Class Reference

Internal implementation of Mesh reading / writing for the latest version of the .mesh format. More...

#include <OgreMeshSerializerImpl.h>

Inheritance diagram for Ogre::MeshSerializerImpl:

Inheritance graph
[legend]
Collaboration diagram for Ogre::MeshSerializerImpl:

Collaboration graph
[legend]
List of all members.

Public Methods

 MeshSerializerImpl ()
virtual ~MeshSerializerImpl ()
void exportMesh (const Mesh *pMesh, const String &filename)
 Exports a mesh to the file specified.

void importMesh (DataChunk &chunk, Mesh *pDest)
 Imports Mesh and (optionally) Material data from a .mesh file DataChunk.


Protected Types

typedef std::map< String,
Material * > 
MaterialMap

Protected Methods

virtual void writeMesh (const Mesh *pMesh)
virtual void writeSubMesh (const SubMesh *s)
virtual void writeSubMeshOperation (const SubMesh *s)
virtual void writeGeometry (const VertexData *pGeom)
virtual void writeSkeletonLink (const String &skelName)
virtual void writeMeshBoneAssignment (const VertexBoneAssignment *assign)
virtual void writeSubMeshBoneAssignment (const VertexBoneAssignment *assign)
virtual void writeLodInfo (const Mesh *pMesh)
virtual void writeLodSummary (unsigned short numLevels, bool manual)
virtual void writeLodUsageManual (const Mesh::MeshLodUsage &usage)
virtual void writeLodUsageGenerated (const Mesh *pMesh, const Mesh::MeshLodUsage &usage, unsigned short lodNum)
virtual void writeBoundsInfo (const Mesh *pMesh)
virtual void writeCondensedVertexBuffer (HardwareVertexBufferSharedPtr vbuf, const VertexElement *elem, size_t vertexCount)
virtual unsigned long calcMeshSize (const Mesh *pMesh)
virtual unsigned long calcSubMeshSize (const SubMesh *pSub)
virtual unsigned long calcGeometrySize (const VertexData *pGeom)
virtual unsigned long calcSkeletonLinkSize (const String &skelName)
virtual unsigned long calcBoneAssignmentSize (void)
virtual unsigned long calcSubMeshOperationSize (const SubMesh *pSub)
virtual void readMaterial (DataChunk &chunk)
virtual void readTextureLayer (DataChunk &chunk, Material *pMat)
virtual void readMesh (DataChunk &chunk)
virtual void readSubMesh (DataChunk &chunk)
virtual void readSubMeshOperation (DataChunk &chunk, SubMesh *sub)
virtual void readGeometry (DataChunk &chunk, VertexData *dest)
virtual void readGeometryPositions (unsigned short bindIdx, DataChunk &chunk, VertexData *dest)
virtual void readGeometryNormals (unsigned short bindIdx, DataChunk &chunk, VertexData *dest)
virtual void readGeometryColours (unsigned short bindIdx, DataChunk &chunk, VertexData *dest)
virtual void readGeometryTexCoords (unsigned short bindIdx, DataChunk &chunk, VertexData *dest, unsigned short set)
virtual void readSkeletonLink (DataChunk &chunk)
virtual void readMeshBoneAssignment (DataChunk &chunk)
virtual void readSubMeshBoneAssignment (DataChunk &chunk, SubMesh *sub)
virtual void readMeshLodInfo (DataChunk &chunk)
virtual void readMeshLodUsageManual (DataChunk &chunk, unsigned short lodNum, Mesh::MeshLodUsage &usage)
virtual void readMeshLodUsageGenerated (DataChunk &chunk, unsigned short lodNum, Mesh::MeshLodUsage &usage)
virtual void readBoundsInfo (DataChunk &chunk)
virtual void writeFileHeader (void)
virtual void writeChunkHeader (unsigned short id, unsigned long size)
void writeReals (const Real *pReal, size_t count)
void writeShorts (const unsigned short *pShort, size_t count)
void writeInts (const unsigned int *pInt, size_t count)
void writeLongs (const unsigned long *pLong, size_t count)
void writeBools (const bool *pLong, size_t count)
void writeObject (const Vector3 &vec)
void writeObject (const Quaternion &q)
void writeString (const String &string)
void writeData (const void *buf, size_t size, size_t count)
virtual void readFileHeader (DataChunk &chunk)
virtual unsigned short readChunk (DataChunk &chunk)
void readBools (DataChunk &chunk, bool *pDest, size_t count)
void readReals (DataChunk &chunk, Real *pDest, size_t count)
void readShorts (DataChunk &chunk, unsigned short *pDest, size_t count)
void readInts (DataChunk &chunk, unsigned int *pDest, size_t count)
void readLongs (DataChunk &chunk, unsigned long *pDest, size_t count)
void readObject (DataChunk &chunk, Vector3 *pDest)
void readObject (DataChunk &chunk, Quaternion *pDest)
String readString (DataChunk &chunk)
void flipToLittleEndian (void *pData, size_t size, size_t count=1)
void flipFromLittleEndian (void *pData, size_t size, size_t count=1)
void flipEndian (void *pData, size_t size, size_t count)
void flipEndian (void *pData, size_t size)

Protected Attributes

MaterialMap mMaterialList
MeshmpMesh
bool mIsSkeletallyAnimated
unsigned long mCurrentChunkLen
FILE * mpfFile
String mVersion

Detailed Description

Internal implementation of Mesh reading / writing for the latest version of the .mesh format.

Remarks:
In order to maintain compatibility with older versions of the .mesh format, there will be alternative subclasses of this class to load older versions, whilst this class will remain to load the latest version.

Definition at line 45 of file OgreMeshSerializerImpl.h.


Member Typedef Documentation

typedef std::map<String, Material*> Ogre::MeshSerializerImpl::MaterialMap [protected]
 

Definition at line 70 of file OgreMeshSerializerImpl.h.


Constructor & Destructor Documentation

Ogre::MeshSerializerImpl::MeshSerializerImpl  
 

Definition at line 46 of file OgreMeshSerializerImpl.cpp.

References mpMesh, and Ogre::Serializer::mVersion.

Ogre::MeshSerializerImpl::~MeshSerializerImpl   [virtual]
 

Definition at line 54 of file OgreMeshSerializerImpl.cpp.


Member Function Documentation

unsigned long Ogre::MeshSerializerImpl::calcBoneAssignmentSize void    [protected, virtual]
 

Definition at line 862 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE.

Referenced by writeMeshBoneAssignment(), and writeSubMeshBoneAssignment().

unsigned long Ogre::MeshSerializerImpl::calcGeometrySize const VertexData   pGeom [protected, virtual]
 

Definition at line 389 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE, Ogre::VertexDeclaration::getElements(), Ogre::VertexElement::getType(), Ogre::VertexData::vertexCount, and Ogre::VertexData::vertexDeclaration.

Referenced by calcMeshSize(), calcSubMeshSize(), and writeGeometry().

unsigned long Ogre::MeshSerializerImpl::calcMeshSize const Mesh   pMesh [protected, virtual]
 

Definition at line 330 of file OgreMeshSerializerImpl.cpp.

References calcGeometrySize(), calcSkeletonLinkSize(), calcSubMeshSize(), Ogre::CHUNK_OVERHEAD_SIZE, Ogre::Mesh::getNumSubMeshes(), Ogre::Mesh::getSkeletonName(), Ogre::Mesh::getSubMesh(), Ogre::Mesh::hasSkeleton(), Ogre::Mesh::sharedVertexData, and Ogre::VertexData::vertexCount.

Referenced by writeMesh().

unsigned long Ogre::MeshSerializerImpl::calcSkeletonLinkSize const String   skelName [protected, virtual]
 

Definition at line 798 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE.

Referenced by calcMeshSize(), and writeSkeletonLink().

unsigned long Ogre::MeshSerializerImpl::calcSubMeshOperationSize const SubMesh   pSub [protected, virtual]
 

Definition at line 384 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE.

Referenced by writeSubMeshOperation().

unsigned long Ogre::MeshSerializerImpl::calcSubMeshSize const SubMesh   pSub [protected, virtual]
 

Definition at line 359 of file OgreMeshSerializerImpl.cpp.

References calcGeometrySize(), Ogre::CHUNK_OVERHEAD_SIZE, Ogre::SubMesh::getMaterialName(), Ogre::IndexData::indexCount, Ogre::SubMesh::indexData, Ogre::SubMesh::useSharedVertices, and Ogre::SubMesh::vertexData.

Referenced by calcMeshSize(), and writeSubMesh().

void Ogre::MeshSerializerImpl::exportMesh const Mesh   pMesh,
const String   filename
 

Exports a mesh to the file specified.

Remarks:
This method takes an externally created Mesh object, and exports both it and optionally the Materials it uses to a .mesh file.
Parameters:
pMesh  Pointer to the Mesh to export
filename  The destination filename

Definition at line 58 of file OgreMeshSerializerImpl.cpp.

References Except, Ogre::Mesh::getBoundingSphereRadius(), Ogre::Mesh::getBounds(), Ogre::AxisAlignedBox::isNull(), Ogre::Serializer::mpfFile, Ogre::Serializer::writeFileHeader(), and writeMesh().

void Ogre::Serializer::flipEndian void *    pData,
size_t    size
[protected, inherited]
 

Definition at line 301 of file OgreSerializer.cpp.

void Ogre::Serializer::flipEndian void *    pData,
size_t    size,
size_t    count
[protected, inherited]
 

Definition at line 293 of file OgreSerializer.cpp.

Referenced by Ogre::Serializer::flipFromLittleEndian(), and Ogre::Serializer::flipToLittleEndian().

void Ogre::Serializer::flipFromLittleEndian void *    pData,
size_t    size,
size_t    count = 1
[protected, inherited]
 

Definition at line 286 of file OgreSerializer.cpp.

References Ogre::Serializer::flipEndian().

Referenced by Ogre::Serializer::readInts(), Ogre::Serializer::readLongs(), Ogre::Serializer::readReals(), and Ogre::Serializer::readShorts().

void Ogre::Serializer::flipToLittleEndian void *    pData,
size_t    size,
size_t    count = 1
[protected, inherited]
 

Definition at line 279 of file OgreSerializer.cpp.

References Ogre::Serializer::flipEndian().

Referenced by Ogre::Serializer::writeInts(), Ogre::Serializer::writeLongs(), Ogre::Serializer::writeReals(), and Ogre::Serializer::writeShorts().

void Ogre::MeshSerializerImpl::importMesh DataChunk   chunk,
Mesh   pDest
 

Imports Mesh and (optionally) Material data from a .mesh file DataChunk.

Remarks:
This method imports data from a DataChunk opened from a .mesh file and places it's contents into the Mesh object which is passed in.
Parameters:
chunk  The DataChunk holding the .mesh data. Must be initialised (pos at the start of the buffer).
pDest  Pointer to the Mesh object which will receive the data. Should be blank already.

Definition at line 83 of file OgreMeshSerializerImpl.cpp.

References Ogre::DataChunk::isEOF(), Ogre::M_MATERIAL, Ogre::M_MESH, mpMesh, Ogre::Serializer::readChunk(), Ogre::Serializer::readFileHeader(), readMaterial(), and readMesh().

void Ogre::Serializer::readBools DataChunk   chunk,
bool *    pDest,
size_t    count
[protected, inherited]
 

Definition at line 196 of file OgreSerializer.cpp.

References free, malloc, and Ogre::DataChunk::read().

Referenced by readMesh(), readMeshLodInfo(), readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl_v1::readSubMesh(), and readSubMesh().

void Ogre::MeshSerializerImpl::readBoundsInfo DataChunk   chunk [protected, virtual]
 

Definition at line 1056 of file OgreMeshSerializerImpl.cpp.

References Ogre::Mesh::_setBoundingSphereRadius(), Ogre::Mesh::_setBounds(), mpMesh, Ogre::Serializer::readReals(), Ogre::Real, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.

Referenced by readMesh().

unsigned short Ogre::Serializer::readChunk DataChunk   chunk [protected, virtual, inherited]
 

Definition at line 187 of file OgreSerializer.cpp.

References Ogre::Serializer::mCurrentChunkLen, Ogre::Serializer::readLongs(), and Ogre::Serializer::readShorts().

Referenced by importMesh(), Ogre::SkeletonSerializer::importSkeleton(), Ogre::SkeletonSerializer::readAnimation(), Ogre::SkeletonSerializer::readAnimationTrack(), Ogre::MeshSerializerImpl_v1::readGeometry(), readGeometry(), Ogre::MeshSerializerImpl_v1::readMaterial(), Ogre::MeshSerializerImpl_v1::readMesh(), readMesh(), readMeshLodInfo(), Ogre::MeshSerializerImpl_v1::readMeshLodUsageGenerated(), readMeshLodUsageGenerated(), readMeshLodUsageManual(), Ogre::MeshSerializerImpl_v1::readSubMesh(), and readSubMesh().

void Ogre::Serializer::readFileHeader DataChunk   chunk [protected, virtual, inherited]
 

Definition at line 160 of file OgreSerializer.cpp.

References Except, Ogre::HEADER_CHUNK_ID, Ogre::Serializer::mVersion, Ogre::Serializer::readShorts(), and Ogre::Serializer::readString().

Referenced by importMesh(), and Ogre::SkeletonSerializer::importSkeleton().

void Ogre::MeshSerializerImpl::readGeometry DataChunk   chunk,
VertexData   dest
[protected, virtual]
 

Reimplemented in Ogre::MeshSerializerImpl_v1.

Definition at line 602 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE, Ogre::DataChunk::isEOF(), Ogre::M_GEOMETRY_COLOURS, Ogre::M_GEOMETRY_NORMALS, Ogre::M_GEOMETRY_TEXCOORDS, Ogre::Serializer::readChunk(), readGeometryColours(), readGeometryNormals(), readGeometryPositions(), readGeometryTexCoords(), Ogre::Serializer::readInts(), Ogre::DataChunk::skip(), Ogre::VertexData::softwareBlendInfo, Ogre::VertexData::vertexCount, and Ogre::VertexData::vertexStart.

Referenced by readMesh(), and readSubMesh().

void Ogre::MeshSerializerImpl::readGeometryColours unsigned short    bindIdx,
DataChunk   chunk,
VertexData   dest
[protected, virtual]
 

Definition at line 726 of file OgreMeshSerializerImpl.cpp.

References Ogre::VertexDeclaration::addElement(), Ogre::VertexDeclaration::getVertexSize(), mpMesh, Ogre::Mesh::mVertexBufferShadowBuffer, Ogre::Mesh::mVertexBufferUsage, Ogre::Serializer::readLongs(), Ogre::RGBA, Ogre::VertexBufferBinding::setBinding(), Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::VertexData::vertexDeclaration, Ogre::VES_DIFFUSE, and Ogre::VET_COLOUR.

Referenced by readGeometry().

void Ogre::MeshSerializerImpl::readGeometryNormals unsigned short    bindIdx,
DataChunk   chunk,
VertexData   dest
[protected, virtual]
 

Definition at line 693 of file OgreMeshSerializerImpl.cpp.

References Ogre::VertexDeclaration::addElement(), Ogre::VertexDeclaration::getVertexSize(), mpMesh, Ogre::Mesh::mVertexBufferShadowBuffer, Ogre::Mesh::mVertexBufferUsage, Ogre::Serializer::readReals(), Ogre::Real, Ogre::VertexBufferBinding::setBinding(), Ogre::VertexData::softwareBlendInfo, Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::VertexData::vertexDeclaration, Ogre::VES_NORMAL, and Ogre::VET_FLOAT3.

Referenced by readGeometry().

void Ogre::MeshSerializerImpl::readGeometryPositions unsigned short    bindIdx,
DataChunk   chunk,
VertexData   dest
[protected, virtual]
 

Definition at line 661 of file OgreMeshSerializerImpl.cpp.

References Ogre::VertexDeclaration::addElement(), Ogre::VertexDeclaration::getVertexSize(), Ogre::Mesh::mIndexBufferShadowBuffer, mpMesh, Ogre::Mesh::mVertexBufferUsage, Ogre::Serializer::readReals(), Ogre::Real, Ogre::VertexBufferBinding::setBinding(), Ogre::VertexData::softwareBlendInfo, Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::VertexData::vertexDeclaration, Ogre::VES_POSITION, and Ogre::VET_FLOAT3.

Referenced by readGeometry().

void Ogre::MeshSerializerImpl::readGeometryTexCoords unsigned short    bindIdx,
DataChunk   chunk,
VertexData   dest,
unsigned short    set
[protected, virtual]
 

Reimplemented in Ogre::MeshSerializerImpl_v1_1.

Definition at line 745 of file OgreMeshSerializerImpl.cpp.

References Ogre::VertexDeclaration::addElement(), Ogre::VertexDeclaration::getVertexSize(), mpMesh, Ogre::Mesh::mVertexBufferShadowBuffer, Ogre::Mesh::mVertexBufferUsage, Ogre::Serializer::readReals(), Ogre::Serializer::readShorts(), Ogre::Real, Ogre::VertexBufferBinding::setBinding(), Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::VertexData::vertexDeclaration, Ogre::VES_TEXTURE_COORDINATES, and Ogre::VET_FLOAT1.

Referenced by readGeometry().

void Ogre::Serializer::readInts DataChunk   chunk,
unsigned int *    pDest,
size_t    count
[protected, inherited]
 

Definition at line 224 of file OgreSerializer.cpp.

References Ogre::Serializer::flipFromLittleEndian(), and Ogre::DataChunk::read().

Referenced by readGeometry(), readMeshBoneAssignment(), readMeshLodUsageGenerated(), readSubMesh(), and readSubMeshBoneAssignment().

void Ogre::Serializer::readLongs DataChunk   chunk,
unsigned long *    pDest,
size_t    count
[protected, inherited]
 

Definition at line 230 of file OgreSerializer.cpp.

References Ogre::Serializer::flipFromLittleEndian(), and Ogre::DataChunk::read().

Referenced by Ogre::Serializer::readChunk(), Ogre::MeshSerializerImpl_v1::readGeometry(), and readGeometryColours().

void Ogre::MeshSerializerImpl::readMaterial DataChunk   chunk [protected, virtual]
 

Reimplemented in Ogre::MeshSerializerImpl_v1.

Definition at line 786 of file OgreMeshSerializerImpl.cpp.

Referenced by importMesh().

void Ogre::MeshSerializerImpl::readMesh DataChunk   chunk [protected, virtual]
 

Reimplemented in Ogre::MeshSerializerImpl_v1.

Definition at line 410 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE, Ogre::DataChunk::isEOF(), Ogre::M_GEOMETRY, Ogre::M_MESH_BONE_ASSIGNMENT, Ogre::M_MESH_BOUNDS, Ogre::M_MESH_LOD, Ogre::M_MESH_SKELETON_LINK, Ogre::M_SUBMESH, Ogre::Serializer::mCurrentChunkLen, mIsSkeletallyAnimated, mpMesh, Ogre::Serializer::readBools(), readBoundsInfo(), Ogre::Serializer::readChunk(), readGeometry(), readMeshBoneAssignment(), readMeshLodInfo(), readSkeletonLink(), readSubMesh(), Ogre::Mesh::setVertexBufferPolicy(), Ogre::Mesh::sharedVertexData, and Ogre::DataChunk::skip().

Referenced by importMesh().

void Ogre::MeshSerializerImpl::readMeshBoneAssignment DataChunk   chunk [protected, virtual]
 

Reimplemented in Ogre::MeshSerializerImpl_v1.

Definition at line 832 of file OgreMeshSerializerImpl.cpp.

References Ogre::Mesh::addBoneAssignment(), Ogre::VertexBoneAssignment_s::boneIndex, mpMesh, Ogre::Serializer::readInts(), Ogre::Serializer::readReals(), Ogre::Serializer::readShorts(), Ogre::VertexBoneAssignment_s::vertexIndex, and Ogre::VertexBoneAssignment_s::weight.

Referenced by readMesh().

void Ogre::MeshSerializerImpl::readMeshLodInfo DataChunk   chunk [protected, virtual]
 

Definition at line 1078 of file OgreMeshSerializerImpl.cpp.

References Except, Ogre::Mesh::MeshLodUsage::fromDepthSquared, Ogre::Resource::getName(), Ogre::Mesh::getNumSubMeshes(), Ogre::Mesh::getSubMesh(), Ogre::Mesh::isLodManual(), Ogre::M_MESH_LOD_USAGE, Ogre::Mesh::mIsLodManual, Ogre::SubMesh::mLodFaceList, Ogre::Mesh::mMeshLodUsageList, Ogre::Mesh::mNumLods, mpMesh, Ogre::Serializer::readBools(), Ogre::Serializer::readChunk(), readMeshLodUsageGenerated(), readMeshLodUsageManual(), Ogre::Serializer::readReals(), and Ogre::Serializer::readShorts().

Referenced by Ogre::MeshSerializerImpl_v1::readMesh(), and readMesh().

void Ogre::MeshSerializerImpl::readMeshLodUsageGenerated DataChunk   chunk,
unsigned short    lodNum,
Mesh::MeshLodUsage   usage
[protected, virtual]
 

Reimplemented in Ogre::MeshSerializerImpl_v1.

Definition at line 1145 of file OgreMeshSerializerImpl.cpp.

References Except, Ogre::Resource::getName(), Ogre::Mesh::getNumSubMeshes(), Ogre::Mesh::getSubMesh(), Ogre::IndexData::indexBuffer, Ogre::IndexData::indexCount, Ogre::M_MESH_LOD_GENERATED, Ogre::Mesh::MeshLodUsage::manualMesh, Ogre::Mesh::MeshLodUsage::manualName, Ogre::Mesh::mIndexBufferShadowBuffer, Ogre::Mesh::mIndexBufferUsage, Ogre::SubMesh::mLodFaceList, mpMesh, Ogre::Serializer::readBools(), Ogre::Serializer::readChunk(), Ogre::Serializer::readInts(), and Ogre::Serializer::readShorts().

Referenced by readMeshLodInfo().

void Ogre::MeshSerializerImpl::readMeshLodUsageManual DataChunk   chunk,
unsigned short    lodNum,
Mesh::MeshLodUsage   usage
[protected, virtual]
 

Definition at line 1128 of file OgreMeshSerializerImpl.cpp.

References Except, Ogre::Resource::getName(), Ogre::M_MESH_LOD_MANUAL, Ogre::Mesh::MeshLodUsage::manualMesh, Ogre::Mesh::MeshLodUsage::manualName, mpMesh, Ogre::Serializer::readChunk(), and Ogre::Serializer::readString().

Referenced by readMeshLodInfo().

void Ogre::Serializer::readObject DataChunk   chunk,
Quaternion   pDest
[protected, inherited]
 

Definition at line 269 of file OgreSerializer.cpp.

References Ogre::Serializer::readReals(), Ogre::Quaternion::w, Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.

void Ogre::Serializer::readObject DataChunk   chunk,
Vector3   pDest
[protected, inherited]
 

Definition at line 262 of file OgreSerializer.cpp.

References Ogre::Serializer::readReals(), Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.

Referenced by Ogre::SkeletonSerializer::readBone(), and Ogre::SkeletonSerializer::readKeyFrame().

void Ogre::Serializer::readReals DataChunk   chunk,
Real   pDest,
size_t    count
[protected, inherited]
 

Definition at line 212 of file OgreSerializer.cpp.

References Ogre::Serializer::flipFromLittleEndian(), Ogre::DataChunk::read(), and Ogre::Real.

Referenced by Ogre::SkeletonSerializer::readAnimation(), readBoundsInfo(), Ogre::MeshSerializerImpl_v1::readGeometry(), readGeometryNormals(), readGeometryPositions(), Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords(), readGeometryTexCoords(), Ogre::SkeletonSerializer::readKeyFrame(), Ogre::MeshSerializerImpl_v1::readMaterial(), Ogre::MeshSerializerImpl_v1::readMeshBoneAssignment(), readMeshBoneAssignment(), readMeshLodInfo(), Ogre::Serializer::readObject(), Ogre::MeshSerializerImpl_v1::readSubMeshBoneAssignment(), and readSubMeshBoneAssignment().

void Ogre::Serializer::readShorts DataChunk   chunk,
unsigned short *    pDest,
size_t    count
[protected, inherited]
 

Definition at line 218 of file OgreSerializer.cpp.

References Ogre::Serializer::flipFromLittleEndian(), and Ogre::DataChunk::read().

Referenced by Ogre::MeshSerializer::importMesh(), Ogre::SkeletonSerializer::readAnimationTrack(), Ogre::SkeletonSerializer::readBone(), Ogre::SkeletonSerializer::readBoneParent(), Ogre::Serializer::readChunk(), Ogre::Serializer::readFileHeader(), Ogre::MeshSerializerImpl_v1::readGeometry(), Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords(), readGeometryTexCoords(), Ogre::MeshSerializerImpl_v1::readMeshBoneAssignment(), readMeshBoneAssignment(), readMeshLodInfo(), Ogre::MeshSerializerImpl_v1::readMeshLodUsageGenerated(), readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl_v1::readSubMesh(), readSubMesh(), Ogre::MeshSerializerImpl_v1::readSubMeshBoneAssignment(), readSubMeshBoneAssignment(), and readSubMeshOperation().

void Ogre::MeshSerializerImpl::readSkeletonLink DataChunk   chunk [protected, virtual]
 

Definition at line 780 of file OgreMeshSerializerImpl.cpp.

References mpMesh, Ogre::Serializer::readString(), and Ogre::Mesh::setSkeletonName().

Referenced by Ogre::MeshSerializerImpl_v1::readMesh(), and readMesh().

String Ogre::Serializer::readString DataChunk   chunk [protected, inherited]
 

Definition at line 236 of file OgreSerializer.cpp.

References Ogre::DataChunk::readUpTo().

Referenced by Ogre::MeshSerializer::importMesh(), Ogre::SkeletonSerializer::readAnimation(), Ogre::SkeletonSerializer::readBone(), Ogre::Serializer::readFileHeader(), Ogre::MeshSerializerImpl_v1::readMaterial(), readMeshLodUsageManual(), readSkeletonLink(), Ogre::MeshSerializerImpl_v1::readSubMesh(), readSubMesh(), and Ogre::MeshSerializerImpl_v1::readTextureLayer().

void Ogre::MeshSerializerImpl::readSubMesh DataChunk   chunk [protected, virtual]
 

Reimplemented in Ogre::MeshSerializerImpl_v1.

Definition at line 493 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE, Ogre::Mesh::createSubMesh(), Except, Ogre::IndexData::indexBuffer, Ogre::IndexData::indexCount, Ogre::SubMesh::indexData, Ogre::IndexData::indexStart, Ogre::DataChunk::isEOF(), Ogre::M_GEOMETRY, Ogre::M_SUBMESH_BONE_ASSIGNMENT, Ogre::M_SUBMESH_OPERATION, Ogre::Mesh::mIndexBufferShadowBuffer, Ogre::Mesh::mIndexBufferUsage, mpMesh, Ogre::Serializer::readBools(), Ogre::Serializer::readChunk(), readGeometry(), Ogre::Serializer::readInts(), Ogre::Serializer::readShorts(), Ogre::Serializer::readString(), readSubMeshBoneAssignment(), readSubMeshOperation(), Ogre::SubMesh::setMaterialName(), Ogre::DataChunk::skip(), Ogre::SubMesh::useSharedVertices, and Ogre::SubMesh::vertexData.

Referenced by readMesh().

void Ogre::MeshSerializerImpl::readSubMeshBoneAssignment DataChunk   chunk,
SubMesh   sub
[protected, virtual]
 

Reimplemented in Ogre::MeshSerializerImpl_v1.

Definition at line 847 of file OgreMeshSerializerImpl.cpp.

References Ogre::SubMesh::addBoneAssignment(), Ogre::VertexBoneAssignment_s::boneIndex, Ogre::Serializer::readInts(), Ogre::Serializer::readReals(), Ogre::Serializer::readShorts(), Ogre::VertexBoneAssignment_s::vertexIndex, and Ogre::VertexBoneAssignment_s::weight.

Referenced by readSubMesh().

void Ogre::MeshSerializerImpl::readSubMeshOperation DataChunk   chunk,
SubMesh   sub
[protected, virtual]
 

Definition at line 594 of file OgreMeshSerializerImpl.cpp.

References Ogre::SubMesh::operationType, and Ogre::Serializer::readShorts().

Referenced by readSubMesh().

void Ogre::MeshSerializerImpl::readTextureLayer DataChunk   chunk,
Material   pMat
[protected, virtual]
 

Reimplemented in Ogre::MeshSerializerImpl_v1.

Definition at line 793 of file OgreMeshSerializerImpl.cpp.

void Ogre::Serializer::writeBools const bool *    pLong,
size_t    count
[protected, inherited]
 

Definition at line 127 of file OgreSerializer.cpp.

References free, malloc, and Ogre::Serializer::writeData().

Referenced by writeLodSummary(), writeLodUsageGenerated(), writeMesh(), and writeSubMesh().

void Ogre::MeshSerializerImpl::writeBoundsInfo const Mesh   pMesh [protected, virtual]
 

Definition at line 1033 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE, Ogre::AxisAlignedBox::getMaximum(), Ogre::AxisAlignedBox::getMinimum(), Ogre::M_MESH_BOUNDS, Ogre::Mesh::mAABB, Ogre::Mesh::mBoundRadius, Ogre::Serializer::writeChunkHeader(), Ogre::Serializer::writeReals(), Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.

Referenced by writeMesh().

void Ogre::Serializer::writeChunkHeader unsigned short    id,
unsigned long    size
[protected, virtual, inherited]
 

Definition at line 61 of file OgreSerializer.cpp.

References Ogre::Serializer::writeLongs(), and Ogre::Serializer::writeShorts().

Referenced by Ogre::SkeletonSerializer::writeAnimation(), Ogre::SkeletonSerializer::writeAnimationTrack(), Ogre::SkeletonSerializer::writeBone(), Ogre::SkeletonSerializer::writeBoneParent(), writeBoundsInfo(), writeGeometry(), Ogre::SkeletonSerializer::writeKeyFrame(), writeLodSummary(), writeLodUsageGenerated(), writeLodUsageManual(), writeMesh(), writeMeshBoneAssignment(), writeSkeletonLink(), writeSubMesh(), writeSubMeshBoneAssignment(), and writeSubMeshOperation().

void Ogre::MeshSerializerImpl::writeCondensedVertexBuffer HardwareVertexBufferSharedPtr    vbuf,
const VertexElement   elem,
size_t    vertexCount
[protected, virtual]
 

Definition at line 237 of file OgreMeshSerializerImpl.cpp.

References Ogre::VertexElement::baseVertexPointerToElement(), Ogre::VertexElement::getSize(), Ogre::VertexElement::getType(), Ogre::Real, and Ogre::Serializer::writeReals().

Referenced by writeGeometry().

void Ogre::Serializer::writeData const void *    buf,
size_t    size,
size_t    count
[protected, inherited]
 

Definition at line 148 of file OgreSerializer.cpp.

References Ogre::Serializer::mpfFile.

Referenced by Ogre::Serializer::writeBools(), Ogre::Serializer::writeInts(), Ogre::Serializer::writeLongs(), Ogre::Serializer::writeReals(), and Ogre::Serializer::writeShorts().

void Ogre::Serializer::writeFileHeader void    [protected, virtual, inherited]
 

Definition at line 51 of file OgreSerializer.cpp.

References Ogre::HEADER_CHUNK_ID, Ogre::Serializer::mVersion, Ogre::Serializer::writeShorts(), and Ogre::Serializer::writeString().

Referenced by exportMesh(), and Ogre::SkeletonSerializer::exportSkeleton().

void Ogre::MeshSerializerImpl::writeGeometry const VertexData   pGeom [protected, virtual]
 

Definition at line 268 of file OgreMeshSerializerImpl.cpp.

References calcGeometrySize(), Except, Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexBufferBinding::getBuffer(), Ogre::VertexElement::getSize(), Ogre::VertexElement::getSource(), Ogre::VertexElement::getType(), Ogre::M_GEOMETRY, Ogre::M_GEOMETRY_COLOURS, Ogre::M_GEOMETRY_NORMALS, Ogre::M_GEOMETRY_TEXCOORDS, OGRE_MAX_TEXTURE_COORD_SETS, Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::VertexData::vertexDeclaration, Ogre::VES_DIFFUSE, Ogre::VES_NORMAL, Ogre::VES_POSITION, Ogre::VES_TEXTURE_COORDINATES, Ogre::Serializer::writeChunkHeader(), writeCondensedVertexBuffer(), Ogre::Serializer::writeInts(), and Ogre::Serializer::writeShorts().

Referenced by writeMesh(), and writeSubMesh().

void Ogre::Serializer::writeInts const unsigned int *    pInt,
size_t    count
[protected, inherited]
 

Definition at line 97 of file OgreSerializer.cpp.

References Ogre::Serializer::flipToLittleEndian(), free, malloc, and Ogre::Serializer::writeData().

Referenced by writeGeometry(), writeLodUsageGenerated(), writeMeshBoneAssignment(), writeSubMesh(), and writeSubMeshBoneAssignment().

void Ogre::MeshSerializerImpl::writeLodInfo const Mesh   pMesh [protected, virtual]
 

Definition at line 878 of file OgreMeshSerializerImpl.cpp.

References Ogre::Mesh::getLodLevel(), Ogre::Mesh::getNumLodLevels(), Ogre::Mesh::isLodManual(), writeLodSummary(), writeLodUsageGenerated(), and writeLodUsageManual().

Referenced by writeMesh().

void Ogre::MeshSerializerImpl::writeLodSummary unsigned short    numLevels,
bool    manual
[protected, virtual]
 

Definition at line 902 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE, Ogre::M_MESH_LOD, Ogre::Serializer::writeBools(), Ogre::Serializer::writeChunkHeader(), and Ogre::Serializer::writeShorts().

Referenced by writeLodInfo().

void Ogre::MeshSerializerImpl::writeLodUsageGenerated const Mesh   pMesh,
const Mesh::MeshLodUsage   usage,
unsigned short    lodNum
[protected, virtual]
 

Definition at line 944 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE, Ogre::Mesh::MeshLodUsage::fromDepthSquared, Ogre::Mesh::getNumSubMeshes(), Ogre::Mesh::getSubMesh(), Ogre::IndexData::indexBuffer, Ogre::IndexData::indexCount, Ogre::M_MESH_LOD_GENERATED, Ogre::M_MESH_LOD_USAGE, Ogre::SubMesh::mLodFaceList, Ogre::Serializer::writeBools(), Ogre::Serializer::writeChunkHeader(), Ogre::Serializer::writeInts(), Ogre::Serializer::writeReals(), and Ogre::Serializer::writeShorts().

Referenced by writeLodInfo().

void Ogre::MeshSerializerImpl::writeLodUsageManual const Mesh::MeshLodUsage   usage [protected, virtual]
 

Definition at line 921 of file OgreMeshSerializerImpl.cpp.

References Ogre::CHUNK_OVERHEAD_SIZE, Ogre::Mesh::MeshLodUsage::fromDepthSquared, Ogre::M_MESH_LOD_MANUAL, Ogre::M_MESH_LOD_USAGE, Ogre::Mesh::MeshLodUsage::manualName, Ogre::Serializer::writeChunkHeader(), Ogre::Serializer::writeReals(), and Ogre::Serializer::writeString().

Referenced by writeLodInfo().

void Ogre::Serializer::writeLongs const unsigned long *    pLong,
size_t    count
[protected, inherited]
 

Definition at line 112 of file OgreSerializer.cpp.

References Ogre::Serializer::flipToLittleEndian(), free, malloc, and Ogre::Serializer::writeData().

Referenced by Ogre::Serializer::writeChunkHeader().

void Ogre::MeshSerializerImpl::writeMesh const Mesh   pMesh [protected, virtual]
 

Definition at line 106 of file OgreMeshSerializerImpl.cpp.

References calcMeshSize(), Ogre::Mesh::getNumLodLevels(), Ogre::Mesh::getNumSubMeshes(), Ogre::Mesh::getSkeletonName(), Ogre::Mesh::getSubMesh(), Ogre::Mesh::hasSkeleton(), Ogre::M_MESH, Ogre::Mesh::mBoneAssignments, Ogre::Mesh::sharedVertexData, Ogre::Serializer::writeBools(), writeBoundsInfo(), Ogre::Serializer::writeChunkHeader(), writeGeometry(), writeLodInfo(), writeMeshBoneAssignment(), writeSkeletonLink(), and writeSubMesh().

Referenced by exportMesh().

void Ogre::MeshSerializerImpl::writeMeshBoneAssignment const VertexBoneAssignment   assign [protected, virtual]
 

Definition at line 808 of file OgreMeshSerializerImpl.cpp.

References Ogre::VertexBoneAssignment_s::boneIndex, calcBoneAssignmentSize(), Ogre::M_MESH_BONE_ASSIGNMENT, Ogre::VertexBoneAssignment_s::vertexIndex, Ogre::VertexBoneAssignment_s::weight, Ogre::Serializer::writeChunkHeader(), Ogre::Serializer::writeInts(), Ogre::Serializer::writeReals(), and Ogre::Serializer::writeShorts().

Referenced by writeMesh().

void Ogre::Serializer::writeObject const Quaternion   q [protected, inherited]
 

Definition at line 254 of file OgreSerializer.cpp.

References Ogre::Quaternion::w, Ogre::Serializer::writeReals(), Ogre::Quaternion::x, Ogre::Quaternion::y, and Ogre::Quaternion::z.

void Ogre::Serializer::writeObject const Vector3   vec [protected, inherited]
 

Definition at line 246 of file OgreSerializer.cpp.

References Ogre::Serializer::writeReals(), Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.

Referenced by Ogre::SkeletonSerializer::writeBone(), and Ogre::SkeletonSerializer::writeKeyFrame().

void Ogre::Serializer::writeReals const Real   pReal,
size_t    count
[protected, inherited]
 

Definition at line 67 of file OgreSerializer.cpp.

References Ogre::Serializer::flipToLittleEndian(), free, malloc, Ogre::Real, and Ogre::Serializer::writeData().

Referenced by Ogre::SkeletonSerializer::writeAnimation(), writeBoundsInfo(), writeCondensedVertexBuffer(), Ogre::SkeletonSerializer::writeKeyFrame(), writeLodUsageGenerated(), writeLodUsageManual(), writeMeshBoneAssignment(), Ogre::Serializer::writeObject(), and writeSubMeshBoneAssignment().

void Ogre::Serializer::writeShorts const unsigned short *    pShort,
size_t    count
[protected, inherited]
 

Definition at line 82 of file OgreSerializer.cpp.

References Ogre::Serializer::flipToLittleEndian(), free, malloc, and Ogre::Serializer::writeData().

Referenced by Ogre::SkeletonSerializer::writeAnimationTrack(), Ogre::SkeletonSerializer::writeBone(), Ogre::SkeletonSerializer::writeBoneParent(), Ogre::Serializer::writeChunkHeader(), Ogre::Serializer::writeFileHeader(), writeGeometry(), writeLodSummary(), writeLodUsageGenerated(), writeMeshBoneAssignment(), writeSubMesh(), writeSubMeshBoneAssignment(), and writeSubMeshOperation().

void Ogre::MeshSerializerImpl::writeSkeletonLink const String   skelName [protected, virtual]
 

Definition at line 772 of file OgreMeshSerializerImpl.cpp.

References calcSkeletonLinkSize(), Ogre::M_MESH_SKELETON_LINK, Ogre::Serializer::writeChunkHeader(), and Ogre::Serializer::writeString().

Referenced by writeMesh().

void Ogre::Serializer::writeString const String   string [protected, inherited]
 

Definition at line 153 of file OgreSerializer.cpp.

References Ogre::Serializer::mpfFile.

Referenced by Ogre::SkeletonSerializer::writeAnimation(), Ogre::SkeletonSerializer::writeBone(), Ogre::Serializer::writeFileHeader(), writeLodUsageManual(), writeSkeletonLink(), and writeSubMesh().

void Ogre::MeshSerializerImpl::writeSubMesh const SubMesh   s [protected, virtual]
 

Definition at line 167 of file OgreMeshSerializerImpl.cpp.

References calcSubMeshSize(), Ogre::SubMesh::getMaterialName(), Ogre::IndexData::indexBuffer, Ogre::IndexData::indexCount, Ogre::SubMesh::indexData, Ogre::M_SUBMESH, Ogre::SubMesh::mBoneAssignments, Ogre::SubMesh::useSharedVertices, Ogre::SubMesh::vertexData, Ogre::Serializer::writeBools(), Ogre::Serializer::writeChunkHeader(), writeGeometry(), Ogre::Serializer::writeInts(), Ogre::Serializer::writeShorts(), Ogre::Serializer::writeString(), writeSubMeshBoneAssignment(), and writeSubMeshOperation().

Referenced by writeMesh().

void Ogre::MeshSerializerImpl::writeSubMeshBoneAssignment const VertexBoneAssignment   assign [protected, virtual]
 

Definition at line 820 of file OgreMeshSerializerImpl.cpp.

References Ogre::VertexBoneAssignment_s::boneIndex, calcBoneAssignmentSize(), Ogre::M_SUBMESH_BONE_ASSIGNMENT, Ogre::VertexBoneAssignment_s::vertexIndex, Ogre::VertexBoneAssignment_s::weight, Ogre::Serializer::writeChunkHeader(), Ogre::Serializer::writeInts(), Ogre::Serializer::writeReals(), and Ogre::Serializer::writeShorts().

Referenced by writeSubMesh().

void Ogre::MeshSerializerImpl::writeSubMeshOperation const SubMesh   s [protected, virtual]
 

Definition at line 227 of file OgreMeshSerializerImpl.cpp.

References calcSubMeshOperationSize(), Ogre::M_SUBMESH_OPERATION, Ogre::SubMesh::operationType, Ogre::Serializer::writeChunkHeader(), and Ogre::Serializer::writeShorts().

Referenced by writeSubMesh().


Member Data Documentation

unsigned long Ogre::Serializer::mCurrentChunkLen [protected, inherited]
 

Definition at line 48 of file OgreSerializer.h.

Referenced by Ogre::Serializer::readChunk(), Ogre::MeshSerializerImpl_v1::readMaterial(), Ogre::MeshSerializerImpl_v1::readMesh(), and readMesh().

bool Ogre::MeshSerializerImpl::mIsSkeletallyAnimated [protected]
 

Definition at line 73 of file OgreMeshSerializerImpl.h.

Referenced by Ogre::MeshSerializerImpl_v1::readMesh(), and readMesh().

MaterialMap Ogre::MeshSerializerImpl::mMaterialList [protected]
 

Definition at line 71 of file OgreMeshSerializerImpl.h.

FILE* Ogre::Serializer::mpfFile [protected, inherited]
 

Definition at line 49 of file OgreSerializer.h.

Referenced by exportMesh(), Ogre::SkeletonSerializer::exportSkeleton(), Ogre::Serializer::writeData(), and Ogre::Serializer::writeString().

Mesh* Ogre::MeshSerializerImpl::mpMesh [protected]
 

Definition at line 72 of file OgreMeshSerializerImpl.h.

Referenced by importMesh(), MeshSerializerImpl(), readBoundsInfo(), Ogre::MeshSerializerImpl_v1::readGeometry(), readGeometryColours(), readGeometryNormals(), readGeometryPositions(), Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords(), readGeometryTexCoords(), Ogre::MeshSerializerImpl_v1::readMaterial(), Ogre::MeshSerializerImpl_v1::readMesh(), readMesh(), Ogre::MeshSerializerImpl_v1::readMeshBoneAssignment(), readMeshBoneAssignment(), readMeshLodInfo(), Ogre::MeshSerializerImpl_v1::readMeshLodUsageGenerated(), readMeshLodUsageGenerated(), readMeshLodUsageManual(), readSkeletonLink(), Ogre::MeshSerializerImpl_v1::readSubMesh(), and readSubMesh().

String Ogre::Serializer::mVersion [protected, inherited]
 

Definition at line 50 of file OgreSerializer.h.

Referenced by MeshSerializerImpl(), Ogre::MeshSerializerImpl_v1::MeshSerializerImpl_v1(), Ogre::MeshSerializerImpl_v1_1::MeshSerializerImpl_v1_1(), Ogre::Serializer::readFileHeader(), Ogre::Serializer::Serializer(), Ogre::SkeletonSerializer::SkeletonSerializer(), and Ogre::Serializer::writeFileHeader().


The documentation for this class was generated from the following files:

Copyright © 2002-2003 by The OGRE Team
Last modified Wed Jan 21 00:18:27 2004