//
// File: mview.h
//
// (C) 2000-2008 Helmut Cantzler
//
// Licensed under the terms of the Lesser General Public License.
//
#ifndef _MVIEW_H
#define _MVIEW_H
#include <QMainWindow>
#include "glmesh.h"
#include "viewpointdialog.h"
class QLabel;
class QSlider;
class QAction;
class QActionGroup;
class Mesh;
class MView: public QMainWindow
{
Q_OBJECT
public:
MView(int argc, char **argv);
~MView();
public slots:
void displayTexture(void);
void closePick(void);
void closeText(void);
private slots:
void loadModel();
void loadFeatures();
void saveAs(QAction *a);
void takeShot(QAction *a);
void togglePick(bool pickState);
void setBackgroundColor();
void resetView();
void setView();
void clearViews();
void saveView();
void loadView(QAction *a);
void about();
protected:
void timerEvent(QTimerEvent *e);
private:
void createActions();
void createMenus();
void createToolBars();
void createStatusBar();
void setStatus();
int loadModelFile(const char *fileName, Mesh **mesh);
void setDefaultConfig();
void setOption(QAction *a, bool b);
void setName(QString fileName, Mesh *mesh);
GLMesh *glmesh;
GLMesh *glmeshCubeSides[6];
GLMeshSettings *settings;
QString name;
QSlider *clipping;
QLabel *labelMesh, *labelFeatures, *labelFPS;
QAction *openAct, *openFeatAct, *exitAct;
QAction *dTextAct, *dSolidAct, *dFrontAct, *dWireAct, *dPointAct;
QAction *dFeatAct, *pickAct, *textAct, *polyAct;
QAction *lightAct, *shapeAct, *normAct, *cutAct;
QAction *filtAct, *featAct, *keepAct, *backAct;
QAction *vSetAct, *vResAct, *vSaveAct, *vCleaAct;
QAction *abouAct, *abqtAct, *boundingAct;
QActionGroup *screenshotActs, *saveActs, *displayActs;
QMenu *viewpointMenu;
QActionGroup *viewActs;
QMap<QAction*, GLMeshSettings> viewpoints;
};
#endif