changed the floorplan (adjust stairs)

added the new stairs to the code
changed the visualisation
This commit is contained in:
2016-01-27 21:39:21 +01:00
parent f3856d9473
commit 07d739ebb7
4 changed files with 337 additions and 197 deletions

View File

@@ -64,8 +64,7 @@ ADD_DEFINITIONS(
-fstack-protector-all
-g
-O0
-O2
-DWITH_TESTS
-DWITH_ASSERTIONS

View File

@@ -5,6 +5,7 @@
#include <KLib/misc/gnuplot/GnuplotSplot.h>
#include <KLib/misc/gnuplot/GnuplotSplotElementLines.h>
#include <KLib/misc/gnuplot/GnuplotSplotElementPoints.h>
#include <KLib/misc/gnuplot/GnuplotSplotElementColorPoints.h>
#include <Indoor/geo/Length.h>
#include <Indoor/floorplan/Floor.h>
@@ -16,8 +17,9 @@ public:
K::Gnuplot gp;
K::GnuplotSplot splot;
K::GnuplotSplotElementLines floors;
K::GnuplotSplotElementPoints gridNodes;
K::GnuplotSplotElementColorPoints gridNodes;
K::GnuplotSplotElementLines gridEdges;
K::GnuplotSplotElementPoints particles;
public:
@@ -26,11 +28,13 @@ public:
gp << "set hidden3d front\n";
gp << "set view equal xy\n";
gp << "set ticslevel 0\n";
gp << "set cbrange[0.8:2.0]\n";
// attach all layers
splot.add(&floors);
splot.add(&gridNodes);
splot.add(&gridEdges);
splot.add(&particles);
}
@@ -50,13 +54,36 @@ public:
/** add the grid to the plot */
template <typename T> Vis& addGrid(Grid<T>& grid) {
float max = 0;
for (const T& n1 : grid) {
if (n1.distToTarget > max) {max = n1.distToTarget;}
}
gp << "set cbrange[0.0:1.0]\n";
//gp << "set cbrange[0.8:1.3]\n";
for (const T& n1 : grid) {
const K::GnuplotPoint3 p1(n1.x_cm, n1.y_cm, n1.z_cm);
gridNodes.add(p1);
for (const T& n2 : grid.neighbors(n1)) {
const K::GnuplotPoint3 p2(n2.x_cm, n2.y_cm, n2.z_cm);
gridEdges.addSegment(p1, p2);
}
//const float color = n1.imp;
//const float color = n1.distToTarget/max;
const float color = 0;
gridNodes.add(p1, color);
// for (const T& n2 : grid.neighbors(n1)) {
// const K::GnuplotPoint3 p2(n2.x_cm, n2.y_cm, n2.z_cm);
// gridEdges.addSegment(p1, p2);
// }
}
return *this;
}
void removeGrid() {
gridNodes.clear();;
}
template <typename T> Vis& showStates(std::vector<GridWalkState<T>>& states) {
particles.clear();;
for (const GridWalkState<T>& n : states) {
particles.add(K::GnuplotPoint3(n.node->x_cm, n.node->y_cm, n.node->z_cm));
}
return *this;
}

View File

