fixed bounding volume issue
[laserbrain_demo] / src / exhibit.h
index 004626c..f2c521b 100644 (file)
@@ -1,12 +1,15 @@
 #ifndef EXHIBIT_H_
 #define EXHIBIT_H_
 
+#include <string>
 #include <gmath/gmath.h>
 #include "object.h"
 #include "geom.h"
+#include "audio/stream.h"
 
 class Exhibit;
 class ExhibitPriv;
+class Scene;
 
 enum {
        EXSEL_RAY = 1,
@@ -27,6 +30,24 @@ public:
        operator bool() const;
 };
 
+enum {
+       EXDATA_INFO,
+       EXDATA_VIDEO
+};
+
+class ExData {
+public:
+       int type;
+
+       std::string text;
+       AudioStream *voice;
+       // TODO: video stream
+
+       ExData();
+       ~ExData();
+};
+
+
 /* TODO
 - select me aktina kai select me sfaira, epistrefei Selection
 - hover me aktina kai hover me sfaira
@@ -37,20 +58,26 @@ private:
        ExhibitPriv *priv;
 
 public:
+       std::vector<ExData> data;
+
        Exhibit();
        virtual ~Exhibit();
 
        Exhibit(const Exhibit&) = delete;
        Exhibit &operator =(const Exhibit &) = delete;
 
+       virtual void set_node(SceneNode *node);
+
        virtual ExSelection select(const Ray &ray) const;
        virtual ExSelection select(const Sphere &sph) const;
 
-       virtual void update(float dt = 0.0f);
+       virtual void update(float dt = 0.0f) override;
 
        virtual void pre_draw() const;
-       virtual void draw() const;
+       virtual void draw() const override;
        virtual void post_draw() const;
+
+       virtual const AABox &get_aabox() const override;
 };
 
 #endif // EXHIBIT_H_