61e3b34bc7
and mesh primitives. Converted Perry's code to work with the osg::Geometry instead of osg::GeoSet.
59 lines
1.5 KiB
C++
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 );
|
|
}
|