This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
IndoorMap/mapview/3D/MapView3D.h
2018-01-16 12:43:45 +01:00

109 lines
1.9 KiB
C++

#ifndef MAPVIEW3D_H
#define MAPVIEW3D_H
#include <QtWidgets>
#include <QtOpenGL>
#include <Indoor/geo/Point3.h>
class MapModel;
class GridModel;
class GridRenderer;
class NavMeshRenderer;
class NavMeshModel;
class MapView3D : public QGLWidget {
Q_OBJECT
public:
MapView3D(QWidget* parent = 0);
/** set the underlying data-model */
void setModel(MapModel* mdl) {
this->model = mdl;
update();
}
void layerChange() {
update();
}
/** get the underlying data-model */
MapModel* getModel() {return model;}
/** get the renderer to use for the grid */
GridRenderer* getGridRenderer() {return gridRenderer;}
/** get the renderer to use for the NavMesh */
NavMeshRenderer* getNavMeshRenderer() {return navMeshRenderer;}
// /** show 3D rendered floorplan */
// void showFloorplan();
// /** show 3D rendered grid derived from the floorplan */
// void showGrid();
// /** show 3D rendered NavMesh derived from the floorplan */
// void showNavMesh();
/** show 3D rendered floorplan */
void setShowFloorplan(bool show);
/** show 3D rendered grid derived from the floorplan */
void setShowGrid(bool show);
/** show 3D rendered NavMesh derived from the floorplan */
void setShowNavMesh(bool show);
private:
/** the underlying data-model */
MapModel* model = nullptr;
GridModel* gridModel = nullptr;
GridRenderer* gridRenderer = nullptr;
NavMeshModel* navMeshModel = nullptr;
NavMeshRenderer* navMeshRenderer = nullptr;
bool showFloorplan = true;
bool showGrid = false;
bool showNavMesh = false;
Point3 rot;
Point3 center;
Point3 scale;
struct Mouse {
int btn;
float x;
float y;
} mouse;
struct Viewport {
Point2 size;
} viewport;
protected:
void initializeGL();
void paintGL();
void resizeGL(int width, int height);
void mousePressEvent(QMouseEvent* e);
void mouseMoveEvent(QMouseEvent* e);
void mouseReleaseEvent(QMouseEvent* e);
void wheelEvent(QWheelEvent* e);
private:
void draw();
};
#endif // MAPVIEW3D_H