added new sanity checks and compile-time assertions to prevent errors
fixed stair-building issue new test-cases added elevator support fixed/improved some walker modules
This commit is contained in:
@@ -88,11 +88,21 @@ namespace Floorplan {
|
||||
if (std::string("underlays") == n->Name()) {floor->underlays = parseFloorUnderlays(n);}
|
||||
if (std::string("pois") == n->Name()) {floor->pois = parseFloorPOIs(n);}
|
||||
if (std::string("stairs") == n->Name()) {floor->stairs = parseFloorStairs(n);}
|
||||
if (std::string("elevators") == n->Name()) {floor->elevators = parseFloorElevators(n);}
|
||||
}
|
||||
return floor;
|
||||
}
|
||||
|
||||
|
||||
/** parse the <elevators> tag */
|
||||
static std::vector<Elevator*> parseFloorElevators(const XMLElem* el) {
|
||||
std::vector<Elevator*> vec;
|
||||
FOREACH_NODE(n, el) {
|
||||
if (std::string("elevator") == n->Name()) { vec.push_back(parseFloorElevator(n)); }
|
||||
}
|
||||
return vec;
|
||||
}
|
||||
|
||||
/** parse the <stairs> tag */
|
||||
static std::vector<Stair*> parseFloorStairs(const XMLElem* el) {
|
||||
std::vector<Stair*> vec;
|
||||
@@ -102,6 +112,16 @@ namespace Floorplan {
|
||||
return vec;
|
||||
}
|
||||
|
||||
/** parse an <elevator> tag */
|
||||
static Elevator* parseFloorElevator(const XMLElem* el) {
|
||||
Elevator* elev = new Elevator();
|
||||
elev->center = Point2(el->FloatAttribute("cx"), el->FloatAttribute("cy"));
|
||||
elev->depth = el->FloatAttribute("depth");
|
||||
elev->width = el->FloatAttribute("width");
|
||||
elev->rotation = el->FloatAttribute("rotation");
|
||||
return elev;
|
||||
}
|
||||
|
||||
/** parse a <stair> tag */
|
||||
static Stair* parseFloorStair(const XMLElem* el) {
|
||||
Stair* stair = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user