-/* $Id$
-
-This file is part of R²C²
-Copyright © 2010 Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
#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 Layout3D;
+
+class Object3D: public sigc::trackable
{
protected:
- Object3D() { }
+ Layout3D &layout;
+ Object &object;
+ Msp::GL::Matrix matrix;
+
+ Object3D(Layout3D &, Object &);
public:
- virtual ~Object3D() { }
+ virtual ~Object3D();
+
+ Layout3D &get_layout() const { return layout; }
+ Object &get_object() const { return object; }
+ 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