]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/object.h
Use event-based matrix updates for objects
[r2c2.git] / source / 3d / object.h
index aa6698799b4ba97c616a8c1e94423105d5d489f2..5696627f7e8e59a9285178dbdb43d6c13b939eea 100644 (file)
@@ -1,19 +1,28 @@
 #ifndef R2C2_3D_OBJECT_H_
 #define R2C2_3D_OBJECT_H_
 
+#include <sigc++/trackable.h>
+#include <msp/gl/matrix.h>
 #include "libr2c2/geometry.h"
+#include "libr2c2/object.h"
 
 namespace R2C2 {
 
-class Object3D
+class Object3D: public sigc::trackable
 {
 protected:
-       Object3D() { }
+       Object &object;
+       Msp::GL::Matrix matrix;
+
+       Object3D(Object &);
 public:
        virtual ~Object3D() { }
 
+       const Msp::GL::Matrix &get_matrix() const { return matrix; }
        virtual Vector get_node() const = 0;
        virtual bool is_visible() const = 0;
+protected:
+       virtual void moved();
 };
 
 } // namespace R2C2