rmf_site_format 0.0.2

File format parsing for rmf_site_editor
Documentation
<?xml version="1.0" ?>
<sdf version="1.7">
  <world name="sim_world" xmlns:rmf="rmf">
    <physics name="10ms" type="ode">
      <max_step_size>0.01</max_step_size>
      <real_time_factor>1.0</real_time_factor>
      <real_time_update_rate>100</real_time_update_rate>
    </physics>
    <plugin
      filename="gz-sim-physics-system"
      name="gz::sim::systems::Physics">
    </plugin>
    <plugin
      filename="gz-sim-user-commands-system"
      name="gz::sim::systems::UserCommands">
    </plugin>
    <plugin
      filename="gz-sim-scene-broadcaster-system"
      name="gz::sim::systems::SceneBroadcaster">
    </plugin>
    <plugin
      filename="libdoor.so"
      name="door">
    </plugin>
    <plugin
      filename="liblift.so"
      name="lift">
    </plugin>

    <!-- TODO(luca) these fields are set as required in the specification but seem not to be in
      practice (rightly so because not everyone wants to manually specify gravity, earth
      magnetic field and atmosphere model) -->
    <gravity>0 0 -9.8</gravity>
    <magnetic_field>5.64e-6 2.29e-5 -4.24e-5</magnetic_field>
    <atmosphere type="adiabatic" />

    <scene>
      <ambient>1 1 1</ambient>
      <background>0.8 0.8 0.8</background>
      <grid>false</grid>
      <shadows>true</shadows>
    </scene>

    <gui fullscreen="0">

      <window>
        <width>1000</width>
        <height>845</height>
        <style
          material_theme="Light"
          material_primary="DeepOrange"
          material_accent="LightBlue"
          toolbar_color_light="#f3f3f3"
          toolbar_text_color_light="#111111"
          toolbar_color_dark="#414141"
          toolbar_text_color_dark="#f3f3f3"
          plugin_toolbar_color_light="#bbdefb"
          plugin_toolbar_text_color_light="#111111"
          plugin_toolbar_color_dark="#607d8b"
          plugin_toolbar_text_color_dark="#eeeeee"
        />
        <menus>
          <drawer default="false">
          </drawer>
        </menus>
      </window>

      <!-- GUI plugins -->
      <plugin filename="MinimalScene" name="3D View">
          <gz-gui>
              <title>3D View</title>
              <property type="bool" key="showTitleBar">false</property>
              <property type="string" key="state">docked</property>
          </gz-gui>
          <engine>ogre2</engine>
          <scene>scene</scene>
          <ambient_light>0.4 0.4 0.4</ambient_light>
          <background_color>0.8 0.8 0.8</background_color>
          <camera_pose>-6 0 6 0 0.5 0</camera_pose>
      </plugin>

      <!-- Plugins that add functionality to the scene -->
      <plugin filename="EntityContextMenuPlugin" name="Entity context menu">
          <gz-gui>
              <property key="state" type="string">floating</property>
              <property key="width" type="double">5</property>
              <property key="height" type="double">5</property>
              <property key="showTitleBar" type="bool">false</property>
          </gz-gui>
      </plugin>

      <plugin filename="GzSceneManager" name="Scene Manager">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="width" type="double">5</property>
              <property key="height" type="double">5</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
          </gz-gui>
      </plugin>

      <plugin filename="InteractiveViewControl" name="Interactive view control">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="width" type="double">5</property>
              <property key="height" type="double">5</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
          </gz-gui>
      </plugin>

      <plugin filename="CameraTracking" name="Camera Tracking">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="width" type="double">5</property>
              <property key="height" type="double">5</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
          </gz-gui>
      </plugin>

      <plugin filename="MarkerManager" name="Marker manager">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="width" type="double">5</property>
              <property key="height" type="double">5</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
          </gz-gui>
      </plugin>

      <plugin filename="SelectEntities" name="Select Entities">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="width" type="double">5</property>
              <property key="height" type="double">5</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
          </gz-gui>
      </plugin>

      <plugin filename="Spawn" name="Spawn Entities">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="width" type="double">5</property>
              <property key="height" type="double">5</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
          </gz-gui>
      </plugin>

      <plugin filename="VisualizationCapabilities" name="Visualization Capabilities">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="width" type="double">5</property>
              <property key="height" type="double">5</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
          </gz-gui>
      </plugin>

      <!-- World control -->
      <plugin filename="WorldControl" name="World control">
          <gz-gui>
              <title>World control</title>
              <property type="bool" key="showTitleBar">false</property>
              <property type="bool" key="resizable">false</property>
              <property type="double" key="height">72</property>
              <property type="double" key="z">1</property>
              <property type="string" key="state">floating</property>
              <anchors target="3D View">
                  <line own="left" target="left"/>
                  <line own="bottom" target="bottom"/>
              </anchors>
          </gz-gui>
          <play_pause>true</play_pause>
          <step>true</step>
          <start_paused>true</start_paused>
          <use_event>true</use_event>
      </plugin>

      <!-- World statistics -->
      <plugin filename="WorldStats" name="World stats">
          <gz-gui>
              <title>World stats</title>
              <property type="bool" key="showTitleBar">false</property>
              <property type="bool" key="resizable">false</property>
              <property type="double" key="height">110</property>
              <property type="double" key="width">290</property>
              <property type="double" key="z">1</property>
              <property type="string" key="state">floating</property>
              <anchors target="3D View">
                  <line own="right" target="right"/>
                  <line own="bottom" target="bottom"/>
              </anchors>
          </gz-gui>
          <sim_time>true</sim_time>
          <real_time>true</real_time>
          <real_time_factor>true</real_time_factor>
          <iterations>true</iterations>
      </plugin>

      <!-- Insert simple shapes -->
      <plugin filename="Shapes" name="Shapes">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="x" type="double">0</property>
              <property key="y" type="double">0</property>
              <property key="width" type="double">250</property>
              <property key="height" type="double">50</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
              <property key="cardBackground" type="string">#666666</property>
          </gz-gui>
      </plugin>

      <!-- Insert lights -->
      <plugin filename="Lights" name="Lights">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="x" type="double">250</property>
              <property key="y" type="double">0</property>
              <property key="width" type="double">150</property>
              <property key="height" type="double">50</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
              <property key="cardBackground" type="string">#666666</property>
          </gz-gui>
      </plugin>

      <!-- Translate / rotate -->
      <plugin filename="TransformControl" name="Transform control">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="x" type="double">0</property>
              <property key="y" type="double">50</property>
              <property key="width" type="double">250</property>
              <property key="height" type="double">50</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
              <property key="cardBackground" type="string">#777777</property>
          </gz-gui>
      </plugin>

      <!-- Screenshot -->
      <plugin filename="Screenshot" name="Screenshot">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="x" type="double">250</property>
              <property key="y" type="double">50</property>
              <property key="width" type="double">50</property>
              <property key="height" type="double">50</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
              <property key="cardBackground" type="string">#777777</property>
          </gz-gui>
      </plugin>

      <!-- Copy/Paste -->
      <plugin filename="CopyPaste" name="CopyPaste">
          <gz-gui>
              <property key="resizable" type="bool">false</property>
              <property key="x" type="double">300</property>
              <property key="y" type="double">50</property>
              <property key="width" type="double">100</property>
              <property key="height" type="double">50</property>
              <property key="state" type="string">floating</property>
              <property key="showTitleBar" type="bool">false</property>
              <property key="cardBackground" type="string">#777777</property>
          </gz-gui>
      </plugin>

      <!-- Inspector -->
      <plugin filename="ComponentInspector" name="Component inspector">
          <gz-gui>
              <property type="bool" key="showTitleBar">false</property>
              <property type="string" key="state">docked</property>
          </gz-gui>
      </plugin>

      <!-- Entity tree -->
      <plugin filename="EntityTree" name="Entity tree">
          <gz-gui>
              <property type="bool" key="showTitleBar">false</property>
              <property type="string" key="state">docked</property>
          </gz-gui>
      </plugin>

      <plugin filename="toggle_charging" name="toggle_charging"/>
    </gui>

    <light type="directional" name="sun">
      <cast_shadows>true</cast_shadows>
      <pose>0 0 10 0 0 0</pose>
      <diffuse>1 1 1 1</diffuse>
      <specular>0.2 0.2 0.2 1</specular>
      <attenuation>
        <range>1000</range>
        <constant>0.09</constant>
        <linear>0.001</linear>
        <quadratic>0.001</quadratic>
      </attenuation>
      <direction>-0.5 0.1 -0.9</direction>
    </light>

  </world>
</sdf>