Skip to content

Add a “Layout Preservation” Switch to the Placing Tool #446

@R3tes

Description

@R3tes

Currently, the Placing tool uses a built-in algorithm to determine the city layout. While this is usually effective, it doesn’t offer a straightforward way to see the code’s structure directly mirrored in the city’s plan. To address this, the tool needs a new switch - call it “layout preservation” - that keeps the input file’s structure intact when generating the city. If the user enables this switch, the city layout should follow the exact hierarchy or ordering in the input file, ignoring the default placement logic. This option gives teams an alternative viewpoint by producing a city layout that clearly reflects their data’s native organization.

Example for the default city layout, made with using the algorithm:

Image

City layout hierarchy example, made wihtout using the algorithm (xml file snippet for reference):

+--------------------------------------------------------------------------------+
| Container (id=5bef7e79, type="container")                                      |
|   +----------------------------------------------------------------------------+
|   | <root_package> (id=6a8eccde, type="ground")                                |
|   |   +----------------------------------------------------------------------+
|   |   | codemetropolis (id=8b89726d, type="ground")                          |
|   |   |   +--------------------------------------------------------------+
|   |   |   | toolchain (id=6fbc5106, type="ground")                        |
|   |   |   |   +------------------------------------------------------+
|   |   |   |   | rendering (id=1cb0139d, type="ground")                |
|   |   |   |   |   +----------------------------------------------+
|   |   |   |   |   | CommandLineOptions (id=82d7e767, type="garden") |
|   |   |   |   |   |   +------------------------------+
|   |   |   |   |   |   | showHelp (id=0636b8c1, type="cellar")
|   |   |   |   |   |   +------------------------------+
|   |   |   |   |   |   | inputFile (id=2490c8b5, type="cellar")
|   |   |   |   |   +----------------------------------------------+
|   |   |   +------------------------------------------------------+
|   |   +----------------------------------------------------------------------+
|   +----------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
<buildables from="mapping" to="placing" version="1.0">
  <buildable id="5bef7e79" name="" type="container">
    <children>
      <buildable id="6a8eccde" name="<root_package>" type="ground">
        <children>
          <buildable id="8b89726d" name="codemetropolis" type="ground">
            <children>
              <buildable id="6fbc5106" name="toolchain" type="ground">
                <children>
                  <buildable id="1cb0139d" name="rendering" type="ground">
                    <children>
                      <buildable id="82d7e767" name="CommandLineOptions" type="garden">
                        <children>
                          <buildable id="0636b8c1" name="showHelp" type="cellar"/>
                          <buildable id="2490c8b5" name="inputFile" type="cellar"/>
                        </children>
                      </buildable>
                    </children>
                  </buildable>
                </children>
              </buildable>
            </children>
          </buildable>
        </children>
      </buildable>
    </children>
  </buildable>
</buildables>

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions