RoutingRenderable.h

Go to the documentation of this file.
00001 #ifndef ROUTINGRENDERABLE_H_
00002 #define ROUTINGRENDERABLE_H_
00003 
00004 #include "irender.h"
00005 #include <list>
00006 #include "RoutingLump.h"
00007 
00008 namespace routing
00009 {
00010     class RoutingRenderableEntry
00011     {
00012         private:
00013             RoutingLumpEntry _data;
00014             void renderWireframe (void) const;
00015             void renderAccessability (RenderStateFlags state) const;
00016             void renderConnections (void) const;
00017             void renderConnection (EDirection direction) const;
00018         public:
00019             RoutingRenderableEntry (const RoutingLumpEntry& data) :
00020                 _data(data)
00021             {
00022             }
00023 
00024             void render (RenderStateFlags state) const;
00025 
00026             bool isForLevel (int level) const;
00027     };
00028 
00029     typedef std::list<RoutingRenderableEntry*> RoutingRenderableEntries;
00030 
00031     class RoutingRenderable: public OpenGLRenderable
00032     {
00033         private:
00034             RoutingRenderableEntries _entries;
00035             mutable int _glListID;
00036             bool _showAllLowerLevels;
00037             void checkClearGLCache (void);
00038 
00039         public:
00040             RoutingRenderable ();
00041 
00042             ~RoutingRenderable ();
00043 
00046             void render (RenderStateFlags flags) const;
00047 
00048             void setShowAllLowerLevels (bool showAllLowerLevels);
00049 
00052             void add (const RoutingLumpEntry& data);
00054             void clear ();
00055     };
00056 }
00057 
00058 #endif /* ROUTINGRENDERABLE_H_ */

Generated by  doxygen 1.6.2