some refactoring

hopefully improved rendering speed
added support to add .obj obstacles
This commit is contained in:
2018-02-17 17:39:18 +01:00
parent 839401edb7
commit 52ab71fac5
25 changed files with 538 additions and 12 deletions

View File

@@ -0,0 +1,42 @@
#ifndef MV3DELEMENTFLOOROBSTACLEOBJECT_H
#define MV3DELEMENTFLOOROBSTACLEOBJECT_H
#include <Indoor/floorplan/v2/Floorplan.h>
#include <Indoor/math/Math.h>
#include "misc/Cube.h"
#include "misc/Window.h"
#include "misc/Handrail.h"
#include "MV3DElement.h"
class MV3DElementFloorObstacleObject : public MV3DElement {
Floorplan::Floor* f;
Floorplan::FloorObstacleObject* fo;
public:
/** ctor */
MV3DElementFloorObstacleObject(Floorplan::Floor* f, Floorplan::FloorObstacleObject* fo) : f(f), fo(fo) {
;
}
protected:
/** repaint me */
void render(const RenderSettings& rs) override {
// TODO
}
bool isTransparent() const override {
return false;
}
};
#endif // MV3DELEMENTFLOOROBSTACLEOBJECT_H

View File

@@ -65,6 +65,18 @@ MapView3D::MapView3D(QWidget *parent) : QOpenGLWidget(parent) {
emit update();
});
QPushButton* btnExp3D = new QPushButton(UIHelper::getIcon("save"), "", this);
btnExp3D->setStyleSheet(style);
btnExp3D->setGeometry(16, 16+8+32+8+32+8+32, 32, 32);
connect(btnExp3D, &QPushButton::clicked, [this] () {
floorplanRendererModel->getMesh().exportOBJsimple("/tmp/map.obj");
floorplanRendererModel->getMesh().exportOBJcomplex("/tmp/map_complex", "map_complex");
floorplanRendererModel->getMesh().exportPLY("/tmp/map.ply");
});
QPushButton* btnGrid = new QPushButton(UIHelper::getIcon("grid"), "", this);
btnGrid->setCheckable(true);
btnGrid->setChecked(false);

View File

@@ -39,8 +39,10 @@ private:
Material(128,128,128,255), // concrete
Material(200,200,255,96), // glass
Material(170,120,60,255), // wood
Material(200,200,200,255), // drywall
Material(200,200,200,255), // default
Material(250,250,250,255), // default
};
@@ -56,8 +58,10 @@ private:
if (o.mat == Floorplan::Material::CONCRETE) {return 6;}
if (o.mat == Floorplan::Material::GLASS) {return 7;}
if (o.mat == Floorplan::Material::WOOD) {return 8;}
if (o.mat == Floorplan::Material::DRYWALL) {return 9;}
return 8;
return 10;
}