<repast.simphony.visualization.engine.DefaultDisplayDescriptor>
  <type>TWO_D</type>
  <styles>
  </styles>
  <layerOrder>
    <entry>
      <string>org.metaabm.gen.test.BasicMovementAgent</string>
      <int>1</int>
    </entry>
    <entry>
      <string>org.metaabm.gen.test.NetworkAgent</string>
      <int>1</int>
    </entry>
    <entry>
      <string>org.metaabm.gen.test.BasicMovementStateAgent</string>
      <int>1</int>
    </entry>
    <entry>
      <string>org.metaabm.gen.test.BasicCell</string>
      <int>0</int>
    </entry>
  </layerOrder>
  <netStyles/>
  <frequency>ON_MOVE</frequency>
  <schedParams>
    <start>1.0</start>
    <interval>1.0</interval>
    <priority>-Infinity</priority>
    <duration>-1.0</duration>
    <frequency>REPEAT</frequency>
  </schedParams>
  <layoutProjection>Grid</layoutProjection>
  <layoutInterval>0</layoutInterval>
  <projections>
    <repast.score.impl.SGridImpl>
      <name>Grid</name>
    </repast.score.impl.SGridImpl>
  </projections>
  <valueLayers/>
  <visualizationProperties class="repast.simphony.visualization.UnitSizeLayoutProperties">
    <unitSize>10.0</unitSize>
  </visualizationProperties>

  <projectionDescriptors>
    <entry>
      <string>Grid</string>
      <repast.simphony.visualization.grid.GridProjectionDescriptor>
        <proj class="repast.score.impl.SGridImpl" reference="../../../../projections/repast.score.impl.SGridImpl"/>
        <props>
          <entry>
            <string>grid.GridDecorator</string>
            <map>
              <entry>
                <string>SHOW</string>
                <boolean>false</boolean>
              </entry>
              <entry>
                <string>UNIT_SIZE</string>
                <float>10.0</float>
              </entry>
              <entry>
                <string>COLOR</string>
                <int>-1</int>
              </entry>
            </map>
          </entry>

        </props>
      </repast.simphony.visualization.grid.GridProjectionDescriptor>
    </entry>
  </projectionDescriptors>
  <props>

  </props>
  <name>Basic Movement Model Display</name>
</repast.simphony.visualization.engine.DefaultDisplayDescriptor>
	