vcglib/apps/sample/trimesh_QT_shared/mainwindow.h

84 lines
3.5 KiB
C++

/****************************************************************************
* VCGLib o o *
* Visual and Computer Graphics Library o o *
* _ O _ *
* Copyright(C) 2007 \/)\/ *
* Visual Computing Lab /\/| *
* ISTI - Italian National Research Council | *
* \ *
* All rights reserved. *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) *
* for more details. *
* *
****************************************************************************/
/****************************************************************************
History
$Log: not supported by cvs2svn $
****************************************************************************/
#ifndef MAINWINDOW_H_
#define MAINWINDOW_H_
#include <GL/glew.h>
#include <QGLContext>
#include "ui_mainwindow.h"
#include "mesh.h"
#include <wrap/gl/gl_mesh_attributes_info.h>
#include <wrap/qt/qt_thread_safe_mesh_attributes_multi_viewer_bo_manager.h>
#include <wrap/qt/qt_thread_safe_memory_info.h>
#include <QProgressBar>
#include <QStatusBar>
#include <QComboBox>
#include "glarea.h"
enum MyDrawMode{MDM_SMOOTH=0,MDM_POINTS,MDM_WIRE,MDM_FLAT,MDM_QUAD_WIRE,MDM_QUAD_SMOOTH_WIRE};
class MainWindow:public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget * parent = 0);
~MainWindow();
CMeshO& currentMesh() {return mesh;}
SharedDataOpenGLContext::MultiViewManager* getMultiviewerManager();
void updateRenderModality(GLArea* area,int clickedindex);
static bool qCallBack(const int pos, const char * str);
public slots:
void chooseMesh();
void loadTetrahedron();
void loadDodecahedron();
void initMesh(QString& message);
void updateRenderModality(int clickedindex);
signals:
void loadMesh(QString newMesh);
void updateRenderModalityRequested(int);
private:
void initTable();
Ui::mainWindow ui;
GLArea* glar[2];
SharedDataOpenGLContext* shared;
vcg::QtThreadSafeMemoryInfo mi;
QComboBox* rendbox[2];
/// the active mesh instance
CMeshO mesh;
QMap<MyDrawMode,QString> stringrendtable;
QMap<MyDrawMode,QPair<vcg::GLMeshAttributesInfo::PRIMITIVE_MODALITY_MASK,vcg::GLMeshAttributesInfo::RendAtts> > rendtable;
static QProgressBar* qb;
static QStatusBar* sb;
};
#endif /*MAINWINDOW_H_ */