<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="15.1">
  <help_text>// Uncomment the following line to change the fontsize and font:
fontsize=14
// fontfamily=SansSerif //possible: SansSerif,Serif,Monospaced


//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on elements to add them to the diagram, or to copy them
// Edit elements by modifying the text in this panel
// Hold Ctrl to select multiple elements
// Use Ctrl+mouse to select via lasso
//
// Use +/- or Ctrl+mouse wheel to zoom
// Drag a whole relation at its central square icon
//
// Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
// Edit the files in the "palettes" directory to create your own element palettes
//
// Select "Custom Elements &gt; New..." to create new element types
//////////////////////////////////////////////////////////////////////////////////////////////


// This text will be stored with each diagram;  use it for notes.</help_text>
  <zoom_level>15</zoom_level>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>720</x>
      <y>435</y>
      <w>420</w>
      <h>240</h>
    </coordinates>
    <panel_attributes>**CommandQueue**
--
command_queue: curve::Queue
--
add_command(time_t, Command): void
get_queue(): curve::Queue</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Text</id>
    <coordinates>
      <x>660</x>
      <y>0</y>
      <w>540</w>
      <h>105</h>
    </coordinates>
    <panel_attributes>**Components**
style=wordwrap
fontsize=20</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>1260</x>
      <y>435</y>
      <w>195</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>
**Command**</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>1125</x>
      <y>465</y>
      <w>165</w>
      <h>45</h>
    </coordinates>
    <panel_attributes>lt=&lt;.</panel_attributes>
    <additional_attributes>90.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>720</x>
      <y>75</y>
      <w>420</w>
      <h>300</h>
    </coordinates>
    <panel_attributes>**Activity**
--
start_activity: Activity
node: curve::Discrete
scheduled_events: vector&lt;Event&gt;
--
get_start_activity(): Activity
get_node(time_t): Node
set_node(time_t, Node): void
init(time_t): void
add_event(Event): void
cancel_events(): void
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>1260</x>
      <y>75</y>
      <w>195</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>
**Activity**</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>1125</x>
      <y>105</y>
      <w>165</w>
      <h>45</h>
    </coordinates>
    <panel_attributes>lt=&lt;.</panel_attributes>
    <additional_attributes>90.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>1260</x>
      <y>210</y>
      <w>195</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>
**Node**</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>1125</x>
      <y>240</y>
      <w>165</w>
      <h>45</h>
    </coordinates>
    <panel_attributes>lt=&lt;.</panel_attributes>
    <additional_attributes>90.0;10.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>1350</x>
      <y>150</y>
      <w>45</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>lt=&lt;.</panel_attributes>
    <additional_attributes>10.0;40.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>720</x>
      <y>720</y>
      <w>420</w>
      <h>240</h>
    </coordinates>
    <panel_attributes>**Ownership**
--
owner: curve::Discrete
--
set_owner(time_t, ownership_id_t): void
get_owners(): curve::Discrete</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>720</x>
      <y>1020</y>
      <w>420</w>
      <h>240</h>
    </coordinates>
    <panel_attributes>**Position**
--
position: curve::Continuous
angle: curve::Segmented
--
get_positions(): curve::Continuous
get_angles(): curve::Segmented
set_position(time_t, coord::phys3): void
set_angle(time_t, phys_angle_t): void</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>855</x>
      <y>1305</y>
      <w>165</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>
**Idle**
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>720</x>
      <y>1455</y>
      <w>465</w>
      <h>240</h>
    </coordinates>
    <panel_attributes>**Live**
--
attribute_values: curve::UnorderedMap
--
add_attribute(time_t, fqon_t, curve::Discrete)
set_attribute(time_t, fqon_t, int64_t): void</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>855</x>
      <y>1740</y>
      <w>165</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>
**Move**
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>855</x>
      <y>1890</y>
      <w>165</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>
**Turn**
</panel_attributes>
    <additional_attributes/>
  </element>
</diagram>
