added a non-interactive blobs exhibit
[laserbrain_demo] / src / exhibit.h
1 #ifndef EXHIBIT_H_
2 #define EXHIBIT_H_
3
4 #include <gmath/gmath.h>
5 #include "object.h"
6 #include "geom.h"
7
8 /*
9 - select me aktina kai select me sfaira, epistrefei Selection
10 - hover me aktina kai hover me sfaira
11 - move me selection, origin, direction kai rotation (?)
12  */
13
14 class Exhibit : public Object {
15 public:
16         Exhibit();
17         virtual ~Exhibit() = default;
18
19         Exhibit(const Exhibit&) = delete;
20         Exhibit &operator =(const Exhibit &) = delete;
21
22         virtual void *select(const Ray &ray) const;
23         virtual void *select(const Sphere &sph) const;
24
25         virtual void update(float dt = 0.0f);
26
27         virtual void pre_draw() const;
28         virtual void draw() const;
29         virtual void post_draw() const;
30 };
31
32 #endif  // EXHIBIT_H_