started working on walling, dooring and windowing
refactoring
This commit is contained in:
@@ -311,6 +311,8 @@ namespace Floorplan {
|
||||
for (FloorObstacle* fo : mf->obstacles) {
|
||||
if (dynamic_cast<FloorObstacleLine*>(fo)) {
|
||||
addFloorObstacleLine(doc, obstacles, (FloorObstacleLine*)fo);
|
||||
} else if (dynamic_cast<FloorObstacleWall*>(fo)) {
|
||||
addFloorObstacleWall(doc, obstacles, (FloorObstacleWall*)fo);
|
||||
} else if (dynamic_cast<FloorObstacleCircle*>(fo)) {
|
||||
addFloorObstacleCircle(doc, obstacles, (FloorObstacleCircle*)fo);
|
||||
} else if (dynamic_cast<FloorObstacleDoor*>(fo)) {
|
||||
@@ -324,7 +326,40 @@ namespace Floorplan {
|
||||
|
||||
}
|
||||
|
||||
/** write a line obstacle (wall, handrail, ..) */
|
||||
/** write a wall obstacle (wall) */
|
||||
static void addFloorObstacleWall(XMLDoc& doc, XMLElem* obstacles, FloorObstacleWall* wall) {
|
||||
|
||||
XMLElem* oWall = doc.NewElement("wall");
|
||||
obstacles->InsertEndChild(oWall);
|
||||
|
||||
oWall->SetAttribute("material", toString(wall->material).c_str());
|
||||
oWall->SetAttribute("type", toString(wall->type).c_str());
|
||||
oWall->SetAttribute("x1", wall->from.x);
|
||||
oWall->SetAttribute("y1", wall->from.y);
|
||||
oWall->SetAttribute("x2", wall->to.x);
|
||||
oWall->SetAttribute("y2", wall->to.y);
|
||||
oWall->SetAttribute("thickness", wall->thickness_m);
|
||||
if (wall->height_m != 0) {oWall->SetAttribute("height", wall->height_m);}
|
||||
|
||||
// doors?
|
||||
for (const FloorObstacleWallDoor* door : wall->doors) {
|
||||
|
||||
XMLElem* oDoor = doc.NewElement("door");
|
||||
oWall->InsertEndChild(oDoor);
|
||||
|
||||
oDoor->SetAttribute("type", toString(door->type).c_str());
|
||||
oDoor->SetAttribute("material", toString(door->material).c_str());
|
||||
oDoor->SetAttribute("at", door->atLinePos);
|
||||
oDoor->SetAttribute("width", door->width);
|
||||
oDoor->SetAttribute("height", door->height);
|
||||
oDoor->SetAttribute("io", door->inOut);
|
||||
oDoor->SetAttribute("lr", door->leftRight);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** write a line obstacle (old walls, handrail, ..) */
|
||||
static void addFloorObstacleLine(XMLDoc& doc, XMLElem* obstacles, FloorObstacleLine* line) {
|
||||
XMLElem* obstacle = doc.NewElement("line");
|
||||
obstacle->SetAttribute("material", toString(line->material).c_str());
|
||||
|
||||
Reference in New Issue
Block a user