From Brede Johansen, new OpenFlight plugin!!!!!

By default the original flt plugin is still used, to select at runtime
the new plugin set the env OSG_OPEN_FLIGHT_PLUGIN=new
This commit is contained in:
Robert Osfield
2006-03-08 21:38:37 +00:00
parent 4fc4e60cc3
commit 3246dde716
41 changed files with 6475 additions and 2 deletions

View File

@@ -0,0 +1,210 @@
//
// OpenFlight<68> loader for OpenSceneGraph
//
// Copyright (C) 2005-2006 Brede Johansen
//
#include <cassert>
#include <osg/Geode>
#include <osg/Geometry>
#include "Registry.h"
#include "Document.h"
#include "RecordInputStream.h"
namespace flt {
/** PushLevel
*/
class PushLevel : public Record
{
public:
PushLevel() {}
META_Record(PushLevel)
virtual void read(RecordInputStream& in, Document& document)
{
document.pushLevel();
}
protected:
virtual ~PushLevel() {}
};
RegisterRecordProxy<PushLevel> g_PushLevel(PUSH_LEVEL_OP);
/** PophLevel
*/
class PopLevel : public Record
{
public:
PopLevel() {}
META_Record(PopLevel)
virtual void read(RecordInputStream& in, Document& document)
{
document.popLevel();
}
protected:
virtual ~PopLevel() {}
};
RegisterRecordProxy<PopLevel> g_PopLevel(POP_LEVEL_OP);
/** PushSubface
*/
class PushSubface : public Record
{
public:
PushSubface() {}
META_Record(PushSubface)
virtual void read(RecordInputStream& in, Document& document)
{
document.pushSubface();
}
protected:
virtual ~PushSubface() {}
};
RegisterRecordProxy<PushSubface> g_PushSubface(PUSH_SUBFACE_OP);
/** PopSubface
*/
class PopSubface : public Record
{
public:
PopSubface() {}
META_Record(PopSubface)
virtual void read(RecordInputStream& in, Document& document)
{
document.popSubface();
}
protected:
virtual ~PopSubface() {}
};
RegisterRecordProxy<PopSubface> g_PopSubface(POP_SUBFACE_OP);
/** PushExtension
*/
class PushExtension : public Record
{
public:
PushExtension() {}
META_Record(PushExtension)
virtual void read(RecordInputStream& in, Document& document)
{
readRecord(in,document);
document.pushExtension();
}
protected:
virtual ~PushExtension() {}
};
RegisterRecordProxy<PushExtension> g_PushExtension(PUSH_EXTENSION_OP);
/** PopExtension
*/
class PopExtension : public Record
{
public:
PopExtension() {}
META_Record(PopExtension)
virtual void read(RecordInputStream& in, Document& document)
{
readRecord(in,document);
document.popExtension();
}
protected:
virtual ~PopExtension() {}
};
RegisterRecordProxy<PopExtension> g_PopExtension(POP_EXTENSION_OP);
/** PushAttribute - Reserved subtree
*/
class PushAttribute : public Record
{
public:
PushAttribute() {}
META_Record(PushAttribute)
virtual void read(RecordInputStream& in, Document& document)
{
readRecord(in,document);
// in().seekg(in.getEndOfRecord(), std::ios_base::beg);
// loop until PopAttribute
}
protected:
virtual ~PushAttribute() {}
};
RegisterRecordProxy<PushAttribute> g_PushAttribute(PUSH_ATTRIBUTE_OP);
/** PopAttribute
*/
class PopAttribute : public Record
{
public:
PopAttribute() {}
META_Record(PopAttribute)
virtual void read(RecordInputStream& in, Document& document)
{
readRecord(in,document);
}
protected:
virtual ~PopAttribute() {}
};
RegisterRecordProxy<PopAttribute> g_PopAttribute(POP_ATTRIBUTE_OP);
} // end namespace