Newer
Older
Import / research / 3d-z-maps / mview-0.3.3 / mview / mview.h
//
//    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