void readStreamWithEndianess( IStreamRef aIStream, T* param, bool isBigEndian ) { if( isBigEndian ) { aIStream->readBig( param ); return; } aIStream->readLittle( param ); }
void TriMesh::read( DataSourceRef dataSource ) { IStreamRef in = dataSource->createStream(); clear(); uint8_t versionNumber; in->read( &versionNumber ); uint32_t numVertices, numNormals, numTexCoords, numIndices; in->readLittle( &numVertices ); in->readLittle( &numNormals ); in->readLittle( &numTexCoords ); in->readLittle( &numIndices ); for( size_t idx = 0; idx < numVertices; ++idx ) { Vec3f v; in->readLittle( &v.x ); in->readLittle( &v.y ); in->readLittle( &v.z ); mVertices.push_back( v ); } for( size_t idx = 0; idx < numNormals; ++idx ) { Vec3f v; in->readLittle( &v.x ); in->readLittle( &v.y ); in->readLittle( &v.z ); mNormals.push_back( v ); } for( size_t idx = 0; idx < numTexCoords; ++idx ) { Vec2f v; in->readLittle( &v.x ); in->readLittle( &v.y ); mTexCoords.push_back( v ); } for( size_t idx = 0; idx < numIndices; ++idx ) { uint32_t v; in->readLittle( &v ); mIndices.push_back( v ); } }