diff --git a/MainController.cpp b/MainController.cpp index b026fe0..ce5fcd7 100644 --- a/MainController.cpp +++ b/MainController.cpp @@ -77,7 +77,7 @@ MainController::MainController() { connect(mw, &MainWindow::onGridShowEdges, [&] (const bool show) {mw->getMapView3D()->getGridRenderer()->setShowEdges(show);} ); - mapModel->load("../IndoorMap/maps/SHL17.xml"); + mapModel->load("../IndoorMap/maps/SHL20.xml"); //mapModel->load("../IndoorMap/maps/test.xml"); } diff --git a/MainWindow.cpp b/MainWindow.cpp index 6c5d3d3..bf074f5 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -27,6 +27,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi ui->setupUi(this); + + QString css; css += "QPushButton { border: 1px solid #000000; background-color: #ffffff; }"; css += "QPushButton:!enabled { border: 1px solid #cccccc; background-color:none; }"; @@ -35,6 +37,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi this->setStyleSheet(css); + layerTree = new QTreeView(); + mapView2D = new MapView2D(); mapView3D = new MapView3D(); @@ -43,14 +47,52 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi actionWidget = new ActionWidget(); toolBoxWidget = new ToolBoxWidget(mapView2D); - ui->layButtons->addWidget(toolBoxWidget); + // toolbox + QDockWidget* toolBoxWidgetDock = new QDockWidget("", this); toolBoxWidgetDock->setWidget(toolBoxWidget); + addDockWidget(Qt::LeftDockWidgetArea, toolBoxWidgetDock); - ui->layMap->addWidget(mapView2D); - ui->layMap->addWidget(mapView3D); - ui->layTree->addWidget(layerParamWidget); - ui->layTree->addWidget(elementParamWidget); - ui->layTree->addWidget(actionWidget); + // layers + QDockWidget* layerTreeDock = new QDockWidget("layers", this); layerTreeDock->setWidget(layerTree); + addDockWidget(Qt::RightDockWidgetArea, layerTreeDock); + + // layer params + QDockWidget* layerParamWidgetDock = new QDockWidget("layer params", this); layerParamWidgetDock->setWidget(layerParamWidget); + addDockWidget(Qt::RightDockWidgetArea, layerParamWidgetDock); + + // element params + QDockWidget* elementParamWidgetDock = new QDockWidget("element params", this); elementParamWidgetDock->setWidget(elementParamWidget); + addDockWidget(Qt::RightDockWidgetArea, elementParamWidgetDock); + + // actions + QDockWidget* actionWidgetDock = new QDockWidget("actions", this); actionWidgetDock->setWidget(actionWidget); + addDockWidget(Qt::RightDockWidgetArea, actionWidgetDock); + + + + + QSplitter* splitter = new QSplitter(Qt::Orientation::Vertical); + setCentralWidget(splitter); + splitter->addWidget(mapView2D); + splitter->addWidget(mapView3D); + +// // 2D View +// QDockWidget* mapView2DDoc = new QDockWidget("2D", this); mapView2DDoc->setWidget(mapView2D); +// addDockWidget(Qt::AllDockWidgetAreas, mapView2DDoc); + +// // 3D View +// QDockWidget* mapView3DDoc = new QDockWidget("3D", this); mapView3DDoc->setWidget(mapView3D); +// addDockWidget(Qt::AllDockWidgetAreas, mapView3DDoc); + + +// ui->layButtons->addWidget(toolBoxWidget); + +// ui->layMap->addWidget(mapView2D); +// ui->layMap->addWidget(mapView3D); + +// ui->layTree->addWidget(layerParamWidget); +// ui->layTree->addWidget(elementParamWidget); +// ui->layTree->addWidget(actionWidget); // show mode @@ -85,5 +127,5 @@ MainWindow::~MainWindow() { QTreeView* MainWindow::getTree() { - return ui->layerTree; + return layerTree; } diff --git a/MainWindow.h b/MainWindow.h index a178834..0c3f658 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -2,6 +2,7 @@ #define MAINWINDOW_H #include + class MapView2D; class MapView3D; class QTreeView; @@ -44,6 +45,7 @@ signals: private: Ui::MainWindow *ui; + QTreeView* layerTree; MapView2D* mapView2D; MapView3D* mapView3D; ElementParamWidget* elementParamWidget; diff --git a/MainWindow.ui b/MainWindow.ui index 24d078d..88da9ec 100644 --- a/MainWindow.ui +++ b/MainWindow.ui @@ -14,28 +14,7 @@ MainWindow - - - - - - - - - - - - - - 250 - 16777215 - - - - - - - + diff --git a/main.cpp b/main.cpp index 87d67c0..8ded81e 100644 --- a/main.cpp +++ b/main.cpp @@ -1,8 +1,8 @@ #include "MainController.h" #include -#include "exp.h" -#include "ray.h" +//#include "exp.h" +//#include "ray.h" int main(int argc, char *argv[]) { diff --git a/mapview/3DGrid/GridModel.h b/mapview/3DGrid/GridModel.h index d149b32..e106726 100644 --- a/mapview/3DGrid/GridModel.h +++ b/mapview/3DGrid/GridModel.h @@ -21,7 +21,7 @@ class GridModel { private: - int gridSize_cm = 31; + int gridSize_cm = 20; Grid grid; Floorplan::IndoorMap* im; @@ -82,7 +82,7 @@ public: Listener l; GridFactory fac(grid); - fac.build(im, true, &l); + fac.build(im, &l); Importance::addImportance(grid, 0); //Importance::addImportance(grid, 400); diff --git a/mapview/elements/MV2DElementFloorUnderlay.h b/mapview/elements/MV2DElementFloorUnderlay.h index 9dfc5ca..0c4d1a5 100644 --- a/mapview/elements/MV2DElementFloorUnderlay.h +++ b/mapview/elements/MV2DElementFloorUnderlay.h @@ -79,8 +79,8 @@ public: float sy1 = p.s.yms(my1); float sx2 = p.s.xms(mx2); float sy2 = p.s.yms(my2); - float sw = abs(sx1-sx2); - float sh = abs(sy1-sy2); + float sw = std::abs(sx1-sx2); + float sh = std::abs(sy1-sy2); bbox = BBox2(); bbox.add(Point2(mx1, my1)); diff --git a/mapview/elements/MV2DElementStair.h b/mapview/elements/MV2DElementStair.h index ac6f325..8e5bccb 100644 --- a/mapview/elements/MV2DElementStair.h +++ b/mapview/elements/MV2DElementStair.h @@ -97,8 +97,8 @@ public: QLinearGradient gradient(p.s.xms(part.start.x), p.s.yms(part.start.y), p.s.xms(part.end.x), p.s.yms(part.end.y)); const float p1 = 0.1 + clamp01( part.start.z / floor->height) * 0.8; const float p2 = 0.1 + clamp01( part.end.z / floor->height) * 0.8; - gradient.setColorAt(0, QColor(p1*255, p1*255, p1*255)); - gradient.setColorAt(1, QColor(p2*255, p2*255, p2*255)); + gradient.setColorAt(0, QColor(p1*255, p1*255, p1*255, 128)); + gradient.setColorAt(1, QColor(p2*255, p2*255, p2*255, 128)); p.setBrush(gradient); p.setPen(QColor(0,0,0,128)); @@ -107,6 +107,24 @@ public: const std::vector points = {quad.p1, quad.p2, quad.p3, quad.p4}; p.drawPolygon(points); + + QPen pen; + pen.setWidth(5); + pen.setColor(QColor(255,0,0)); + p.setPen(pen); + + // LINT + if (i == 0) { + if (quad.p1.z != floor->getStartingZ()) { + p.drawLine(quad.p1, quad.p2); + } + } + if (i == (int) parts.size() - 1) { + if (quad.p3.z != floor->getEndingZ()) { + p.drawLine(quad.p3, quad.p4); + } + } + } if (hasFocus()) { diff --git a/params/ActionWidget.cpp b/params/ActionWidget.cpp index 462199a..cc6b08d 100644 --- a/params/ActionWidget.cpp +++ b/params/ActionWidget.cpp @@ -3,9 +3,7 @@ #include #include -ActionWidget::ActionWidget(QWidget *parent) : QGroupBox(parent) { - - setTitle("actions"); +ActionWidget::ActionWidget(QWidget *parent) : QWidget(parent) { QHBoxLayout* lay = new QHBoxLayout(this); diff --git a/params/ActionWidget.h b/params/ActionWidget.h index 4655df7..469528f 100644 --- a/params/ActionWidget.h +++ b/params/ActionWidget.h @@ -1,9 +1,9 @@ #ifndef ACTIONWIDGET_H #define ACTIONWIDGET_H -#include +#include -class ActionWidget : public QGroupBox { +class ActionWidget : public QWidget { Q_OBJECT diff --git a/params/ElementParamWidget.cpp b/params/ElementParamWidget.cpp index 2d2a329..af0279e 100644 --- a/params/ElementParamWidget.cpp +++ b/params/ElementParamWidget.cpp @@ -64,14 +64,14 @@ QComboBox* getOutlineMethods() { -ElementParamWidget::ElementParamWidget(QWidget *parent) : QGroupBox(parent) { +ElementParamWidget::ElementParamWidget(QWidget *parent) : QWidget(parent) { this->lay = new QGridLayout(this); setMinimumSize(100, 100); setMaximumWidth(250); - setTitle("MapElement Parameters"); + //setTitle("MapElement Parameters"); QGridLayout* lay = new QGridLayout(); // start empty diff --git a/params/ElementParamWidget.h b/params/ElementParamWidget.h index b31f0b7..8d756f6 100644 --- a/params/ElementParamWidget.h +++ b/params/ElementParamWidget.h @@ -1,7 +1,7 @@ #ifndef PARAMWIDGET_H #define PARAMWIDGET_H -#include +#include #include "../mapview/model/MapModelElement.h" class QLabel; @@ -10,7 +10,7 @@ class QLineEdit; class QPushButton; class QGridLayout; -class ElementParamWidget : public QGroupBox { +class ElementParamWidget : public QWidget { Q_OBJECT diff --git a/params/LayerParamWidget.cpp b/params/LayerParamWidget.cpp index 3dc75bc..9cdffab 100644 --- a/params/LayerParamWidget.cpp +++ b/params/LayerParamWidget.cpp @@ -7,11 +7,11 @@ #include "mapview/model/IHasName.h" #include "mapview/model/MMFloor.h" -LayerParamWidget::LayerParamWidget(QWidget *parent) : QGroupBox(parent) { +LayerParamWidget::LayerParamWidget(QWidget *parent) : QWidget(parent) { setMinimumSize(100, 100); setMaximumWidth(250); - setTitle("MapLayer Parameters"); + //setTitle("MapLayer Parameters"); QGridLayout* lay = new QGridLayout(this); int r = 0; diff --git a/params/LayerParamWidget.h b/params/LayerParamWidget.h index e16ba4f..a445299 100644 --- a/params/LayerParamWidget.h +++ b/params/LayerParamWidget.h @@ -1,7 +1,7 @@ #ifndef LAYERPARAMWIDGET_H #define LAYERPARAMWIDGET_H -#include +#include class MapLayer; @@ -9,7 +9,7 @@ class QLabel; class QLineEdit; class QComboBox; -class LayerParamWidget : public QGroupBox { +class LayerParamWidget : public QWidget { Q_OBJECT