00001 #ifndef GRIDNODES_H 00002 #define GRIDNODES_H 00003 00004 00005 #include <ngl/Camera.h> 00006 #include <ngl/Vec3.h> 00007 #include <ngl/Colour.h> 00008 #include <ngl/TransformStack.h> 00009 #include <ngl/ShaderLib.h> 00010 #include <ngl/VAOPrimitives.h> 00011 #include "Environment.h" 00012 00013 00021 00022 00023 // predeclare the scene manager - collision detection 00024 class Environment; 00025 00026 00027 class Graph; 00028 00029 class GridNodes 00030 { 00031 public: 00038 GridNodes(ngl::Vec3 _pos, ngl::Colour _c, GLfloat _r, const std::string &_shaderName,Graph *_parent, int _index); 00040 ~GridNodes(); 00042 void draw() const; 00044 inline ngl::Vec3 const getPosition(){return m_pos;} 00046 inline int getIndex(){return m_index;} 00048 inline void setIndex(const int i){m_index = i;} 00050 inline void setOccupiedStatus(){++m_occupied;} 00052 inline void desetOccupiedStatus(){--m_occupied;} 00054 int inline getOccupiedStatus(){return m_occupied;} 00056 int m_onOff; 00058 int m_occupied; 00059 00060 00061 00062 00063 00064 protected: 00066 ngl::Vec3 m_pos; 00068 ngl::Vec3 m_dir; 00070 ngl::Colour m_colour; 00072 std::string m_shaderName; 00074 Graph *m_parent; 00076 GLfloat m_radius; 00078 int m_index; 00079 00080 00081 00082 00083 }; 00084 00085 00086 00087 00088 00089 #endif // GRIDNODES_H