added new param-editing to APs and Beacons
changed drawing for better debuging changed layer editing option to add and delete layers some minor changes
This commit is contained in:
@@ -60,6 +60,10 @@ public:
|
||||
p.setPenBrush(Qt::black, Qt::NoBrush);
|
||||
p.drawCircle(fo->from);
|
||||
p.drawCircle(fo->to);
|
||||
} else {
|
||||
//p.setPenBrush(Qt::NoPen, Qt::black);
|
||||
p.drawCircle(fo->from, 0.1);
|
||||
p.drawCircle(fo->to, 0.1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -96,9 +96,19 @@ public:
|
||||
p.p->drawLine(mouseX, 0, mouseX, rs);
|
||||
|
||||
|
||||
|
||||
|
||||
p.setPenBrush(Qt::black, Qt::NoBrush);
|
||||
char buf[128];
|
||||
|
||||
// coordinates
|
||||
QRect ru(0,0,rs-1,rs-1);
|
||||
p.p->fillRect(ru, Qt::white);
|
||||
std::sprintf(buf, "%.1f", p.getScaler().xsm(this->mouseX));
|
||||
p.p->drawText(5,15, buf);
|
||||
std::sprintf(buf, "%.1f", p.getScaler().ysm(this->mouseY));
|
||||
p.p->drawText(5,30, buf);
|
||||
|
||||
// y-axis
|
||||
p.p->setClipRect(ry);
|
||||
for (float y = r.y0; y <= r.y1; y += step) {
|
||||
@@ -141,6 +151,8 @@ public:
|
||||
|
||||
p.p->setClipping(false);
|
||||
|
||||
|
||||
|
||||
// snapped dot
|
||||
const Point2 mouseOnScreen(mouseX, mouseY);
|
||||
const Point2 mouseInMap = p.s.sm(mouseOnScreen);
|
||||
|
||||
@@ -31,7 +31,7 @@ protected:
|
||||
glColor3f(1,1,1);
|
||||
break;
|
||||
case Floorplan::OutlineMethod::REMOVE:
|
||||
glColor3f(0.2, 0.2, 0.2);
|
||||
glColor3f(0.3, 0.3, 0.3);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,11 +32,12 @@ void MapView3D::initializeGL() {
|
||||
|
||||
QGLWidget::initializeGL();
|
||||
|
||||
//glCullFace(GL_FRONT);
|
||||
glCullFace(GL_FRONT);
|
||||
//glDisable(GL_CULL_FACE);
|
||||
glEnable(GL_CULL_FACE);
|
||||
|
||||
// culling, lighting, depth-test, ...
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glEnable(GL_CULL_FACE);
|
||||
glShadeModel(GL_SMOOTH);
|
||||
|
||||
glEnable(GL_MULTISAMPLE);
|
||||
|
||||
@@ -25,13 +25,15 @@ class MMFloor : public MapLayer, public IHasParams {
|
||||
|
||||
private:
|
||||
|
||||
Floorplan::IndoorMap* map;
|
||||
|
||||
/** the underlying data-structure */
|
||||
Floorplan::Floor* floor;
|
||||
|
||||
public:
|
||||
|
||||
/** ctor. existing floor */
|
||||
MMFloor(MapLayer* parent, Floorplan::Floor* floor) : MapLayer(parent, MapLayerType::FLOOR), floor(floor) {
|
||||
MMFloor(MapLayer* parent, Floorplan::IndoorMap* map, Floorplan::Floor* floor) : MapLayer(parent, MapLayerType::FLOOR), map(map), floor(floor) {
|
||||
|
||||
new MMFloorUnderlays(this, floor);
|
||||
elements.push_back(new MMFloorOutline(this, floor));
|
||||
@@ -56,12 +58,14 @@ public:
|
||||
std::string getLayerName() const override {return floor->name;}
|
||||
|
||||
virtual int getNumParams() const override {
|
||||
return 1;
|
||||
return 3;
|
||||
}
|
||||
|
||||
virtual Param getParamDesc(const int idx) const override {
|
||||
switch(idx) {
|
||||
case 0: return Param("anem", ParamType::STRING);
|
||||
case 0: return Param("name", ParamType::STRING);
|
||||
case 1: return Param("height", ParamType::FLOAT);
|
||||
case 2: return Param("at height", ParamType::FLOAT);
|
||||
}
|
||||
throw 1;
|
||||
}
|
||||
@@ -69,6 +73,8 @@ public:
|
||||
virtual ParamValue getParamValue(const int idx) const override {
|
||||
switch(idx) {
|
||||
case 0: return floor->name;
|
||||
case 1: return floor->height;
|
||||
case 2: return floor->atHeight;
|
||||
}
|
||||
throw 1;
|
||||
}
|
||||
@@ -76,9 +82,16 @@ public:
|
||||
virtual void setParamValue(const int idx, const ParamValue& val) const override {
|
||||
switch(idx) {
|
||||
case 0: floor->name = val.toString(); break;
|
||||
case 1: floor->height = val.toFloat(); break;
|
||||
case 2: floor->atHeight = val.toFloat(); break;
|
||||
}
|
||||
}
|
||||
|
||||
void deleteMe() {
|
||||
parent->removeSublayer(this);
|
||||
map->floors.erase(std::remove(map->floors.begin(), map->floors.end(), floor), map->floors.end());
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif // MMFLOOR_H
|
||||
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
}
|
||||
|
||||
virtual int getNumParams() const override {
|
||||
return 3;
|
||||
return 6;
|
||||
}
|
||||
|
||||
virtual Param getParamDesc(const int idx) const override {
|
||||
@@ -34,6 +34,9 @@ public:
|
||||
case 0: return Param("name", ParamType::STRING);
|
||||
case 1: return Param("MAC", ParamType::STRING);
|
||||
case 2: return Param("Position", ParamType::POINT3);
|
||||
case 3: return Param("TXP", ParamType::FLOAT);
|
||||
case 4: return Param("EXP", ParamType::FLOAT);
|
||||
case 5: return Param("WAF", ParamType::FLOAT);
|
||||
}
|
||||
throw 1;
|
||||
}
|
||||
@@ -43,6 +46,9 @@ public:
|
||||
case 0: return ap->name;
|
||||
case 1: return ap->mac;
|
||||
case 2: return ap->pos;
|
||||
case 3: return ap->model.txp;
|
||||
case 4: return ap->model.exp;
|
||||
case 5: return ap->model.waf;
|
||||
}
|
||||
throw 1;
|
||||
}
|
||||
@@ -52,6 +58,9 @@ public:
|
||||
case 0: ap->name = val.toString(); break;
|
||||
case 1: ap->mac = val.toString(); break;
|
||||
case 2: ap->pos = val.toPoint3(); break;
|
||||
case 3: ap->model.txp = val.toFloat(); break;
|
||||
case 4: ap->model.exp = val.toFloat(); break;
|
||||
case 5: ap->model.waf = val.toFloat(); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,14 +23,20 @@ public:
|
||||
}
|
||||
|
||||
virtual int getNumParams() const override {
|
||||
return 3;
|
||||
return 9;
|
||||
}
|
||||
|
||||
virtual Param getParamDesc(const int idx) const override {
|
||||
switch(idx) {
|
||||
case 0: return Param("name", ParamType::STRING);
|
||||
case 1: return Param("MAC", ParamType::STRING);
|
||||
case 2: return Param("Position", ParamType::POINT3);
|
||||
case 1: return Param("Position", ParamType::POINT3);
|
||||
case 2: return Param("MAC", ParamType::STRING);
|
||||
case 3: return Param("major", ParamType::STRING);
|
||||
case 4: return Param("minor", ParamType::STRING);
|
||||
case 5: return Param("UUDI", ParamType::STRING);
|
||||
case 6: return Param("TXP", ParamType::FLOAT);
|
||||
case 7: return Param("EXP", ParamType::FLOAT);
|
||||
case 8: return Param("WAF", ParamType::FLOAT);
|
||||
}
|
||||
throw 1;
|
||||
}
|
||||
@@ -38,8 +44,14 @@ public:
|
||||
virtual ParamValue getParamValue(const int idx) const override {
|
||||
switch(idx) {
|
||||
case 0: return b->name;
|
||||
case 1: return b->mac;
|
||||
case 2: return b->pos;
|
||||
case 1: return b->pos;
|
||||
case 2: return b->mac;
|
||||
case 3: return b->major;
|
||||
case 4: return b->minor;
|
||||
case 5: return b->uuid;
|
||||
case 6: return b->model.txp;
|
||||
case 7: return b->model.exp;
|
||||
case 8: return b->model.waf;
|
||||
}
|
||||
throw 1;
|
||||
}
|
||||
@@ -47,8 +59,14 @@ public:
|
||||
virtual void setParamValue(const int idx, const ParamValue& val) const override {
|
||||
switch(idx) {
|
||||
case 0: b->name = val.toString(); break;
|
||||
case 1: b->mac = val.toString(); break;
|
||||
case 2: b->pos = val.toPoint3(); break;
|
||||
case 1: b->pos = val.toPoint3(); break;
|
||||
case 2: b->mac = val.toString(); break;
|
||||
case 3: b->major = val.toString(); break;
|
||||
case 4: b->minor = val.toString(); break;
|
||||
case 5: b->uuid = val.toString(); break;
|
||||
case 6: b->uuid = val.toFloat(); break;
|
||||
case 7: b->uuid = val.toFloat(); break;
|
||||
case 8: b->uuid = val.toFloat(); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "IHasMaterial.h"
|
||||
#include "IHasObstacleType.h"
|
||||
#include "IHasParams.h"
|
||||
|
||||
#include "../2D/MV2DElementFloorObstacleLine.h"
|
||||
#include "../3D/MV3DElementFloorObstacleWall.h"
|
||||
@@ -13,7 +14,7 @@
|
||||
#include <Indoor/floorplan/v2/Floorplan.h>
|
||||
|
||||
|
||||
class MMFloorObstacleLine : public MapModelElement, public IHasMaterial, public IHasObstacleType {
|
||||
class MMFloorObstacleLine : public MapModelElement, public IHasMaterial, public IHasObstacleType, public IHasParams {
|
||||
|
||||
public:
|
||||
|
||||
@@ -43,6 +44,31 @@ public:
|
||||
mf->obstacles.erase(std::remove(mf->obstacles.begin(), mf->obstacles.end(), fo), mf->obstacles.end());
|
||||
}
|
||||
|
||||
|
||||
virtual int getNumParams() const override {
|
||||
return 1;
|
||||
}
|
||||
|
||||
virtual Param getParamDesc(const int idx) const override {
|
||||
switch(idx) {
|
||||
case 0: return Param("length", ParamType::FLOAT, true);
|
||||
}
|
||||
throw 1;
|
||||
}
|
||||
|
||||
virtual ParamValue getParamValue(const int idx) const override {
|
||||
switch(idx) {
|
||||
case 0: return fo->from.getDistance(fo->to);
|
||||
}
|
||||
throw 1;
|
||||
}
|
||||
|
||||
virtual void setParamValue(const int idx, const ParamValue& val) const override {
|
||||
switch(idx) {
|
||||
case 0: break;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif // MAPELEMENTOBSTACLE_H
|
||||
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
|
||||
// add all floors
|
||||
for (Floorplan::Floor* floor : map->floors) {
|
||||
new MMFloor(this, floor);
|
||||
new MMFloor(this, map, floor);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -32,6 +32,22 @@ public:
|
||||
/** get the underlying model */
|
||||
Floorplan::IndoorMap* getMap() {return map;}
|
||||
|
||||
MMFloor* createFloor() {
|
||||
|
||||
// add to underlying model
|
||||
Floorplan::Floor* floor = new Floorplan::Floor();
|
||||
floor->name = "floor";
|
||||
map->floors.push_back(floor);
|
||||
|
||||
// add to UI model
|
||||
MMFloor* mmfloor = new MMFloor(this, map, floor);
|
||||
//elements.push_back(mmfloor);
|
||||
|
||||
return mmfloor;
|
||||
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // MMFLOORS_H
|
||||
|
||||
@@ -78,6 +78,8 @@ public:
|
||||
/** remove the given element from the elements list */
|
||||
void removeElement(const MapModelElement* elem) { elements.erase(std::remove(elements.begin(), elements.end(), elem), elements.end()); }
|
||||
|
||||
/** remove the given sublayer from this layer */
|
||||
void removeSublayer(const MapLayer* layer) { sublayers.erase(std::remove(sublayers.begin(), sublayers.end(), layer), sublayers.end()); }
|
||||
|
||||
/** is this layer currently visible? */
|
||||
bool isVisible() const {return visible;}
|
||||
@@ -101,7 +103,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
protected:
|
||||
public:
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -42,6 +42,13 @@ public:
|
||||
cleanup();
|
||||
}
|
||||
|
||||
/** create a new, empty root node */
|
||||
void startEmpty() {
|
||||
im = new Floorplan::IndoorMap();
|
||||
root = new MMRoot(nullptr, im);
|
||||
//root->addSublayer(new MMFloors(root, im));
|
||||
}
|
||||
|
||||
void cleanup() {
|
||||
selLayer = nullptr;
|
||||
//selElements.clear();
|
||||
|
||||
Reference in New Issue
Block a user