fshake3d  0.0.1
FreeformDensity3DSurfaceEditor
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines
Scene.hpp
Go to the documentation of this file.
00001 #ifndef SCENE_HPP
00002 #define SCENE_HPP
00003 
00004 #include "ui_Event.hpp"
00005 #include "math.hpp"
00006 
00007 class Node
00008 {
00009 public:
00010   virtual ~Node() { }
00011 };
00012 
00013 class Group : public Node
00014 {
00015 public:
00016   size_t getChildCount();
00017   Node*  getChildAt(size_t index);
00018 private:
00019   std::vector<Node*> mChildren;
00020 };
00021 
00022 class Shape
00023 {
00024 public:
00025   virtual void display() = 0;
00026 };
00027 
00028 class SceneView;
00029 
00030 #include "scene_Control3D.hpp"
00031 
00032 class Scene
00033 {
00034 public:
00035   void display();
00036   void onEvent(Event& e);
00037   void select(const Rayd& ray, SceneView& view);
00038   void drag(const Rayd& ray, SceneView& view);
00039   void addNode(Node* node);
00040 private:
00041   std::vector<Node*> mNodes;
00042 };
00043 
00044 class SceneController
00045 {
00046 public:
00047   void select(const Rayd& ray, SceneView& view);
00048   void drag(const Rayd& ray, SceneView& view);
00049 };
00050 
00051 #endif // SCENE_HPP