ModelPreview.h

Go to the documentation of this file.
00001 #ifndef MODELPREVIEW_H_
00002 #define MODELPREVIEW_H_
00003 
00004 #include "imodel.h"
00005 #include "math/matrix.h"
00006 
00007 #include <gtk/gtk.h>
00008 #include <igl.h>
00009 #include <string>
00010 
00011 namespace ui
00012 {
00018     class ModelPreview
00019     {
00020             // Top-level widget
00021             GtkWidget* _widget;
00022 
00023             // GL widget
00024             GtkWidget* _glWidget;
00025 
00026             // Toolbar buttons
00027             GtkToolItem* _drawBBox;
00028 
00029             // Current model to display
00030             model::IModelPtr _model;
00031 
00032             // Current distance between camera and preview
00033             GLfloat _camDist;
00034 
00035             // Current rotation matrix
00036             Matrix4 _rotation;
00037 
00038         private:
00039 
00040             /* GTK CALLBACKS */
00041 
00042             static void callbackGLDraw (GtkWidget*, GdkEventExpose*, ModelPreview*);
00043             static void callbackGLMotion (GtkWidget*, GdkEventMotion*, ModelPreview*);
00044             static void callbackGLScroll (GtkWidget*, GdkEventScroll*, ModelPreview*);
00045             static void callbackToggleBBox (GtkToggleToolButton*, ModelPreview*);
00046 
00047         public:
00048 
00051             ModelPreview ();
00052 
00055             ~ModelPreview ();
00056 
00062             void setSize (int size);
00063 
00067             void initialisePreview ();
00068 
00075             void setModel (const std::string& model);
00076 
00082             void setSkin (const std::string& skin);
00083 
00086             operator GtkWidget* ()
00087             {
00088                 return _widget;
00089             }
00090 
00093             model::IModel* getModel ()
00094             {
00095                 return _model.get();
00096             }
00097     };
00098 
00099 }
00100 
00101 #endif /*MODELPREVIEW_H_*/

Generated by  doxygen 1.6.2