doesn't work
[laserbrain_demo] / src / exhibit.h
index c4c0ec9..004626c 100644 (file)
@@ -5,22 +5,46 @@
 #include "object.h"
 #include "geom.h"
 
-/*
+class Exhibit;
+class ExhibitPriv;
+
+enum {
+       EXSEL_RAY = 1,
+       EXSEL_SPHERE = 2
+};
+
+class ExSelection {
+public:
+       Exhibit *ex;
+       void *obj;
+       void *data;
+       Ray selray;
+       Sphere selsphere;
+       unsigned int validmask;
+
+       ExSelection(Exhibit *ex = 0);
+
+       operator bool() const;
+};
+
+/* TODO
 - select me aktina kai select me sfaira, epistrefei Selection
 - hover me aktina kai hover me sfaira
 - move me selection, origin, direction kai rotation (?)
  */
-
 class Exhibit : public Object {
+private:
+       ExhibitPriv *priv;
+
 public:
        Exhibit();
-       virtual ~Exhibit() = default;
+       virtual ~Exhibit();
 
        Exhibit(const Exhibit&) = delete;
        Exhibit &operator =(const Exhibit &) = delete;
 
-       virtual void *select(const Ray &ray) const;
-       virtual void *select(const Sphere &sph) const;
+       virtual ExSelection select(const Ray &ray) const;
+       virtual ExSelection select(const Sphere &sph) const;
 
        virtual void update(float dt = 0.0f);