Files
OpenSceneGraph/src/osgPlugins/flt/InstanceRecords.h

90 lines
2.1 KiB
C++

// InstanceRecords.h
#ifndef __FLT_INSTANCE_RECORDS_H
#define __FLT_INSTANCE_RECORDS_H
#include "opcodes.h"
#include "Record.h"
#include "RecordVisitor.h"
namespace flt {
////////////////////////////////////////////////////////////////////
//
// InstanceDefinitionRecord
//
////////////////////////////////////////////////////////////////////
typedef struct InstanceDefinitionTag
{
SRecHeader RecHeader;
int16 iSpare;
int16 iInstDefNumber;
}SInstanceDefinition;
class InstanceDefinitionRecord : public PrimNodeRecord
{
public:
InstanceDefinitionRecord();
virtual Record* clone() const { return new InstanceDefinitionRecord(); }
virtual const char* className() const { return "InstanceDefinitionRecord"; }
virtual int classOpcode() const { return INSTANCE_DEFINITION_OP; }
virtual void accept(RecordVisitor& rv) { rv.apply(*this); }
// virtual void traverse(RecordVisitor& rv);
SInstanceDefinition* getData() const { return (SInstanceDefinition*)_pData; }
protected:
virtual ~InstanceDefinitionRecord();
virtual void endian();
};
////////////////////////////////////////////////////////////////////
//
// InstanceReferenceRecord
//
////////////////////////////////////////////////////////////////////
typedef struct InstanceReferenceTag
{
SRecHeader RecHeader;
int16 iSpare;
int16 iInstDefNumber;
}SInstanceReference;
class InstanceReferenceRecord : public PrimNodeRecord
{
public:
InstanceReferenceRecord();
virtual Record* clone() const { return new InstanceReferenceRecord(); }
virtual const char* className() const { return "InstanceReferenceRecord"; }
virtual int classOpcode() const { return INSTANCE_REFERENCE_OP; }
virtual void accept(RecordVisitor& rv) { rv.apply(*this); }
// virtual void traverse(RecordVisitor& rv);
SInstanceReference* getData() const { return (SInstanceReference*)_pData; }
protected:
virtual ~InstanceReferenceRecord();
virtual void endian();
};
}; // end namespace flt
#endif