<?xml version="1.0" ?>
<sdf version="1.5">
  <world name="default">
    <include>
      <uri>model://ground_plane</uri>
    </include>
    <include>
      <uri>model://sun</uri>
    </include>

    <model name="white_box">
      <pose>0 0 0.25 0 0 0</pose>

      <link name="link">
        <collision name="collision">
          <geometry>
            <box>
              <size>0.5 0.5 0.5</size>
            </box>
          </geometry>
          <surface>
            <contact>
              <ode>
                <max_vel>0.00</max_vel>
                <min_depth>0.01</min_depth>
              </ode>
            </contact>
          </surface>
        </collision>
        <visual name="visual">
          <geometry>
            <box>
              <size>0.5 0.5 0.5</size>
            </box>
          </geometry>
        </visual>

        <sensor name="white_box_sensor" type="contact">
          <contact>
            <collision>collision</collision>
          </contact>
        </sensor>

      </link>

      <plugin name="touch_box" filename="libTouchPlugin.so">
        <sensor>white_box_sensor</sensor>
        <target>green_box</target>
        <time>3</time>
        <namespace>white_touches_only_green</namespace>
        <enabled>true</enabled>
      </plugin>

    </model>

    <model name="red_yellow_box">
      <pose>2 0 0.5 0 0 0</pose>

      <link name="red">
        <collision name="collision">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
          <surface>
            <contact>
              <ode>
                <max_vel>0.00</max_vel>
                <min_depth>0.01</min_depth>
              </ode>
            </contact>
          </surface>
        </collision>
        <visual name="visual">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
          <material>
            <ambient>1 0 0 1</ambient>
            <emissive>1 0 0 1</emissive>
          </material>
        </visual>

        <sensor name="red_box_sensor" type="contact">
          <contact>
            <collision>collision</collision>
          </contact>
        </sensor>

      </link>

      <link name="yellow">
        <pose>0 2 0 0 0 0</pose>
        <collision name="collision">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
          <surface>
            <contact>
              <ode>
                <max_vel>0.00</max_vel>
                <min_depth>0.01</min_depth>
              </ode>
            </contact>
          </surface>
        </collision>
        <visual name="visual">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
          <material>
            <ambient>1 1 0 1</ambient>
            <emissive>1 1 0 1</emissive>
          </material>
        </visual>

        <sensor name="yellow_box_sensor" type="contact">
          <contact>
            <collision>collision</collision>
          </contact>
        </sensor>

      </link>

      <plugin name="touch_box" filename="libTouchPlugin.so">
        <sensor>red_box_sensor</sensor>
        <sensor>yellow_box_sensor</sensor>
        <target>green_box</target>
        <time>5</time>
        <namespace>red_and_yellow_touch_only_green</namespace>
        <enabled>true</enabled>
      </plugin>

    </model>

    <model name="blue_box">
      <pose>-2 0 0.5 0 0 0</pose>

      <link name="link">
        <collision name="collision">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
          <surface>
            <contact>
              <ode>
                <max_vel>0.00</max_vel>
                <min_depth>0.01</min_depth>
              </ode>
            </contact>
          </surface>
        </collision>
        <visual name="visual">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
          <material>
            <ambient>0 0 1 1</ambient>
            <emissive>0 0 1 1</emissive>
          </material>
        </visual>

        <sensor name="blue_box_sensor" type="contact">
          <contact>
            <collision>collision</collision>
          </contact>
        </sensor>

      </link>

      <plugin name="touch_box" filename="libTouchPlugin.so">
        <sensor>blue_box_sensor</sensor>
        <target>green_box</target>
        <time>2</time>
        <namespace>blue_touches_only_green</namespace>
      </plugin>

    </model>

    <model name="green_box">
      <pose>4 0 0.5 0 0 0</pose>

      <link name="link">
        <collision name="collision">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
          <surface>
            <contact>
              <ode>
                <max_vel>0.00</max_vel>
                <min_depth>0.01</min_depth>
              </ode>
            </contact>
          </surface>
        </collision>
        <visual name="visual">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
          <material>
            <ambient>0 1 0 1</ambient>
            <emissive>0 1 0 1</emissive>
          </material>
        </visual>

      </link>

    </model>

  </world>
</sdf>
