00001 #ifndef SIGEL_VISUALISATION_SIG_RENDERER_H 00002 #define SIGEL_VISUALISATION_SIG_RENDERER_H 00003 00004 #include <qvector.h> 00005 #include <qarray.h> 00006 #include <qstring.h> 00007 #include <qtextstream.h> 00008 00009 #include <newmat.h> 00010 00011 #include <GL/gl.h> 00012 00013 #include "SIGEL_Visualisation/SIG_VisualSceneObject.h" 00014 00015 namespace SIGEL_Visualisation 00016 { 00017 00024 class SIG_Renderer 00025 { 00026 public: 00041 SIG_Renderer(int noOfObjects, 00042 int noOfFloatingTexts); 00043 00050 ~SIG_Renderer(); 00051 00067 virtual void render() = 0; 00068 00069 virtual QString exportToPovray() = 0; 00070 00071 virtual QString createPovrayDeclarations() = 0; 00072 00073 static QString vectorToPovray( NEWMAT::ColumnVector input ); 00074 00085 QVector<SIG_VisualSceneObject> sceneObjects; 00086 00087 QVector<SIG_FloatingText> floatingTexts; 00088 00089 protected: 00090 00095 GLuint displayListsOffset; 00096 00101 GLuint noOfObjects; 00102 00112 virtual void buildDisplayLists() = 0; 00113 00124 void renderSceneObjects(); 00125 00126 QString exportSceneObjectsToPovray(); 00127 }; 00128 00129 } 00130 00131 #endif // SIGEL_VISUALISATION_SIG_RENDERER_H