|
Viewer
A plugin-based viewer for learning Computer Graphics and OpenGL
|
00001 #ifndef _BASIC_PLUGIN_H 00002 #define _BASIC_PLUGIN_H 00003 00004 #include "GL/glew.h" 00005 #include <QtPlugin> 00006 #include <QWidget> 00007 #include "glwidget.h" 00008 00009 //class GLWidget; 00010 00034 class BasicPlugin 00035 { 00036 public: 00040 BasicPlugin() : pdrawPlugin(0) {} 00041 00045 virtual ~BasicPlugin() {} 00046 00047 // general methods 00054 virtual void onPluginLoad() {} 00055 00060 virtual void onObjectAdd() {} 00061 00062 // methods for "effect" plugins 00071 virtual void preFrame() {} 00072 00079 virtual void postFrame() {} 00080 00081 // methods for "action" plugins 00085 virtual void keyPressEvent ( QKeyEvent * ){} 00089 virtual void keyReleaseEvent ( QKeyEvent * ) {} 00093 virtual void mouseMoveEvent ( QMouseEvent * ) {} 00097 virtual void mousePressEvent ( QMouseEvent * ) {} 00101 virtual void mouseReleaseEvent ( QMouseEvent * ) {} 00105 virtual void wheelEvent ( QWheelEvent * ) {} 00106 00107 // methods for "render" plugins 00121 virtual bool paintGL() {return false;} 00122 00123 // methods for "draw" plugins 00154 virtual bool drawScene() {return false;} 00155 00156 // access to application components 00160 Scene* scene() {return pglwidget->scene();} 00161 00165 Camera* camera() {return pglwidget->camera();} 00166 00171 BasicPlugin* drawPlugin() {return pdrawPlugin;} 00172 00176 GLWidget* glwidget() {return pglwidget;} 00177 00178 // internal methods 00179 void setWidget(GLWidget* glwidget) {pglwidget = glwidget; } 00180 void setDrawPlugin(BasicPlugin* drawPlugin) {pdrawPlugin = drawPlugin;} 00181 00182 private: 00183 GLWidget* pglwidget; 00184 BasicPlugin* pdrawPlugin; 00185 }; 00186 00187 Q_DECLARE_INTERFACE(BasicPlugin, "edu.upc.fib.graug.BasicPlugin/1.0"); 00188 00189 #endif 00190 00191
1.7.6.1