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/model/MMFloors.h
k-a-z-u bce771d6d6 worked on 3D viz
scaling, moving by finger
some fixes / improvement
2018-02-06 17:35:10 +01:00

68 lines
1.2 KiB
C++

#ifndef MMFLOORS_H
#define MMFLOORS_H
#include "MapLayer.h"
#include "MMFloor.h"
#include <Indoor/floorplan/v2/Floorplan.h>
/**
* layer containing all of the map's floors
*/
class MMFloors : public MapLayer {
private:
bool visible = true;
Floorplan::IndoorMap* map;
public:
/** ctor with the underlying model */
MMFloors(MapLayer* parent, Floorplan::IndoorMap* map) : MapLayer(parent, MapLayerType::FLOORS), map(map) {
// add all floors
for (Floorplan::Floor* floor : map->floors) {
new MMFloor(this, map, floor);
}
}
bool isVisible() const override {
return visible;
}
void setVisible(const bool visible) override {
this->visible = visible;
onVisibilityChanged(visible);
}
std::string getLayerName() const override {return "floors";}
/** get the underlying model */
Floorplan::IndoorMap* getMap() {return map;}
MMFloor* createFloor() {
// add to underlying model
Floorplan::Floor* floor = new Floorplan::Floor();
map->floors.push_back(floor);
// defalut values
floor->atHeight = 0;
floor->height = 3;
floor->name = "floor";
// add to UI model
MMFloor* mmfloor = new MMFloor(this, map, floor);
//elements.push_back(mmfloor);
return mmfloor;
}
};
#endif // MMFLOORS_H