#include "exhibit.h"
#include "snode.h"
+#include "scene.h"
+
+class ExhibitPriv {
+public:
+ Vec3 orig_pos;
+ Quat orig_rot;
+ SceneNode *orig_node;
+
+ ExhibitPriv();
+};
+
+ExSelection::ExSelection(Exhibit *ex)
+{
+ this->ex = ex;
+ obj = data = 0;
+ validmask = 0;
+}
+
+ExSelection::operator bool() const
+{
+ return ex != 0;
+}
+
+ExhibitPriv::ExhibitPriv()
+{
+ orig_node = 0;
+}
Exhibit::Exhibit()
{
+ priv = new ExhibitPriv;
+}
+
+Exhibit::~Exhibit()
+{
+ delete priv;
+}
+
+void Exhibit::set_node(SceneNode *node)
+{
+ this->node = priv->orig_node = node;
+ priv->orig_pos = node->get_position();
+ priv->orig_rot = node->get_rotation();
}
-void *Exhibit::select(const Ray &ray) const
+ExSelection Exhibit::select(const Ray &ray) const
{
- return 0; // TODO
+ return ExSelection(0);
}
-void *Exhibit::select(const Sphere &sph) const
+ExSelection Exhibit::select(const Sphere &sph) const
{
- return 0; // TODO
+ return ExSelection(0);
}
void Exhibit::update(float dt)