@@ -1,14 +1,21 @@
#include <Indoor/grid/factory/GridFactory.h>
#include <Indoor/floorplan/FloorplanFactorySVG.h>
#include <Indoor/grid/walk/GridWalkLightAtTheEndOfTheTunnel.h>
#include <Indoor/grid/walk/GridWalkRandomHeadingUpdate.h>
#include <Indoor/grid/walk/GridWalkRandomHeadingUpdateAdv.h>
#include <Indoor/grid/walk/GridWalkPushForward.h>
#include <Indoor/grid/factory/GridImportance.h>
#include "Vis.h"
namespace Settings {
const std::string floorplan = "/mnt/data/workspaces/Fusion2016/code/plan.svg";
const int gridSize_cm = 200;
const int gridSize_cm = 20;
}
struct MyNode : public GridNode, public GridPoint {
float distToTarget = 1.0;
float imp = 1.0;
public:
MyNode(const float x_cm, const float y_cm, const float z_cm) : GridPoint(x_cm, y_cm, z_cm) {;}
};
@@ -18,6 +25,20 @@ int align(const int val) {
return val / Settings::gridSize_cm * Settings::gridSize_cm;
}
// dijkstra mapper
class DijkstraMapper {
Grid<MyNode>& grid;
public:
DijkstraMapper(Grid<MyNode>& grid) : grid(grid) {;}
int getNumNeighbors(const MyNode& node) const {return node.getNumNeighbors();}
const MyNode* getNeighbor(const MyNode& node, const int idx) const {return &grid.getNeighbor(node, idx);}
float getWeightBetween(const MyNode& n1, const MyNode& n2) const {
float d = ((Point3)n1 - (Point3)n2).length(2.0);
//if (d > 20) {d*= 1.30;}
return d / std::pow(n2.imp, 3);
}
};
int main(void) {
Grid<MyNode> grid(Settings::gridSize_cm);
@@ -31,9 +52,9 @@ int main(void) {
Floor f2 = fpFac.getFloor("floor_2");
Floor f3 = fpFac.getFloor("floor_3");
Stairs f01 = fpFac.getStairs("staircase_0_1");
Stairs f12 = fpFac.getStairs("staircase_1_2");
Stairs f23 = fpFac.getStairs("staircase_2_3");
Stairs s01 = fpFac.getStairs("staircase_0_1");
Stairs s12 = fpFac.getStairs("staircase_1_2");
Stairs s23 = fpFac.getStairs("staircase_2_3");
const LengthF h0 = LengthF::cm(align(0));
const LengthF h1 = LengthF::cm(align(360));
@@ -44,12 +65,90 @@ int main(void) {
gridFac.addFloor(f1, h1.cm());
gridFac.addFloor(f2, h2.cm());
gridFac.addFloor(f3, h3.cm());
//gridFac.removeIsolated();
gridFac.addStairs(s01, h0.cm(), h1.cm());
gridFac.addStairs(s12, h1.cm(), h2.cm());
gridFac.addStairs(s23, h2.cm(), h3.cm());
// maybe the two sides are wrong?
PlatformStair psUpperLeft;
psUpperLeft.platform = BBox2(Point2(1560, 4778), Point2(1730, 5128));
psUpperLeft.s1 = Stair(Line2( 1278,4790+000, 1278,4790+140 ), Point2(+280,0));
psUpperLeft.s2 = Stair(Line2( 1278,4790+160, 1278,4790+160+140 ), Point2(+280,0));
gridFac.buildPlatformStair(psUpperLeft, h0.cm(), h1.cm());
gridFac.buildPlatformStair(psUpperLeft, h1.cm(), h2.cm());
gridFac.buildPlatformStair(psUpperLeft, h2.cm(), h3.cm());
// vis.gp << "set xrange [1100:1800]\n";
// vis.gp << "set yrange [4500:5200]\n";
PlatformStair psUpperRight;
psUpperRight.platform = BBox2(Point2(6290, 4778), Point2(6500, 5098));
psUpperRight.s1 = Stair(Line2( 6758,4790+160, 6758,4790+160+140 ), Point2(-280,0));
psUpperRight.s2 = Stair(Line2( 6758,4790+000, 6758,4790+140 ), Point2(-280,0));
gridFac.buildPlatformStair(psUpperRight, h0.cm(), h1.cm());
gridFac.buildPlatformStair(psUpperRight, h1.cm(), h2.cm());
gridFac.buildPlatformStair(psUpperRight, h2.cm(), h3.cm());
// vis.gp << "set xrange [6100:6900]\n";
// vis.gp << "set yrange [4500:5200]\n";
PlatformStair psLowerLeft;
psLowerLeft.platform = BBox2(Point2(1510, 658), Point2(1820, 900));
psLowerLeft.s1 = Stair(Line2( 1510+000,1148, 1510+140,1148 ), Point2(0,-280));
psLowerLeft.s2 = Stair(Line2( 1510+170,1148, 1510+300,1148 ), Point2(0,-280));
gridFac.buildPlatformStair(psLowerLeft, h0.cm(), h1.cm());
gridFac.buildPlatformStair(psLowerLeft, h1.cm(), h2.cm());
gridFac.buildPlatformStair(psLowerLeft, h2.cm(), h3.cm());
// vis.gp << "set xrange [1300:2100]\n";
// vis.gp << "set yrange [400:1400]\n";
gridFac.removeIsolated( (MyNode&)grid.getNodeFor(GridPoint(300,300,h0.cm())) );
GridImportance gridImp;
gridImp.addImportance(grid, h0.cm());
gridImp.addImportance(grid, h1.cm());
gridImp.addImportance(grid, h2.cm());
gridImp.addImportance(grid, h3.cm());
MyNode& start = (MyNode&)grid.getNodeFor(GridPoint(500,300,h0.cm()));
MyNode& end = (MyNode&)grid.getNodeFor(GridPoint(7000,5000,h3.cm()));
Vis vis;
vis.addFloor(f0, h0).addFloor(f1, h1).addFloor(f2, h2).addFloor(f3, h3);
vis.addGrid(grid);
vis.show();
vis.addFloor(f0, h0);
vis.addFloor(f1, h1);
vis.addFloor(f2, h2);
vis.addFloor(f3, h3);
//GridWalkRandomHeadingUpdate<MyNode> walk;
//GridWalkRandomHeadingUpdateAdv<MyNode> walk;
//GridWalkPushForward<MyNode> walk;
GridWalkLightAtTheEndOfTheTunnel<MyNode> walk(grid, DijkstraMapper(grid), end);
std::vector<GridWalkState<MyNode>> states;
for (int i = 0; i < 2000; ++i) { states.push_back(GridWalkState<MyNode>(&start, Heading::rnd())); }
// vis.addGrid(grid);
// vis.show();
// sleep(100);
// vis.removeGrid();
Distribution::Normal<float> wDist(0.3, 0.3);
//std::minstd_rand gen(1234);
//std::normal_distribution<float> dist(0.6, 0.3);
while(true) {
for (GridWalkState<MyNode>& state : states) {
state = walk.getDestination(grid, state, std::abs(wDist.draw()) );
}
usleep(1000*80);
vis.showStates(states);
vis.show();
}
sleep(1000);

View File

@@ -42,23 +42,23 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="672"
inkscape:window-width="1600"
inkscape:window-height="782"
id="namedview3234"
showgrid="true"
inkscape:zoom="2.4027176"
inkscape:cx="422.22336"
inkscape:cy="1231.7432"
inkscape:cx="555.925"
inkscape:cy="388.39069"
inkscape:window-x="0"
inkscape:window-y="33"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer11"
inkscape:current-layer="layer16"
inkscape:object-nodes="true"
units="px"
showborder="true"
inkscape:snap-to-guides="true"
inkscape:snap-text-baseline="true"
showguides="true"
showguides="false"
inkscape:guide-bbox="true"
inkscape:snap-nodes="true"
inkscape:snap-smooth-nodes="true">
@@ -238,7 +238,7 @@
inkscape:groupmode="layer"
id="layer2"
inkscape:label="roomnames_2"
style="display:inline">
style="display:none">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:125%;font-family:Times;-inkscape-font-specification:Times;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
@@ -1680,7 +1680,7 @@
inkscape:groupmode="layer"
id="layer16"
inkscape:label="floor_0"
style="display:none">
style="display:inline">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 386.22047,67.322799 0,42.519681"
@@ -1840,12 +1840,6 @@
d="m 623.62205,279.92122 0,-212.598421"
id="path4544"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 538.58268,198.42516 0,81.49606 m 85.03937,-81.49606 -173.62205,0 0,81.49606"
id="path4546"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 577.55906,279.92122 -49.6063,0"
@@ -1907,9 +1901,10 @@
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 655.51181,1853.1496 0,-375.5906"
d="m 655.51181,1853.1496 0,-432.2835"
id="path4570"
inkscape:connector-curvature="0" />
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 655.51181,1420.8661 0,-683.85826"
@@ -1949,9 +1944,10 @@
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 584.64567,1477.559 0,106.2992"
d="m 595.27559,1477.559 0,106.2992"
id="path4586"
inkscape:connector-curvature="0" />
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.45669,1350 0,-35.4331"
@@ -2198,14 +2194,16 @@
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 368.50394,992.12595 0,800.78745"
d="m 368.50394,992.12595 0,797.24405"
id="path4684"
inkscape:connector-curvature="0" />
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 368.50394,1828.3464 0,24.8032"
d="m 368.50394,1831.8897 0,21.2599"
id="path4686"
inkscape:connector-curvature="0" />
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.45669,1332.2834 209.05512,0"
@@ -2221,11 +2219,6 @@
d="m 99.212598,403.93697 -49.606299,0"
id="path4692"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.45669,67.322799 0,67.322831"
id="path4694"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 549.2126,134.64563 -102.75591,0"
@@ -2233,14 +2226,63 @@
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2402.3622,77.95272 0,56.69291 -92.126,0"
d="m 2402.3622,134.64563 -92.126,0"
id="path4698"
inkscape:connector-curvature="0" />
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 49.606299,1683.0708 318.897641,0"
id="path4404"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2785.0394,386.22044 0,-106.29922"
id="path5825"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 467.71654,198.42516 0,-131.102361"
id="path5829"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 450,279.9212 0,-81.49606"
id="path5851"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 450,198.42514 173.62205,0"
id="path5853"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 538.58268,279.92122 0,-81.49606"
id="path5873"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2381.1024,198.42516 0,-63.77953"
id="path5875"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2381.1024,77.95272 0,56.69291"
id="path5877"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 531.49606,1491.7322 63.77953,0"
id="path5899"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 595.27559,1491.7322 60.23622,0"
id="path5901"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
@@ -2677,7 +2719,7 @@
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 584.64567,1477.559 0,106.2992"
d="m 595.27559,1477.559 0,106.2992"
id="path12844"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
@@ -2867,21 +2909,6 @@
d="m 2462.5984,460.62989 0,276.37795"
id="path12918"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2398.8189,134.64563 0,-67.322831"
id="path13024"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.45669,134.64563 0,-67.322831"
id="path13061"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 584.64567,1477.559 70.86614,0"
id="path13065"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 442.91339,336.61414 0,67.32283 389.76378,0 0,-67.32283 -389.76378,0"
@@ -2893,6 +2920,36 @@
d="m 2207.4803,279.92122 17.7166,0"
id="path3498"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 467.71654,198.42516 0,-63.77953"
id="path5831"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 467.71654,134.64563 0,-67.322831"
id="path5845"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2381.1024,198.42516 0,-63.77953"
id="path5879"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2381.1024,67.322799 0,67.322831"
id="path5881"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 531.49606,1491.7322 63.77953,0"
id="path5903"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 595.27559,1491.7322 60.23622,0"
id="path5905"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
@@ -2914,13 +2971,13 @@
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 368.50394,1619.2913 0,-42.5197"
d="m 368.50394,1619.2913 0,-38.9764"
id="path11569"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 368.50394,1548.4252 0,-467.7166"
d="m 368.50394,1544.8818 0,-460.6299"
id="path11571"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
@@ -3055,7 +3112,7 @@
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 584.64567,1477.559 0,113.3858"
d="m 595.27559,1477.559 0,113.3858"
id="path11625"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
@@ -3545,24 +3602,6 @@
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2398.8189,134.64563 0,-67.322831"
id="path13022"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.45669,134.64563 0,-67.322831"
id="path13059"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 584.64567,1477.559 70.86614,0"
id="path13063"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 1729.1339,336.6141 -198.4252,0 0,67.32283 198.4252,0"
@@ -3609,12 +3648,42 @@
id="path3487"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 467.71654,198.42512 0,-63.77953"
id="path5833"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 467.71654,134.64559 0,-67.322833"
id="path5847"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2381.1024,198.42512 0,-63.77953"
id="path5883"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2381.1024,67.322757 0,67.322833"
id="path5885"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 531.49606,1491.7322 63.77953,0"
id="path5907"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 595.27559,1491.7322 60.23622,0"
id="path5909"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
inkscape:label="floor_3"
style="display:inline"
style="display:none"
transform="translate(0,4.2364502e-5)">
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
@@ -4335,7 +4404,7 @@
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 584.64567,1477.559 0,113.3858"
d="m 595.27559,1477.559 0,113.3858"
id="path3459-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
@@ -4352,30 +4421,42 @@
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2398.8189,134.64563 0,-67.322831"
id="path13020"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 584.64567,1477.559 70.86614,0"
id="path13055"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.45669,134.64563 0,-67.322831"
id="path13057"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 506.69291,460.62985 -67.32283,0"
id="path4163"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 467.71654,198.42512 0,-63.77953"
id="path5835"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 467.71654,134.64559 0,-67.322833"
id="path5849"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2381.1024,198.42512 0,-63.77953"
id="path5887"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2381.1024,67.322757 0,67.322833"
id="path5889"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 531.49606,1491.7322 63.77953,0"
id="path5911"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 595.27559,1491.7322 60.23622,0"
id="path5913"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
@@ -4383,73 +4464,34 @@
inkscape:label="staircase_0_1"
style="display:none">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 535.03937,1477.559 0,177.1654 116.92913,0 0,-177.1654 -109.84252,0"
id="path4702"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 439.37008,570.47241 0,56.69291 63.77953,0 0,-56.69291 -56.69292,0"
id="path4704"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2664.5669,655.51178 102.7559,0 0,-155.90552"
id="path4988"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 457.08661,74.409413 0,120.472437 162.99213,0 0,-124.015744 -162.99213,0"
id="path4706"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2228.7402,77.95272 0,116.92913 170.0787,0 0,-124.015744 -170.0787,0"
id="path4708"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2661.0236,655.51178 0,-159.44882 109.8425,0 0,159.44882 -106.2992,0"
id="path4710"
inkscape:connector-curvature="0" />
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 503.14961,457.08658 -46.063,0 0,276.37795"
id="path4992"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
</g>
<g
inkscape:groupmode="layer"
id="layer11"
inkscape:label="staircase_1_2"
style="display:inline">
style="display:none">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 457.08661,194.88185 162.99213,0"
id="path12930"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2125.9843,343.70075 0,53.14961 -226.7717,0"
id="path4998"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 620.07874,194.88185 0,-124.015744 -162.99213,0 0,124.015744"
id="path12932"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2125.9843,333.07083 -226.7717,0 0,77.95276 233.8583,0 0,-63.77953"
id="path12934"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2398.8189,70.866106 -170.0787,0 0,124.015744 170.0787,0 0,-124.015744"
id="path12936"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 535.03937,1477.559 116.92913,0 0,177.1654 -116.92913,0 0,-177.1654"
id="path12959"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 446.45669,566.9291 56.69292,0 0,74.40945 -63.77953,0 0,-67.32284"
id="path4157"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 503.14961,460.62989 -56.69292,0 0,276.37795"
id="path5000"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
@@ -4458,43 +4500,16 @@
style="display:none"
transform="translate(0,4.2364502e-5)">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 524.40945,1477.559 0,170.0788 127.55905,0 0,-170.0788"
id="path11647"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 457.08661,70.866106 0,124.015744 162.99213,0 0,-124.015744 -162.99213,0"
id="path13002"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2228.7402,70.866106 0,124.015744 170.0787,0 0,-124.015744 -170.0787,0"
id="path13006"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2331.4961,279.92122 0,-77.95275 63.7795,0 0,77.95275 -63.7795,0"
id="path13008"
inkscape:connector-curvature="0"
transform="translate(0,-4.2364502e-5)"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 1697.2441,283.46449 0,173.62205 17.7165,0 0,-173.62205 -14.1732,0"
id="path4161"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 503.14961,641.33851 0,-67.32284 -56.69292,0 0,67.32284 53.14961,0"
id="path4165"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 503.14961,460.62985 -56.69292,0 0,276.37795"
id="path5802"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 1729.1339,340.1574 0,60.23622 -194.8819,0"
id="path5804"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
</g>
<g
inkscape:groupmode="layer"

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 224 KiB