]> git.tdb.fi Git - r2c2.git/blob - source/3d/object.h
5696627f7e8e59a9285178dbdb43d6c13b939eea
[r2c2.git] / source / 3d / object.h
1 #ifndef R2C2_3D_OBJECT_H_
2 #define R2C2_3D_OBJECT_H_
3
4 #include <sigc++/trackable.h>
5 #include <msp/gl/matrix.h>
6 #include "libr2c2/geometry.h"
7 #include "libr2c2/object.h"
8
9 namespace R2C2 {
10
11 class Object3D: public sigc::trackable
12 {
13 protected:
14         Object &object;
15         Msp::GL::Matrix matrix;
16
17         Object3D(Object &);
18 public:
19         virtual ~Object3D() { }
20
21         const Msp::GL::Matrix &get_matrix() const { return matrix; }
22         virtual Vector get_node() const = 0;
23         virtual bool is_visible() const = 0;
24 protected:
25         virtual void moved();
26 };
27
28 } // namespace R2C2
29
30 #endif