OpenSceneGraph/src/osgPlugins/flt/MeshRecord.cpp
Robert Osfield 61e3b34bc7 Submission from Perry Miller for support of OpenFlight15.7's local vertex pool
and mesh primitives.  Converted Perry's code to work with the osg::Geometry
instead of osg::GeoSet.
2002-08-15 11:25:23 +00:00

59 lines
1.5 KiB
C++

// MeshRecord.cpp
#ifdef _WIN32
#pragma warning(disable:4786) // Truncated debug names.
#endif
#include "flt.h"
#include "Registry.h"
#include "MeshRecord.h"
#include "Input.h"
#include <assert.h>
using namespace flt;
////////////////////////////////////////////////////////////////////
//
// MeshRecord
//
////////////////////////////////////////////////////////////////////
RegisterRecordProxy<MeshRecord> g_MeshProxy;
MeshRecord::MeshRecord() : FaceRecord()
{
}
// virtual
MeshRecord::~MeshRecord()
{
}
void MeshRecord::endian()
{
// Should only be in here for little-endian machines.
assert ( flt::isLittleEndianMachine() );
// Call the base class's function.
// Note 1: We can do this because all the data members are the same.
// Note 2: FaceRecord::endian() checks for file version. This is
// unnecessary for a MeshRecord because it is new with 15.7. Therefore it
// could be optimized here, but doing this shouldn't slow us down too much.
FaceRecord::endian();
}
// virtual
bool MeshRecord::readLocalData ( Input &fr )
{
// Bypass FaceRecord's readLocalData() because it doesn't look for the
// correct kind of records. Instead, we call PrimNodeRecord's readLocalData()
// which looks for Ancillary Record's (we should at least find a
// LocalVertexPoolRecord), and then reads from a PushLevelRecord to a
// PopLevelRecord. Inside the push-pop pair we should have at least one
// MeshPrimitiveRecord.
return PrimNodeRecord::readLocalData ( fr );
}