void DiMeshSerializer::ExportMesh( const DiMeshPtr pMesh, DiDataStreamPtr stream ) { static char head[4] = { 'D', 'e', 'm', 'i' }; stream->Write(head, 4); uint16 version = MODEL_SERIAL_VERSION_NUM - 1; stream->Write(&version,sizeof(uint16)); DiMeshSerializerImpl* impl = GetImplemention((DiMeshSerialVersion)version); if (impl) { impl->ExportMesh(pMesh.get(),stream); } DI_DELETE impl; }
void DiMotionSerializer::ExportMotion( const DiMotionPtr pMotion, DiDataStreamPtr stream ) { char sign[4]; sign[0] = 'D'; sign[1] = 'i'; sign[2] = 'M'; sign[3] = 'o'; stream->Write(sign,4); uint16 version = MOTION_SERIAL_VERSION_NUM - 1; stream->Write(&version,sizeof(uint16)); DiMotionSerializerImpl* impl = GetImplemention((DiMotionSerialVersion)version); if (impl) { impl->ExportMotion(pMotion.get(),stream); } DI_DELETE impl; }