#ifndef __EXPORTER_H #define __EXPORTER_H #include #include using namespace std; class KdTree; class SceneGraphNode; class Ray; class AxisAlignedBox3; class MeshInstance; class Exporter { protected: string mFilename; bool wireframe; public: Exporter(const string filename):mFilename(filename),wireframe(false) { } virtual ~Exporter() {} virtual bool ExportScene(SceneGraphNode *node) = 0; virtual bool ExportBox(const AxisAlignedBox3 &box) = 0; virtual bool ExportKdTree(const KdTree &tree) = 0; virtual bool ExportRays(const vector &rays, const float length=1000) = 0; virtual void ExportMeshInstance(MeshInstance *mesh) = 0; void SetWireframe() { wireframe = true; } void SetFilled() { wireframe = false; } static Exporter * GetExporter(const string filename); }; #endif