<?xml version="1.0" encoding="utf-8"?>
<logicalClassDesignerModel xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:dm1="http://schemas.microsoft.com/dsltools/Kernel" xmlns:dm2="http://schemas.microsoft.com/dsltools/Component" xmlns:dm3="http://schemas.microsoft.com/dsltools/UseCase" xmlns:dm4="http://schemas.microsoft.com/dsltools/Activity" xmlns:dm5="http://schemas.microsoft.com/dsltools/Interaction" xmlns:dm6="http://schemas.microsoft.com/dsltools/UmlModelLibrary" xmlns:dm7="http://schemas.microsoft.com/dsltools/UmlDiagrams" xmlns:dm8="http://schemas.microsoft.com/dsltools/ModelStore" dslVersion="1.0.0.0" Id="52e2dbea-248e-48cb-a716-67df0f03a48b" name="UMLClassDiagram1" linkedPackageId="e64778f0-4ac6-4aaa-961e-f0f8f7a26972" xmlns="http://schemas.microsoft.com/dsltools/LogicalClassDesigner">
  <packagedElements>
    <logicalClassDesignerModelHasTypes>
      <class Id="0ed15675-561e-4d6d-b68e-b025e33cc336" name="World" isAbstract="false" isLeaf="false" isActiveClass="false">
        <elementDefinition Id="67cec37a-a5e8-41c1-b1a4-74ffbcf9ca34" />
        <ownedOperationsInternal>
          <operation Id="ae46e44d-9c71-4047-9c99-1d1d7b41ff4d" name="Initialize" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="43afa6a1-644d-48b8-ab03-3d88122752d5" />
          </operation>
          <operation Id="1fe0eb2d-a8f4-425e-a5b9-acef97b7271d" name="RegisterSystems" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="f5fcc1ef-51f4-4804-a227-b5d954404c8f" />
          </operation>
          <operation Id="afafbb42-d2fa-49f1-9774-dab5b7c5abfc" name="AddSystems" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="ebe64c17-3671-46d5-9dff-9e4c17061bda" />
          </operation>
          <operation Id="cc156cf7-9f68-4240-b0a1-009bc34d391f" name="RegisterComponents" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="4b2a898e-1b70-417e-8108-ffe8e1b11052" />
          </operation>
          <operation Id="2f11b864-6c8a-4883-a9eb-08290eda44e8" name="AddSystem" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="0562aaac-071a-4c7b-b563-6d1828421676" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="dc437460-29bc-4660-9e8e-d0c87d7e6990" name="systemType" direction="In" isUnique="false">
                  <elementDefinition Id="a1b984a1-eec8-4238-bb58-b0f3b4927ad9" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="aa11c459-975b-4dcf-b55f-966e25a0f9ca" name="GetSystem" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="2667a55a-34f8-4974-87ab-063f5ca75464" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="543bc797-bd76-4f4d-b3ba-9613e7376990" name="systemType" direction="In" isUnique="false">
                  <elementDefinition Id="49beef03-b3b6-45de-9761-c44c565a9cd1" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="e1c6cc28-a5ca-4048-b754-5c9fff4b6aae" direction="Return" isUnique="false">
                  <elementDefinition Id="84255a52-02ce-44f3-9597-7fa2a60dd921" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="2ac483e8-96a1-4c6a-be71-25543fee5bba" LastKnownName="System*" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="4b91f014-d1d8-4d88-9ad5-8d6543c8a658" name="CreateEntity" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="af8f3a95-64c2-48fe-af05-b1a55ef2f3fd" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="8ebaa9fe-cc25-4d04-9f43-6920755de92a" name="parent" direction="In" isUnique="false">
                  <elementDefinition Id="b430f167-449c-4bdf-b7da-43286cacf238" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                  <defaultValue>
                    <literalString Id="4722d3c4-fa2c-4e2e-ac68-e60b34ba60e5" name="DefaultValue" value="0">
                      <elementDefinition Id="2a3e6416-53ed-4647-9062-bf5f9b9e0add" />
                    </literalString>
                  </defaultValue>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="82c2fd71-8c50-4997-9690-2af74f78d91e" direction="Return" isUnique="false">
                  <elementDefinition Id="c0524a3f-417d-4875-953a-98d11bc396e2" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="077a9d5a-c978-404a-acad-cbd8c07ffb5f" name="RemoveEntity" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="fc3b75e6-90a9-4fd9-8bbe-0ddff5d8c2a5" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="629d8fe1-f41e-42cc-8ebf-eb762ebc1867" name="entity" direction="In" isUnique="false">
                  <elementDefinition Id="00957331-4e9c-4d01-9fc7-7969dbefaa00" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="74586a0c-f3b1-4b7b-a349-7ddcfa66b9d3" name="ValidEntity" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="aa3ffd7e-6ca7-4803-b238-cde122f7547a" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="368158b3-0914-400b-8359-c46b48f4ee57" name="entity" direction="In" isUnique="false">
                  <elementDefinition Id="0f116666-53cb-43d8-b4e9-89c92e7155ee" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="f7bfef5b-7b11-49d0-afd6-bd664a4bb917" name="GetEntityParent" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="8c3e616e-0525-4ed0-a995-7175ad399368" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="0013167c-7974-4ce8-8501-decf41851c8b" name="entity" direction="In" isUnique="false">
                  <elementDefinition Id="1a3a21ac-21bf-4801-99d9-047011409876" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="80b7c4d1-82be-4f7b-be19-ac352a1dedfc" direction="Return" isUnique="false">
                  <elementDefinition Id="03887f42-a3e1-45f3-ba4b-ff7909b44db2" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="7fb66323-29cf-4344-83d4-c63b16bf5ef6" name="GetEntityBaseParent" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="2ea298f5-5775-483b-a2f6-c1193b5b9c51" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="274df2ab-180a-40e5-9123-35919c05fefb" name="entity" direction="In" isUnique="false">
                  <elementDefinition Id="979a8df4-2bdd-4714-abda-d4a728db8c0e" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="9bf01152-e1b1-49f5-ac77-6c54869e371b" direction="Return" isUnique="false">
                  <elementDefinition Id="d86c4c93-9d7d-40d5-9a7a-5b288794cded" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="c0f50cbb-28c6-40d3-91bf-9158c223931a" name="GetProperty" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="d4e593e6-1a1f-41bc-a45a-19381adbce47" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="cd2f2134-7bdf-4d0e-960f-b05b30cdad91" name="entity" direction="In" isUnique="false">
                  <elementDefinition Id="872578f1-98c3-4e1e-9303-c748e31d92d4" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="a2d945c7-f4e4-4f62-bd24-7748a09b46ea" name="property" direction="In" isUnique="false">
                  <elementDefinition Id="9b0313c8-d0f8-4b00-b356-3f6997fe5e36" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="2c1fbd76-11a1-4021-aa7a-7b713373de27" direction="Return" isUnique="false">
                  <elementDefinition Id="7cbacf13-169b-439e-8ea9-4e0f71c49c97" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="9ad612b0-d082-44c9-89e5-4a94b9ed74c0" LastKnownName="&lt;T&gt;" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="5df98d31-bb77-4128-9b43-1d44efc1e25f" name="SetProperty" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="2284efc7-509f-4be9-b074-3ef1ab0dff63" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="03e0d224-7b0b-4f43-854e-36f0eb72a2a2" name="entity" direction="In" isUnique="false">
                  <elementDefinition Id="f66f563d-14d7-46e0-a221-b3884351bd31" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="94ca7651-7801-4f05-a27a-61d0df2a327c" name="property" direction="In" isUnique="false">
                  <elementDefinition Id="156be2f4-42b4-4582-93dc-c6fbd9d7a327" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="b2662f68-9a41-4a8f-807c-48257ca450fa" name="value" direction="In" isUnique="false">
                  <elementDefinition Id="22e3f0e4-e621-4462-84dd-224910cbd786" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="66b128e7-457d-49a6-b2f0-1ecdc5e4c1d1" LastKnownName="boost::any" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="740cc9f2-a298-4c7e-8c10-7c12b5f188c8" name="AddComponent" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="50b0d299-496e-4358-8f7f-d1bca08f29b8" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="85fa24da-c0ca-4cc9-af6c-00a6215798de" name="entity" direction="In" isUnique="false">
                  <elementDefinition Id="6e973ccc-aeaa-4063-a717-66709a083ba8" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="349258e7-94a3-4e15-ad14-eedcc9287341" name="componentType" direction="In" isUnique="false">
                  <elementDefinition Id="55b7e7e1-c3d0-428b-8307-47c7081869b8" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="25eff246-c9a5-4257-b802-6c85ba767fbe" direction="Return">
                  <elementDefinition Id="a6286d1b-248f-4ea1-aa56-091708390124" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="2e60e9a0-92a0-4cd4-8d0a-fd475ee51971" LastKnownName="Component*" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="f7c3e615-7f78-446a-94da-c7346c472a69" name="GetComponent" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="1fa7d20d-22d2-4fa5-a8ec-ab85d9477da2" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="9924274e-db1b-42e1-b8c8-2729d4d0c7d9" name="entity" direction="In" isUnique="false">
                  <elementDefinition Id="9b324c32-bdf9-43ef-8de5-1252c1008499" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="0bca4e27-b00e-4ab2-a57d-8aea78efb1ee" name="componentType" direction="In" isUnique="false">
                  <elementDefinition Id="a7702a2d-f497-428e-b936-ddebf341a75d" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="23ff66ce-7509-4247-ad8c-f06e9bb06a28" direction="Return" isUnique="false">
                  <elementDefinition Id="c3a9f809-abc9-49b2-9788-63c1e1039d54" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="2e60e9a0-92a0-4cd4-8d0a-fd475ee51971" LastKnownName="Component*" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="1392aa56-3528-4e81-9e02-0228801a31cd" name="Update" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="9a635ef2-0363-4d13-b1ee-2c4a111ce447" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="46884c57-0c6c-48ca-95db-5196fcb07728" name="dt" direction="In" isUnique="false">
                  <elementDefinition Id="2d92c2a5-9b42-4a96-8493-b23dbab730bc" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="166bb454-193c-4738-88f4-30dfab2b6786" name="RecursiveUpdate" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="6ada5c3e-c4e4-4059-9f6e-ba12b19f46fc" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="14f1cbee-6b59-4e1e-a369-dd9951ec8b3d" name="system" direction="In" isUnique="false">
                  <elementDefinition Id="de75394f-66de-4416-aca9-00a528f8ed4d" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="2ac483e8-96a1-4c6a-be71-25543fee5bba" LastKnownName="System*" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="88f7621e-3878-4cc7-b9f3-af199a4f88e1" name="dt" direction="In" isUnique="false">
                  <elementDefinition Id="169c3dc3-d0a5-41db-83b1-67726949c39b" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter Id="2cadf96b-0bb6-45bb-b3a7-b11e37f78e29" name="parentEntity" direction="In" isUnique="false">
                  <elementDefinition Id="3b79e3e1-a7f6-4da1-8396-ec0140515a18" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation Id="0f835703-c503-497f-8109-faf4c75144bd" name="GetEntities" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="3206dfca-8f28-4b94-b7a6-08454683c193" />
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter Id="daaddca4-d4e8-4700-b381-d59a67ad7e58" direction="Return" isUnique="false">
                  <elementDefinition Id="98b7fc14-94fc-40ae-b914-4dbee58d236a" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="c69826c4-8234-4434-9a8f-0c3115c4170f" LastKnownName="map(EntityID, EntityID)*" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </logicalClassDesignerModelHasTypes>
    <logicalClassDesignerModelHasTypes>
      <class Id="25bedf10-3ad6-4717-8d3a-89318b9e2bf4" name="GameWorld" isAbstract="false" isLeaf="false" isActiveClass="false">
        <elementDefinition Id="128ae8bf-c69a-4290-b085-d67fcb63971f" />
        <generalsInternal>
          <generalization Id="434653f3-9bed-49de-a102-e83015a4f2ed" isSubstitutable="false">
            <classMoniker Id="0ed15675-561e-4d6d-b68e-b025e33cc336" LastKnownName="World" />
            <elementDefinition Id="05658d06-eb1d-450a-9801-98558ba8b0f0" />
          </generalization>
        </generalsInternal>
        <targetEnds>
          <association Id="7511a642-d3be-4778-a8dc-05eabb6fc3e8" isDerived="false" sourceEndRoleName="GameWorld" targetEndRoleName="Engine" isLeaf="false" isAbstract="false">
            <classMoniker Id="07fc7ff1-1d71-48c2-b033-fa9687a6b977" LastKnownName="Engine" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd Id="02c6931e-c81c-4075-a876-aa88952760e6" name="GameWorld" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false" isNavigableOwned="false">
                  <elementDefinition Id="0ca70d87-69f5-486b-897e-94717a2c6b62" />
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd Id="aa9d4765-4165-4a28-8957-68cb474b3fd8" name="Engine" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="750b63ad-fe42-4386-8bd5-3ebf025b80db" />
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
            <elementDefinition Id="4acff57e-1c73-4091-bffe-18eb8e2fd028" />
          </association>
        </targetEnds>
      </class>
    </logicalClassDesignerModelHasTypes>
    <logicalClassDesignerModelHasPackages>
      <package Id="e6ed321b-34f8-4d9a-94dc-6ee83086bd77" name="Component System">
        <elementDefinition Id="5a96cc0d-896f-4a1d-95a0-f37e99418147" />
        <packagedElements>
          <packageHasNamedElement>
            <Interface Id="0286c1be-03f0-4c95-a825-168f17ea0248" name="Component" isAbstract="false" isLeaf="false">
              <elementDefinition Id="557b402c-c226-4a6b-ace0-d9de61545867" />
              <ownedAttributes>
                <property Id="4e0bcf7b-2bdf-4d33-b8e1-fc15c8e4656b" name="Entity" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="340811f5-760c-45ac-8445-6b695a0aed3e" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                  </type_NamedElement>
                </property>
              </ownedAttributes>
            </Interface>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <Interface Id="9e1581e3-e56c-400b-8018-17718ed868eb" name="System" isAbstract="false" isLeaf="false">
              <elementDefinition Id="443f17bb-330b-495b-99fb-03ed57410a6b" />
              <targetEnds>
                <association Id="ae8f0f6b-7eaa-43c1-a4d9-79ef4acc6adb" isDerived="false" sourceEndRoleName="System" targetEndRoleName="GameWorld" isLeaf="false" isAbstract="false">
                  <classMoniker Id="25bedf10-3ad6-4717-8d3a-89318b9e2bf4" LastKnownName="GameWorld" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="aa60997a-58e4-4057-a09b-7a6f4f9f055f" name="System" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Shared" isComposite="false" isNavigableOwned="false">
                        <lowerValueInternal>
                          <literalString Id="84572846-e940-4f46-9681-ec5287229ba2" name="Lower" value="0">
                            <elementDefinition Id="5ab44b60-1722-47c6-a72e-69667d9ea05d" />
                          </literalString>
                        </lowerValueInternal>
                        <upperValueInternal>
                          <literalString Id="454f1b50-8e34-4879-b030-2289701bbca5" name="Upper" value="*">
                            <elementDefinition Id="b0836a30-cc05-431d-b22c-678e63df5a6c" />
                          </literalString>
                        </upperValueInternal>
                        <elementDefinition Id="302575c1-f29d-4f1f-81bb-740744f00e5d" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="1f7f0503-9438-4ec6-a52b-989a09fbad67" name="GameWorld" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="5dfee949-4629-4374-bbd1-afd2f3b01091" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="4e3589aa-15f5-4f34-b9d2-07c0dcc58fc1" />
                </association>
              </targetEnds>
              <ownedAttributes>
                <property Id="4ca2977c-e3c3-4e50-9031-3d38f597e776" name="World" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="9454b405-9745-4133-9b2d-7f4fc551aed8" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="c7561754-ebe9-4600-9c8b-9f4db2cc686b" LastKnownName="World" />
                  </type_NamedElement>
                </property>
              </ownedAttributes>
              <ownedOperations>
                <operation Id="013ebc2f-0c0e-48a5-80dc-f082c90ba12d" name="Initialize" isLeaf="false" isStatic="false" isAbstract="true" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="c0998300-6e3e-4bc4-b6b7-d81b9d2a3e42" />
                </operation>
                <operation Id="16e01c59-50ee-4593-8055-eaa2cd006f30" name="Update" isLeaf="false" isStatic="false" isAbstract="true" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="782f5644-5f71-4014-9e60-a813cbc93c0f" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="8339b999-b104-47ca-a9d6-c35e108b68ea" name="dt" direction="In" isUnique="false">
                        <elementDefinition Id="19887190-e775-4fab-944b-80d1e0dfc165" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="1062223b-a31b-4cf0-a307-a2f99199d92a" name="UpdateEntity" isLeaf="false" isStatic="false" isAbstract="true" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="6e10c782-cafc-48fe-88c1-35d8fba1b518" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="9b46f592-0f05-4302-a0f3-88142d3fbfeb" name="dt" direction="In" isUnique="false">
                        <elementDefinition Id="de520652-525b-4807-b1d9-ec8cbfbbf9f9" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="5d2ebf46-e083-438b-8190-21eb89b64397" name="entity" direction="In" isUnique="false">
                        <elementDefinition Id="708a5c4a-8bca-435e-b4c6-46d1ffc371b1" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="dea6aa4c-6932-4c67-b25a-5810b2ab9a7e" name="parent" direction="In" isUnique="false">
                        <elementDefinition Id="e683e7d0-ac62-4064-a327-3343bb09765a" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="f6fab798-aece-4fa4-8c3b-84ccd7aa6d31" name="OnComponentCreated" isLeaf="false" isStatic="false" isAbstract="true" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="29f00907-8622-43f4-ade6-d68f629b7109" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="d59a97de-fb02-42a3-b221-8d0cbc39eaa6" name="type" direction="In" isUnique="false">
                        <elementDefinition Id="8252b4a9-c8f9-4244-97f1-a815faf4ba8e" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="2720fd8b-f46d-420d-82ef-8b4a0177a44d" name="component" direction="In" isUnique="false">
                        <elementDefinition Id="7e7172e1-5c14-476b-9bcf-8b29759ecccc" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="1d983cef-dda1-4a30-855d-8e7bb3a1da2e" name="OnComponentRemoved" isLeaf="false" isStatic="false" isAbstract="true" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="6fd5395d-5577-4d7c-bc10-be3c8f247539" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="990a5897-edd9-4448-85a7-e4ce51d03f8b" name="type" direction="In" isUnique="false">
                        <elementDefinition Id="baef362f-2c14-4f1c-817f-cb9d1d7c5b64" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="193014af-fcab-4235-a8cc-d68f84c3f1c7" name="component" direction="In" isUnique="false">
                        <elementDefinition Id="267cf030-fc1c-4286-b00c-189e9ed64e4a" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
              </ownedOperations>
            </Interface>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <package Id="ef946c58-d5ab-4421-8a0e-8978bfd4bfec" name="Components">
              <elementDefinition Id="7e7e552f-bf35-428c-abc5-12a0b7f81d8b" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="a9dc6a21-619b-4c47-8377-ed19f5b58f2c" name="Transform" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="9fa0cc33-d38c-4200-ae73-46e6ca81a0eb" />
                    <ownedAttributesInternal>
                      <property Id="8f9104c1-c240-471d-bfb5-6b4d9e73e938" name="Position" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="30323bf8-d075-443e-8cff-588c8859eb89" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                      <property Id="d12e9738-debd-46f8-b756-95f7e1d339e0" name="Orientation" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="4b7f205d-86e6-4647-87b6-181a19a6ded9" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="83a3e481-9053-4d65-b5a2-1d651e30c8ac" LastKnownName="Quaternion" />
                        </type_NamedElement>
                      </property>
                      <property Id="d0725b6f-22b0-4408-b61e-cd2bc63d2cb5" name="Velocity" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="de3a86ca-f928-446a-9894-2a83885523f0" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                      <property Id="9b5e2097-8a1d-46b3-9a45-6b9d6f8d7411" name="Scale" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="dd66413d-34bc-43a1-9a5a-27c5630bb42e" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="0ce8d322-d0cb-4c6a-a3b9-c9ec63caf840" name="Template" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="aae98821-edea-430a-81fb-21de796c3dd4" />
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
        </packagedElements>
      </package>
    </logicalClassDesignerModelHasPackages>
    <packageHasNamedElement>
      <referencedType Id="dd83fe94-4353-4775-9b03-c050c12e1356" name="String" isAbstract="false" isLeaf="false" cachedFullName="String">
        <elementDefinition Id="59259974-6d55-42c6-b7bd-763d77ac8ef9" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" name="Float" isAbstract="false" isLeaf="false" cachedFullName="Float">
        <elementDefinition Id="abf6232c-7432-4662-913b-e73b0447b228" />
      </referencedType>
    </packageHasNamedElement>
    <logicalClassDesignerModelHasPackages>
      <package Id="5ab934aa-8296-4df8-9373-6ee0523d2699" name="Physics">
        <elementDefinition Id="d5946439-2b55-4f8b-8b2b-3e82610c7896" />
        <packagedElements>
          <packageHasNamedElement>
            <package Id="0ab2fc20-9cb1-461e-9565-0cdbc50a621e" name="Components">
              <elementDefinition Id="70653549-a4c6-43e6-a208-7f4f01dfc4e4" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="8f8d7111-2643-49d3-9ddd-c4b5b909e9d5" name="BoxShape" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="deb43794-7ad3-4b39-b7a1-ccf2d30d17af" />
                    <ownedAttributesInternal>
                      <property Id="43087ed1-b897-411e-9cc3-754759a612e6" name="Width" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="694b0945-7913-4406-8140-0654bc8303ee" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="dcc6bc37-5b0e-4187-bf8d-cc3921aef96a" name="Height" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="6c1a4e28-c684-4bbc-a329-201eb68645f3" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="5e4e4cf7-6841-4e65-acab-87f4eb0343b7" name="Depth" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="2dfd8475-fa60-45aa-9a49-a0aafbdb2bef" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="62a0fdbb-0bfd-4f63-8bcc-bf75b4e0d68e" name="Physics" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="27a696be-cec9-43ca-a9c4-7154e50cf929" />
                    <ownedAttributesInternal>
                      <property Id="9592b7ca-70c3-4715-8daf-62bcad928b42" name="Mass" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="d6f75e6e-6ef3-45de-acb3-58dded5a19c3" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="09b12df2-4ffd-4060-9da1-b37315eee869" name="Friction" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="701e7e05-3350-435b-b151-b4c052096293" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="bc186436-d171-4223-bcf0-30c14e0f5793" name="Gravity" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="93119283-1bd2-4e5b-aa98-7271f9f894f4" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                        <defaultValue>
                          <literalString Id="28dfea7c-6202-4336-a0cf-1107f6aad171" name="DefaultValue" value="(0, -9.82, 0)">
                            <elementDefinition Id="bc040cc4-107c-4867-b3a5-28cd6401f69f" />
                          </literalString>
                        </defaultValue>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="8eedceb4-f62e-4de2-85cb-f795e8b79056" name="CompoundShape" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="6070dc3d-c226-413d-93ff-12ddc116330c" />
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="1e6014ab-f5b8-40ee-a1da-7baca625bc04" name="SliderConstraint" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="dad90a02-641a-4f4d-a172-5a14c7317ae3" />
                    <ownedAttributesInternal>
                      <property Id="be48f793-3c39-4189-a013-f1f331fee25d" name="EntityA" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="87ad8bbf-9872-443b-b7f4-58064eb02ac7" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                        </type_NamedElement>
                      </property>
                      <property Id="1039e690-e29e-4ff3-8d01-bb1f5c53a357" name="EntityB" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="5b9ffee7-fb14-40f3-910c-e22496461151" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="a146eeff-244e-46f7-9ce1-880cab352847" name="BallSocketConstraint" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="b81fed9f-1dfe-4bce-9c00-3a00b8d736df" />
                    <ownedAttributesInternal>
                      <property Id="168b957b-b42d-4430-ab65-2bfc3aa608ad" name="EntityA" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="55ecca99-5a58-4999-a86a-431167c52c8d" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                        </type_NamedElement>
                      </property>
                      <property Id="63181444-66cf-47e4-b3d3-f4e0d2118509" name="EntityB" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="b83dd1a7-e6a1-42f8-b266-463ae6c54ef5" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                        </type_NamedElement>
                      </property>
                      <property Id="2043aa86-959e-489e-8b60-9f3197e080a6" name="PivotA" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="b8937483-953e-4818-8403-9a6279754025" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                      <property Id="cc0e138c-45b0-429b-a4d5-bcbdd5039b05" name="PivotB" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="c37f03d5-7f7b-44fe-9106-85e45b8fe6e6" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="2af4d990-6777-4381-aef8-2dafd00b1cd8" name="SphereShape" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="17b78103-b3c2-4a31-adcb-22183209eb76" />
                    <ownedAttributesInternal>
                      <property Id="b20a3d5b-314a-482d-8d9f-29e918515476" name="Radius" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="9ec4c755-16ae-4859-ab41-def6538c34a2" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="03d6785f-6fcb-4606-8215-7e734f976136" name="MeshShape" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="ee612f2c-6c30-4513-948f-8f542fde1452" />
                    <ownedAttributesInternal>
                      <property Id="b529142f-f967-4418-85a8-167d13b9a8cf" name="ModelName" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="03c7407d-6620-4083-a67e-50e7f9b4441f" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="b3652d42-bf0f-4a9e-91b6-9e0b0edadf8c" name="StaticMeshShape" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="b2a406ce-5bb0-435d-b394-63b4a5977737" />
                    <ownedAttributesInternal>
                      <property Id="633a218c-5377-4eda-9fb7-88fb40ecb8a3" name="ModelName" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="c3bd64ef-fcd5-467d-894c-4ecdb93590c4" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="985b41f5-4ece-4afb-a659-bab01fd71376" LastKnownName="String" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="a5dc8a6b-fed2-4b6c-803c-5c201bd6e91c" name="HingeConstraint" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="ef791ee5-7a83-42cc-8c89-ce759bfec134" />
                    <ownedAttributesInternal>
                      <property Id="c242994b-efe5-423e-b6c7-8d483814c3fa" name="EntityA" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="d520195a-d023-4968-ad6e-a3cc796849b7" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                        </type_NamedElement>
                      </property>
                      <property Id="1df977de-2346-48dd-9a50-7f396ca5db2b" name="EntityB" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="8b4b8923-8330-44b2-9ba0-9d270733d012" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                        </type_NamedElement>
                      </property>
                      <property Id="48fa253d-5446-45ba-8c24-3dfc2c9e4d4f" name="PivotA" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="987ddddf-571a-41de-99d3-cc546c10c670" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                      <property Id="a89e401d-b306-4976-b26c-0e89a8d90674" name="PivotB" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="01e8178b-1917-4225-a866-36d6c899179e" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                      <property Id="108fa1f0-56a2-4d21-b9e4-1bbd38aeebd8" name="AxisA" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="cef36066-e238-40c9-904f-460de2d6772e" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                      <property Id="9150f073-d26b-407e-8493-bfcfdeb63c25" name="AxisB" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="6eee9fcc-57cd-49f9-8911-dde6b4a320b0" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                      <property Id="de8c396d-4a19-4709-b277-ff6ef4601211" name="LowLimit" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="f9b8f549-bdff-4174-82d2-6e2f0e99bda2" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="f97458c2-9bca-49f1-a734-7d6813f78a83" name="HighLimit" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="aff00fe1-cf03-4641-bee9-00df9241ed44" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="5fa91641-e07b-4dc8-9022-0e44e3fa382e" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="0a221f73-7f51-4577-884c-2b48779de2ad" name="Softness" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="ff7b3d03-3b50-4676-ab93-6015c8fe29c2" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                        <defaultValue>
                          <literalString Id="39d28196-1091-4c21-a682-f32e305a2f4f" name="DefaultValue" value="0.9">
                            <elementDefinition Id="36bdb4ea-ca77-4c59-ba0f-770183f7bda4" />
                          </literalString>
                        </defaultValue>
                      </property>
                      <property Id="24d60a86-7831-42b9-a6c0-0bb3ff3b5439" name="BiasFactor" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="1da67046-ad43-4d08-8db2-ae3e9966d3a8" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                        <defaultValue>
                          <literalString Id="a2b90be1-ae27-4a85-9ec0-c604601929e3" name="DefaultValue" value="0.3">
                            <elementDefinition Id="d1f0cdae-3524-44f7-b058-87eb5dea817b" />
                          </literalString>
                        </defaultValue>
                      </property>
                      <property Id="92457dd7-c16b-4d3c-81bf-1d62c3aefc34" name="RelaxationFactor" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="18532d33-a920-46e2-8244-c3f724c6b6d6" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                        <defaultValue>
                          <literalString Id="25410c1f-4612-40c3-9495-b9eb2193da40" name="DefaultValue" value="1.0">
                            <elementDefinition Id="c00677e9-9060-46be-bc9e-5f9ab199d639" />
                          </literalString>
                        </defaultValue>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <package Id="fbeef7ee-04df-40e1-aad4-9b8daa951548" name="Systems">
              <elementDefinition Id="0c2de06d-6ee3-4e4c-b9b9-77aba990ee22" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="264bf1c4-cb92-46a4-b47e-82a6d941325c" name="PhysicsSystem" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="2f752c54-b7df-47e4-99e0-a149f7c8fa4a" />
                    <suppliersInternal>
                      <interfaceRealization Id="98aae7d3-5ca4-4354-8890-e6c10111280c">
                        <interfaceMoniker Id="9e1581e3-e56c-400b-8018-17718ed868eb" LastKnownName="System" />
                        <elementDefinition Id="add43663-82ef-4678-b553-58c2a958282f" />
                      </interfaceRealization>
                    </suppliersInternal>
                    <ownedOperationsInternal>
                      <operation Id="bffe4adb-3801-4875-bd6f-92b03fa354e3" name="Initialize" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="90eacb77-3b40-4ed2-b36c-514b8fb23775" />
                      </operation>
                      <operation Id="cff60a69-8629-4cf6-b4e7-1559c8f7bd8e" name="Update" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="4651f9b9-af0f-4973-b2ed-4305e29dc159" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="521d7b5d-11e6-443b-bd9c-0a811c387c4a" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="f0bdeed0-2ebd-449b-a73b-f5af9fb4dc4b" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="28348f89-57a7-4845-b5bd-7ef579c2f548" name="UpdateEntity" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="41cb13cd-f234-4b82-8595-d851f4bc5646" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="281546fc-bb8c-43dc-b25a-05e2e68755b5" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="428a5351-4c31-4bbe-a93a-6ece98c34a46" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="0f40f929-2e41-494a-8965-48ba1d8f176d" name="entity" direction="In" isUnique="false">
                              <elementDefinition Id="5c9cb0f0-75dd-404a-8259-8c728f0e5ce6" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="a7129646-f561-496d-9019-98a92aafb79a" name="parent" direction="In" isUnique="false">
                              <elementDefinition Id="3999daec-f570-4044-ba23-6789061c42ed" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="2053ed19-43bb-429b-a067-bb8794c08192" name="OnComponentCreated" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="2f538eb5-eec4-46d8-ae3c-de2547e8e668" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="1a8478fe-69e0-4761-b95d-3f54389fb4e1" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="f84f5abf-65e2-4c56-8f3f-0dfbe4445c36" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="ca122e15-2e5b-4168-9922-01002689a50d" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="e7e4c001-d1f7-4d12-b79d-46f74bc0da30" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="70fe7968-348d-4345-bde2-d34bdf591490" name="OnComponentRemoved" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="3572b68b-fc4c-4012-9827-954efd344c85" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="f0cd244b-1eff-4b5e-8601-dd6bfb83e834" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="899e96f4-d680-4b4e-805d-819e85e02ee7" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="bb9faf1f-960f-4935-b269-1b38a5bb0be3" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="b8d255fa-7375-4ef0-8a5e-55f4662fab71" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                    </ownedOperationsInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
        </packagedElements>
      </package>
    </logicalClassDesignerModelHasPackages>
    <packageHasNamedElement>
      <referencedType Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" name="Vector3" isAbstract="false" isLeaf="false" cachedFullName="Vector3">
        <elementDefinition Id="1d0ee20e-670d-4332-83c4-d5766677500d" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" name="EntityID" isAbstract="false" isLeaf="false" cachedFullName="EntityID">
        <elementDefinition Id="8ba9f02a-1b44-4417-a1b3-b0a19e11fab5" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="5fa91641-e07b-4dc8-9022-0e44e3fa382e" name="Float" isAbstract="false" isLeaf="false" cachedFullName="Float">
        <elementDefinition Id="abf6232c-7432-4662-913b-e73b0447b228" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="985b41f5-4ece-4afb-a659-bab01fd71376" name="String" isAbstract="false" isLeaf="false" cachedFullName="String">
        <elementDefinition Id="59259974-6d55-42c6-b7bd-763d77ac8ef9" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="c7561754-ebe9-4600-9c8b-9f4db2cc686b" name="World" isAbstract="false" isLeaf="false" cachedFullName="World">
        <elementDefinition Id="9794f069-92aa-429a-8e65-4c3b1029508b" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" name="Double" isAbstract="false" isLeaf="false" cachedFullName="Double">
        <elementDefinition Id="ef82f100-2f45-465e-b04f-921abe839bdd" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" name="Component" isAbstract="false" isLeaf="false" cachedFullName="ModelingProject1::Component System::Component">
        <elementDefinition Id="557b402c-c226-4a6b-ace0-d9de61545867" />
      </referencedType>
    </packageHasNamedElement>
    <logicalClassDesignerModelHasPackages>
      <package Id="51610edc-23d4-4849-a456-3c5b1d29dbf3" name="Rendering">
        <elementDefinition Id="0455a440-fe60-47be-a0ff-2559a40fd8d4" />
        <packagedElements>
          <packageHasNamedElement>
            <package Id="18f5bee4-5451-4772-bca7-ea6f76faf428" name="Components">
              <elementDefinition Id="69e51d9c-3a6d-45cb-bf63-b7be3c24d825" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="b6eaa735-d66b-457a-87dc-a59151533525" name="Model" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="c6c64b77-7389-41c3-b2f2-217761d5eee8" />
                    <ownedAttributesInternal>
                      <property Id="dab5ffe2-33e0-40dd-8eb9-ca0b7baaa913" name="ModelName" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="40b0a879-8cb7-4fdf-a2e9-55d7b19a7579" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c5169c03-e704-4c11-aa39-dce7f17deedd" LastKnownName="String" />
                        </type_NamedElement>
                      </property>
                      <property Id="8519c8fe-9752-48ad-81e3-c70755d8a3d2" name="Color" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="783fb532-4e21-4521-bddd-4a5a5c4c7161" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="cdb3f276-11c5-4548-ba01-b34bca0e6909" LastKnownName="Color" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="69c29a54-bb04-4e80-b7f5-07db5d5ba748" name="Sprite" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="52346a70-1c27-4b20-a232-04b052c0c567" />
                    <ownedAttributesInternal>
                      <property Id="404218cb-b598-4f10-bb03-4ef595730b76" name="SpriteName" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="7f75ce74-8e85-4fcc-b251-883d694e1d31" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="61feccb3-9e34-4a8e-9946-d9b65f6d656e" LastKnownName="String" />
                        </type_NamedElement>
                      </property>
                      <property Id="bc6a2e74-060e-41d5-9d8d-4cb97e34d230" name="Color" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="9b0a845a-055f-491b-a9a5-83cc3e17caa4" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="759f85f2-70fa-435b-ba8b-1c5cd5cc3e62" LastKnownName="Color" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="421693d9-eb4e-4ff0-b040-ba61c1b04b1e" name="PointLight" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="409a63b3-1705-4ef8-b425-04555dcab9ba" />
                    <ownedAttributesInternal>
                      <property Id="355c0a1c-d48a-4c4a-b630-6f0641af11c9" name="Intensity" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="d9b4f000-c525-4a53-9ed2-0c4d32198f33" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="b52c12a1-806c-42b1-8c82-6212f813e0a0" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="f5e3e01e-e577-42b7-96f4-cce5fb9c0952" name="MaxRange" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="05696877-38b3-4204-a8fe-96f354337ba7" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="70e6f00c-b896-4561-8b6b-0a0201968da0" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="77fcff3b-753b-45c7-8b1d-49079872a2a3" name="Specular" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="3d72ebbc-6478-4bd7-bb08-bce09deee8b8" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="cdb3f276-11c5-4548-ba01-b34bca0e6909" LastKnownName="Color" />
                        </type_NamedElement>
                      </property>
                      <property Id="e8dc3d0d-3a4a-4d50-b29e-79c925ab122c" name="Diffuse" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="b556c6e1-8e74-4691-a005-b37a6870fb14" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="cdb3f276-11c5-4548-ba01-b34bca0e6909" LastKnownName="Color" />
                        </type_NamedElement>
                      </property>
                      <property Id="6b0c2efc-6dee-451d-937d-f0f27f896bb1" name="ConstantAttenuation" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="ff464291-edfb-4d3c-ab85-dd82e3bcdb3b" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="940be815-10f7-48a5-9f3e-4b1a507eba59" name="LinearAttenuation" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="1a63b4c1-1093-4785-8aaa-d0c84a92dacb" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="47399278-1b7e-414d-af44-89f187cb3d18" name="QuadraticAttenuation" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="bbf02fef-4fe5-487c-b612-05546a75fe5a" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="c03b2cc5-4712-43d9-9fee-d16fdddb484a" name="SpotExponent" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="6d88ecc7-39cb-4dde-8585-3af4c146310c" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="2b23f9af-0863-49b8-9462-46f3c6ee7464" name="Color" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="7eab1a9b-d9d4-4949-ae73-54ebfd51c522" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="cdb3f276-11c5-4548-ba01-b34bca0e6909" LastKnownName="Color" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
                <packageHasNamedElement>
                  <class Id="d721be82-4ffd-44b1-91cd-0a5b9692f7a9" name="Camera" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="479c340a-f458-4438-b218-d4560953aec8" />
                    <ownedAttributesInternal>
                      <property Id="b1da5f28-b7c8-4d21-be1a-2df139762b42" name="FOV" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="c6756363-cb38-4054-8289-2d36d5779ebd" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="75957b4e-4955-42f0-b819-581c414fd944" name="NearClip" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="6ca0d431-2555-42b1-aba2-3305cbc6ddb2" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="9fcf084d-abc5-486d-926f-338e48746aa8" name="FarClip" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="70d09e9a-5adb-4f32-98be-775c50842ae8" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <package Id="acd5b279-7021-4603-b1fb-68d52040c286" name="Systems">
              <elementDefinition Id="501bb8af-bcff-4186-ab88-b25cbf99d24e" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="14c63868-3692-48ea-8e7e-650cd9ad6ad8" name="RenderSystem" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="913c7d57-8864-4bc5-b61a-2e82a418107b" />
                    <suppliersInternal>
                      <interfaceRealization Id="2a7c4b95-f06b-4e17-b827-8e55f48e6ec4">
                        <interfaceMoniker Id="9e1581e3-e56c-400b-8018-17718ed868eb" LastKnownName="System" />
                        <elementDefinition Id="70a590cc-2751-4b32-89de-a7eb3eee23b4" />
                      </interfaceRealization>
                      <dependency Id="b62d4ff5-ff53-4afe-8061-0e56feb5a18c">
                        <classMoniker Id="716360ec-749f-40da-bd3f-ad2d2ef61871" LastKnownName="Renderer" />
                        <elementDefinition Id="f33b2f86-5044-465e-ae5a-912d7ba492fc" />
                      </dependency>
                    </suppliersInternal>
                    <ownedOperationsInternal>
                      <operation Id="0fb91a04-9021-4239-ac16-17fdf785a7b5" name="Initialize" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="63c675c5-2471-46f6-8de3-1cf3905e9019" />
                      </operation>
                      <operation Id="645e9a49-9633-43c7-8bff-a19cf6bf3ab0" name="Update" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="03087af5-2cd4-4bf4-a80e-4125505bf16a" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="f8416a64-6dfd-4e50-b9f0-9eddfd5816ba" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="0044f441-56eb-46dc-a9ea-595c68818d87" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="3f7de7f2-dd1a-4597-a7f0-f15650efeace" name="UpdateEntity" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="8c5e07f7-de6f-4ae4-89fb-557a1bda4563" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="a15d4616-1383-4292-8508-d82f48d2a410" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="910f544b-290c-4c53-b85e-391e0ba3d8e6" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="480aa4b6-d79c-41be-bb06-dc1700fc5bfb" name="entity" direction="In" isUnique="false">
                              <elementDefinition Id="8c1c8db0-b254-43e5-9eb1-734071882437" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="2bb8299d-6992-4642-b369-805150e92842" name="parent" direction="In" isUnique="false">
                              <elementDefinition Id="a44a1a84-ec9d-4983-8c90-90d9553fed53" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="d3852fae-da84-4ee4-b4a5-18010b138cac" name="OnComponentCreated" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="f38c9024-094a-4699-aa34-276fc30d4a63" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="7bc8b9b7-b247-4840-858b-3d8c3998a9f3" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="6bfbc36b-75ee-4f72-88b2-21afabd9516c" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="a7479292-6125-405a-bdb1-888d04dd88b8" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="e37ae4be-c9f7-47cf-8795-2860b572051d" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="5fbce210-088d-477b-b6e7-532934defab2" name="OnComponentRemoved" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="d30775dd-a709-4425-a6d6-12186b14ed22" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="7853b09a-bba6-4574-a812-83abfa5f3d35" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="92c9a6d0-4bf8-4625-8a13-8cc18e5f60d0" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="c158e6e1-6e08-4384-880d-55fc4f5fbfb0" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="e66153d7-bb94-4649-9254-28232aba9602" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                    </ownedOperationsInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="716360ec-749f-40da-bd3f-ad2d2ef61871" name="Renderer" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="075fb835-aafb-4443-8708-9cbccb22baa6" />
              <targetEnds>
                <association Id="54fb73c0-8934-44b5-8622-a5c22cd563e5" isDerived="false" sourceEndRoleName="Renderer" targetEndRoleName="Engine" isLeaf="false" isAbstract="false">
                  <classMoniker Id="07fc7ff1-1d71-48c2-b033-fa9687a6b977" LastKnownName="Engine" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="945cf80b-81f8-455e-b90e-3218c751d881" name="Renderer" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false" isNavigableOwned="false">
                        <elementDefinition Id="cc5865ad-7d7a-4118-ae82-80ec0b6a51d0" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="a99bfb6e-1900-4374-b331-ccd505f117a6" name="Engine" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="84f73e4e-9633-42f5-b62d-933af38b7f77" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="d6177e54-8800-418b-9d8d-5d4643f40a40" />
                </association>
              </targetEnds>
              <ownedOperationsInternal>
                <operation Id="39a5b920-5f62-4a42-ace4-93a140675a3d" name="Initialize" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="4f3f8eb8-be4e-4fbc-95be-c92ac171f73e" />
                </operation>
                <operation Id="bf077cbe-d4e9-4070-bb3f-1b30daad2c0b" name="Draw" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="c8d39b80-24e7-4e93-adb9-76db6a40176a" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="d68267c2-e0e7-448d-ae33-2b900e02bf22" name="dt" direction="In" isUnique="false">
                        <elementDefinition Id="2d2ea0c4-8872-4796-874a-fd4368764a49" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="64567dfa-d169-4e07-a06a-7bcec3f65b72" name="AddModelToDraw" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="c1eb7d12-6d67-482e-9fd8-4803ae81043e" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="3b15e7e4-4470-4432-b3f7-609ce68dd3b0" name="..." direction="In" isUnique="false">
                        <elementDefinition Id="f8a19034-f239-41dc-9e67-d7075b8ec192" />
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="00c1ed12-b367-4f50-82b1-b22b6258958b" name="AddTextToDraw" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="7c09460e-388a-4aed-be85-44bc172220a4" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="14cdbe1a-d022-42c4-b181-24eee02a99ca" name="..." direction="In" isUnique="false">
                        <elementDefinition Id="c4c366c1-9ffe-42a4-9a97-afa19e38c05a" />
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="03e8ae40-a67b-46c0-bcd6-11a4a009c8c7" name="AddPointLightToDraw" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="ddc545b6-cc63-4e85-a01b-f633d0d3ca02" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="9f31c9bc-c16f-4640-ab2e-baed6bd87332" name="..." direction="In" isUnique="false">
                        <elementDefinition Id="ffe5ab01-98a4-4f9b-a707-ce7ac10cdb40" />
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="e1673b3f-98e5-4b97-ac50-159294c290a7" name="AddAABBToDraw" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="68bb70e8-1d14-4ebf-bd53-6117a3130ff9" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="9da74b4f-b857-4bc6-818c-aa880e0d3312" name="..." direction="In" isUnique="false">
                        <elementDefinition Id="77e9529f-9e76-4bbc-a475-7e504ca8aa90" />
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="e10a6add-b35a-4070-8fe1-5d9641cb1bbf" name="LoadContent" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="b457116c-b5ee-4f9b-a002-a20aec87da26" />
                </operation>
                <operation Id="e13a6ae2-eb4b-46a8-8342-3d6cb281ffe7" name="GetWindow" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="27cf2b69-b3ef-447f-af40-7b5cb405d7b7" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="bb485270-2bde-4f34-93af-effcc17e2dc1" direction="Return" isUnique="false">
                        <elementDefinition Id="4c6a478e-2ee7-40be-b491-5a28d8c55bb1" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="b46141f5-2532-4c01-b700-2f03db7aebfa" LastKnownName="GLFWwindow*" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="2aea008e-7586-41ed-8c5d-ff8cd8e54bac" name="GetCamera" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="7f90c10c-e441-41ca-8ad1-c7e1f2afa0fc" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="4269f4c4-f721-441a-b1d6-baf9e869307a" direction="Return" isUnique="false">
                        <elementDefinition Id="6fdca733-e240-442c-9828-4b56831985c3" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="0ca15bf7-c98a-4c20-ab9b-f765cec80d09" LastKnownName="Camera*" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
              </ownedOperationsInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="ed0751f0-16e8-4592-b6b5-dfde0b292be6" name="Model" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="34707cc4-a3b0-41c9-bb38-be0a7e760680" />
              <targetEnds>
                <association Id="f2ac72f1-e3e4-498e-a8d8-cf4f373001ad" isDerived="false" sourceEndRoleName="Model" targetEndRoleName="Renderer" isLeaf="false" isAbstract="false">
                  <classMoniker Id="716360ec-749f-40da-bd3f-ad2d2ef61871" LastKnownName="Renderer" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="4a64794f-8b7c-4940-b33e-246bc08384d9" name="Model" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Shared" isComposite="false" isNavigableOwned="false">
                        <lowerValueInternal>
                          <literalString Id="774ecb38-5ece-46cd-8659-c4f35920bcc4" name="Lower" value="0">
                            <elementDefinition Id="8220983d-563f-4180-bab6-dec8e2b12133" />
                          </literalString>
                        </lowerValueInternal>
                        <upperValueInternal>
                          <literalString Id="24d23476-af07-4f59-a164-c0c63b8ea326" name="Upper" value="*">
                            <elementDefinition Id="ab53127f-0fdb-4884-a2f2-f51fd800222f" />
                          </literalString>
                        </upperValueInternal>
                        <elementDefinition Id="d32a14a5-cb88-44d1-8cd3-56731211ef14" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="a0f6c4a1-42f9-4331-bdb0-8b1cc41e80fa" name="Renderer" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="526d3529-3617-4722-85f4-a3fe67f45585" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="9e1de866-be99-415d-b310-45cb6dbc71e0" />
                </association>
              </targetEnds>
              <ownedAttributesInternal>
                <property Id="f0902e8b-9aa7-495f-9589-0463583e72d1" name="VAO" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="e7a63b69-15fa-4313-a801-5a8ace5d179e" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="759ab0ed-987d-4215-a1c0-50be359ea735" LastKnownName="GLuint" />
                  </type_NamedElement>
                </property>
                <property Id="bf0d6c9a-7807-4bf0-8ec0-134edb9dbf9e" name="TextureGroups[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="b30b61f2-271c-4880-8eb9-4cf4fff3a2db" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="e33a956f-329d-487e-aab5-6976888486b1" LastKnownName="TextureGroup" />
                  </type_NamedElement>
                </property>
              </ownedAttributesInternal>
              <ownedOperationsInternal>
                <operation Id="9340fa0e-8619-4104-8d7e-dbbe99be67cb" name="Model" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="03e658dc-4294-4d95-b072-5c179141f6d9" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="234d34ea-5630-490f-812c-56fca76cdbfc" name="obj" direction="In" isUnique="false">
                        <elementDefinition Id="64c7c896-2ba6-4c1b-8bbf-9718b9b716ee" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="3e9a6b3f-5346-452f-9cee-097b887897d4" LastKnownName="OBJ*" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
              </ownedOperationsInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="49e5a474-1bce-4e90-8acd-022061e6946b" name="Model::TextureGroup" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="bd5e81a9-1788-4c96-bc7b-826189d8c432" />
              <targetEnds>
                <association Id="44d35466-0b8f-4cb2-becc-edefe6244dd7" isDerived="false" sourceEndRoleName="Model::TextureGroup" targetEndRoleName="Model" isLeaf="false" isAbstract="false">
                  <classMoniker Id="ed0751f0-16e8-4592-b6b5-dfde0b292be6" LastKnownName="Model" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="b3d7911f-0ca1-464f-8783-3efd8d353428" name="Model::TextureGroup" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Composite" isComposite="false" isNavigableOwned="false">
                        <lowerValueInternal>
                          <literalString Id="9c6c3a03-9208-4005-b4a8-a5ca877e5790" name="Lower" value="0">
                            <elementDefinition Id="51b941ce-b120-4fc7-955f-7c21babe6689" />
                          </literalString>
                        </lowerValueInternal>
                        <upperValueInternal>
                          <literalString Id="efc56c4f-1cda-49f4-869b-3b6fd9bf344d" name="Upper" value="*">
                            <elementDefinition Id="b663bf5a-064a-46ca-8017-dd34931f2ea0" />
                          </literalString>
                        </upperValueInternal>
                        <elementDefinition Id="ae91d28a-52c2-46b2-83a4-c6e4715e1e1b" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="e6c9c9eb-8f86-4853-8b3c-45153f7f9898" name="Model" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="true">
                        <elementDefinition Id="1364c5df-119c-47cd-ac37-346485598b81" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="ca9d65e4-3a79-4b2f-ab90-1ae6d263accd" />
                </association>
              </targetEnds>
              <ownedAttributesInternal>
                <property Id="204deeb6-6bcf-402b-8230-8a3ef6953b7b" name="Texture" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="d68709db-7b62-4ec8-9898-7894a63650ae" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="8404a355-d7ef-42b7-abff-0a2c58bf278c" LastKnownName="Texture*" />
                  </type_NamedElement>
                </property>
                <property Id="276855dd-db75-45ae-a88d-5984453d9880" name="StartIndex" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="a6ca6a75-43cc-4683-a1f3-b913f7eba23c" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="6ee3c8ad-28e6-49b3-ab10-71252c6b649f" LastKnownName="UnsignedInteger" />
                  </type_NamedElement>
                </property>
                <property Id="0ec5bb57-bd76-4330-aaff-0069ac39e847" name="EndIndex" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="554cae8e-ea81-45b4-b977-8176110198c5" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="6ee3c8ad-28e6-49b3-ab10-71252c6b649f" LastKnownName="UnsignedInteger" />
                  </type_NamedElement>
                </property>
              </ownedAttributesInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="e1dd0dc1-f50d-4789-95b2-990cac9dd07d" name="OBJ" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="c294efcb-4cd9-4801-9887-46b6fb84c098" />
              <targetEnds>
                <association Id="1bc4b6df-fa0c-40b6-8a46-08067d4b3835" isDerived="false" sourceEndRoleName="OBJ" targetEndRoleName="Model" isLeaf="false" isAbstract="false">
                  <classMoniker Id="ed0751f0-16e8-4592-b6b5-dfde0b292be6" LastKnownName="Model" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="0bc9709a-97ce-4ac4-8258-0186b27af547" name="OBJ" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Shared" isComposite="false" isNavigableOwned="false">
                        <elementDefinition Id="abd5c0c4-f747-4ccc-acb6-236bc123113c" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="43264208-72b7-4e4c-8fd3-b2917aa33882" name="Model" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="5ca5b366-a534-413b-8cbd-e6cb13d31af5" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="80070f45-7e33-4dbd-950e-bb06d3bc2eba" />
                </association>
              </targetEnds>
              <ownedAttributesInternal>
                <property Id="a077879f-dbb7-4641-a937-ebb4d3464daf" name="Vertices" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="0ce4f9b9-afc1-4d67-98bf-a47cd045628c" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="7be389f5-9dcd-4c59-b5b8-925a05170f20" LastKnownName="Tuple(Float,Float,Float)[]" />
                  </type_NamedElement>
                </property>
                <property Id="f9ea2a7f-6979-467b-b8c4-71e2c1e805c4" name="Normals" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="2f9e2d54-933d-4dd7-9249-29dcd18179e7" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="7be389f5-9dcd-4c59-b5b8-925a05170f20" LastKnownName="Tuple(Float,Float,Float)[]" />
                  </type_NamedElement>
                </property>
                <property Id="cbd893ee-023f-4261-918c-f34b249e7095" name="TextureCoords" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="4313fdaa-4dd0-4582-9ac9-6e5516334994" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="7be389f5-9dcd-4c59-b5b8-925a05170f20" LastKnownName="Tuple(Float,Float,Float)[]" />
                  </type_NamedElement>
                </property>
                <property Id="9def542f-31d3-4f9a-9231-518e677ed9fd" name="Faces" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="5bb7e879-7564-40a8-9e35-207a3f7910f6" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="a10af0f1-962a-43aa-813d-2795a75c95dc" LastKnownName="Face[]" />
                  </type_NamedElement>
                </property>
                <property Id="168c2f0f-0c5b-465b-b272-c8f1acfbaaa0" name="Materials" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="f0678aa5-1340-4b95-b1fe-96da0d982223" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="398164de-5b3b-4662-8807-96c41c3edbe1" LastKnownName="Map(String, MaterialInfo)" />
                  </type_NamedElement>
                </property>
              </ownedAttributesInternal>
              <ownedOperationsInternal>
                <operation Id="55fb7f9a-d597-472f-9c76-55bd1990b484" name="LoadFromFile" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="d2e3c36e-a7c0-4164-8a60-d913384dc86d" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="bec89888-3b2f-4e7d-9a09-1e15a41654d6" name="filename" direction="In" isUnique="false">
                        <elementDefinition Id="988d5870-05da-4612-93f2-691075133782" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="c3c14df7-eb96-45d3-9ab7-c3dce0a19361" name="Path" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="10ab72a7-1d7f-436b-9b01-cfbc7e248d4c" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="f8620f73-4488-4e95-a0fa-c0bcf0552f36" direction="Return" isUnique="false">
                        <elementDefinition Id="3d4bcd8d-330b-4a63-a137-dd120b82300a" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="96851bf4-8c96-4d61-bb58-6f8138bd97d3" LastKnownName="boost::filesystem::path" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
              </ownedOperationsInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="394b552b-2c7e-4529-8a70-ef4de378807d" name="OBJ::Face" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="c4527d07-5478-4fc8-8663-0549f97d65f6" />
              <targetEnds>
                <association Id="2ac41bc5-52e4-4725-9690-e54890fa8aea" isDerived="false" sourceEndRoleName="OBJ::Face" targetEndRoleName="OBJ" isLeaf="false" isAbstract="false">
                  <classMoniker Id="e1dd0dc1-f50d-4789-95b2-990cac9dd07d" LastKnownName="OBJ" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="7ed455c9-36ee-492c-8c89-1ea22396fade" name="OBJ::Face" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Composite" isComposite="false" isNavigableOwned="false">
                        <lowerValueInternal>
                          <literalString Id="1671b674-9e3f-4c04-b985-fda697b4be08" name="Lower" value="0">
                            <elementDefinition Id="d5497d57-3401-4e92-b66d-5d54be611379" />
                          </literalString>
                        </lowerValueInternal>
                        <upperValueInternal>
                          <literalString Id="c97f5b55-7da4-481e-9d16-f785be29c5d6" name="Upper" value="*">
                            <elementDefinition Id="17736665-e9a1-41cb-8001-724e0686f68b" />
                          </literalString>
                        </upperValueInternal>
                        <elementDefinition Id="efe09002-59a7-4dc6-aaa0-acc1dbe4b1e6" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="272ef7af-7b2f-4a32-b796-f499a9877262" name="OBJ" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="true">
                        <elementDefinition Id="156d9491-267d-4f3b-a54b-23ca2b024fb3" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="fd166f89-364c-4105-a495-4c2f76789b60" />
                </association>
              </targetEnds>
              <ownedAttributesInternal>
                <property Id="e54b50f8-69ed-4e89-9d32-c7d1d8a443e6" name="Definitions[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="6644be3a-8138-4efa-b48c-ea45bf002eaf" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="127f7480-b260-44bb-8dd2-7eacd3f5d6fa" LastKnownName="FaceDefinition" />
                  </type_NamedElement>
                </property>
                <property Id="7dc185f9-16a1-45f6-b6a5-55429b806438" name="Material" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="b5e6de28-381d-4621-8321-dad9a731e300" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="be8b4276-131d-4a03-95b2-6c10998e9d36" LastKnownName="MaterialInfo" />
                  </type_NamedElement>
                </property>
              </ownedAttributesInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="ad998c8a-4b0e-4d4d-b624-8e38f46b1e3b" name="OBJ::FaceDefinition" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="fb552ada-d8f5-41ea-ba25-f1a3f08f1126" />
              <targetEnds>
                <association Id="662635f2-55ef-448d-b168-9c400a2fc731" isDerived="false" sourceEndRoleName="OBJ::FaceDefinition" targetEndRoleName="OBJ::Face" isLeaf="false" isAbstract="false">
                  <classMoniker Id="394b552b-2c7e-4529-8a70-ef4de378807d" LastKnownName="OBJ::Face" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="a6df16f9-f50b-42ad-83ce-5a3d4ad14e25" name="OBJ::FaceDefinition" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Composite" isComposite="false" isNavigableOwned="false">
                        <lowerValueInternal>
                          <literalString Id="5970104b-c959-4169-b559-0a1f3893c5ab" name="Lower" value="1">
                            <elementDefinition Id="5f391065-d394-4287-84a4-4622c4b7834d" />
                          </literalString>
                        </lowerValueInternal>
                        <upperValueInternal>
                          <literalString Id="58a8ee9c-a7b7-4846-a85d-d4e84c2f62b8" name="Upper" value="*">
                            <elementDefinition Id="3d691fe5-5a61-41d4-9fe1-d1b690a22c16" />
                          </literalString>
                        </upperValueInternal>
                        <elementDefinition Id="4e55f6bf-7afb-4505-adf8-c6d1e13c3f01" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="82355f04-1e9f-427f-9f38-12331752a271" name="OBJ::Face" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="true">
                        <elementDefinition Id="210364c7-ac3d-4bac-aef5-96bbdf666781" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="51cec920-7a3e-4aef-84e3-a07378cae550" />
                </association>
              </targetEnds>
              <ownedAttributesInternal>
                <property Id="4dc40efc-c9e1-476d-8875-100be41c010e" name="VertexIndex" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="dc0fbd0d-55a7-4f35-87da-41f20545d6d4" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" LastKnownName="Integer" />
                  </type_NamedElement>
                </property>
                <property Id="03f7818d-c01c-4d70-8bd0-e4831aeb78b7" name="TextureCoordIndex" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="437c5e3f-7002-4e48-8d0e-ca6acc52c688" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" LastKnownName="Integer" />
                  </type_NamedElement>
                </property>
                <property Id="d274dd7e-7198-4df3-9008-60a5422393f1" name="NormalIndex" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="ce564556-45e2-4b8c-80f7-57b729a39a0d" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" LastKnownName="Integer" />
                  </type_NamedElement>
                </property>
              </ownedAttributesInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="8b2fb4dc-9888-4cfc-bbe3-de54929d810a" name="OBJ::MaterialInfo" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="0ea5d92d-9453-4dde-aa67-ea660a924949" />
              <targetEnds>
                <association Id="7deb2733-c5b0-4b21-ae02-67e6643f40a4" isDerived="false" sourceEndRoleName="OBJ::MaterialInfo" targetEndRoleName="OBJ::Face" isLeaf="false" isAbstract="false">
                  <classMoniker Id="394b552b-2c7e-4529-8a70-ef4de378807d" LastKnownName="OBJ::Face" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="e1dd95f1-d594-47c4-bc74-7162dfdac6bd" name="OBJ::MaterialInfo" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Composite" isComposite="false" isNavigableOwned="false">
                        <elementDefinition Id="3eadd5a9-14a7-4618-86d3-106f8c9d6913" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="b3074673-ca13-48b8-acd6-8c6d94c3461b" name="OBJ::Face" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="true">
                        <elementDefinition Id="35c0ac67-a4ef-49f4-887a-0382394298e7" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="6e87a8d5-515e-42ee-88b5-ab06a8a5bf6a" />
                </association>
              </targetEnds>
              <ownedAttributesInternal>
                <property Id="1ede1b55-787e-4b64-a041-fcf82913d56e" name="TextureFile" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="f79e5ca6-c6d1-48cc-83b7-0ca6201bb691" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                  </type_NamedElement>
                </property>
                <property Id="f9b6597f-b1d0-4da8-9635-d7220a509db0" name="AmbientColor" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="3bd3d545-e76a-455e-8c4b-46ca34354d68" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="585f5ebe-f280-409c-99ba-c02fff18892b" LastKnownName="Tuple(Float, Float, Float)" />
                  </type_NamedElement>
                </property>
                <property Id="6d56fe10-2864-40c8-abb6-72344351b7aa" name="DiffuseColor" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="344c08bf-0a9c-4972-aa3b-aeda58403d0f" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="585f5ebe-f280-409c-99ba-c02fff18892b" LastKnownName="Tuple(Float, Float, Float)" />
                  </type_NamedElement>
                </property>
                <property Id="255c4fe9-a1e5-4dce-9bc7-21b35ed757a2" name="SpecularColor" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="2bdfe850-8236-4d7f-867d-1c2e7da2d625" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="585f5ebe-f280-409c-99ba-c02fff18892b" LastKnownName="Tuple(Float, Float, Float)" />
                  </type_NamedElement>
                </property>
                <property Id="f1508026-4563-4a4a-bef3-8f30045cb795" name="TransmissionFilter::Tuple(Float, Float, Float)" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="c4e93d67-d170-44cc-b2e0-db9b87f91735" />
                </property>
                <property Id="fb30cbee-3343-4605-bb33-03a0f7395dc7" name="OpticalDensity" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="e038fb70-b42c-410e-b164-c42221a77250" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                  </type_NamedElement>
                </property>
                <property Id="743c8422-a510-4f76-8663-66fce04defba" name="Alpha" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="ce05f41d-dcc0-49a0-931f-86bc539d2185" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                  </type_NamedElement>
                </property>
                <property Id="2ab9986c-43f4-4878-b74f-c315eaa2204d" name="Shininess" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="15f55ec6-13f5-406e-b766-33031da3156c" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                  </type_NamedElement>
                </property>
                <property Id="9b318de7-89c7-477e-aa0b-6af1ee09aeaf" name="IlluminationModel" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="59c2accd-5835-4ddd-80ff-51e4480e48f5" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" LastKnownName="Integer" />
                  </type_NamedElement>
                </property>
              </ownedAttributesInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="a114b2d8-2d61-4214-aa5a-53db6cce9d04" name="Camera" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="75c02dd5-705d-4a95-a865-6fe4d544c88b" />
              <targetEnds>
                <association Id="eb847f88-92a9-4e74-8744-4c94d5d4c563" isDerived="false" sourceEndRoleName="Camera" targetEndRoleName="Renderer" isLeaf="false" isAbstract="false">
                  <classMoniker Id="716360ec-749f-40da-bd3f-ad2d2ef61871" LastKnownName="Renderer" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="354a6a3f-d57a-458e-a989-1ff215b94002" name="Camera" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Shared" isComposite="false" isNavigableOwned="false">
                        <lowerValueInternal>
                          <literalString Id="2bd34ba2-d41e-4139-ae15-6345159d8c1c" name="Lower" value="1">
                            <elementDefinition Id="00294db5-fcd2-4df1-a7be-897e0cfa3e4f" />
                          </literalString>
                        </lowerValueInternal>
                        <upperValueInternal>
                          <literalString Id="753d4bc9-909e-4b62-8589-a62472ecc755" name="Upper" value="*">
                            <elementDefinition Id="827546a2-b245-44f6-9fe6-0cd5cab8007b" />
                          </literalString>
                        </upperValueInternal>
                        <elementDefinition Id="ab17a551-1d13-4833-a296-a2953a86a0b5" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="5def001f-379b-4225-a68e-3cee275f9759" name="Renderer" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="e7f810b0-2a62-4ecb-a490-eb1354d1319c" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="681e195f-49ff-4ea1-9554-c90ed21abbd6" />
                </association>
              </targetEnds>
              <ownedAttributesInternal>
                <property Id="70adf99d-83b4-4c98-a74b-9fcfdefbf778" name="Forward()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="19369993-27f3-417c-8482-7ba2359f3b90" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                  </type_NamedElement>
                </property>
                <property Id="60398ba1-ca2d-4cf5-b7e0-599168b3d075" name="Right()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="3243387b-edd4-48c9-ae51-ab6db27fb533" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                  </type_NamedElement>
                </property>
                <property Id="53433b8b-7076-44e7-a182-cbe98f9f0dee" name="Up()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="c2cf5ed4-079d-4834-9d18-2e2ecda8b4de" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="c26ac471-3982-424f-941d-33875ebd722d" LastKnownName="Vector3" />
                  </type_NamedElement>
                </property>
                <property Id="6957b90d-edbb-4d28-b105-2ed6cc898c9c" name="Position()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="c4bd4b23-a032-41ff-a63b-8dad1f679c30" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                  </type_NamedElement>
                </property>
                <property Id="8f8b0a2e-9848-42f3-9936-b02c595d7031" name="Orientation()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="70311afd-de7f-479f-ad7c-b30af20f7b6b" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="83a3e481-9053-4d65-b5a2-1d651e30c8ac" LastKnownName="Quaternion" />
                  </type_NamedElement>
                </property>
                <property Id="6bd57e7a-eca0-49bb-9330-4f7851f8b12d" name="ProjectionMatrix" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="af05115c-b84b-45a1-b1d0-71a702d432a4" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="d3ad477a-743e-4399-8d50-e52256332d08" LastKnownName="Matrix4x4" />
                  </type_NamedElement>
                </property>
                <property Id="7e97e980-7b3e-4541-ac1c-b5fd10aaf3b8" name="ViewMatrix()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="f576359c-1c6d-47a4-8515-f3559ff0f2f4" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="d3ad477a-743e-4399-8d50-e52256332d08" LastKnownName="Matrix4x4" />
                  </type_NamedElement>
                </property>
                <property Id="1c5b4da3-16a4-49dd-a9d3-ade6eda4d85a" name="FOV()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="132cb60a-71d7-47b8-abda-c0836b0e9a58" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                  </type_NamedElement>
                </property>
                <property Id="5df8a0ee-4478-46d3-8093-8ab007dd4f51" name="FarClip()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="05a79802-ead0-4afa-a386-ac099c30b749" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="7c5483ea-fb4d-458d-9741-57e3ead06094" LastKnownName="Float" />
                  </type_NamedElement>
                </property>
                <property Id="092f40f1-fbf8-4307-a596-c158bcb7eb99" name="NearClip()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                  <elementDefinition Id="91b97acd-3899-4a06-9110-4fd45762cefe" />
                  <type_NamedElement>
                    <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                  </type_NamedElement>
                </property>
              </ownedAttributesInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="3c4cd3f6-99bd-422b-b995-0f937ff59da9" name="ShaderProgram" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="63f2f7b5-d0e9-439f-9906-157384c7d030" />
              <targetEnds>
                <association Id="e5b3e765-5b86-4a06-a90c-e83dd253f27b" isDerived="false" sourceEndRoleName="ShaderProgram" targetEndRoleName="Renderer" isLeaf="false" isAbstract="false">
                  <classMoniker Id="716360ec-749f-40da-bd3f-ad2d2ef61871" LastKnownName="Renderer" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="e29fb4ba-4347-404e-b0e9-1caeb8ebb88f" name="ShaderProgram" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Shared" isComposite="false" isNavigableOwned="false">
                        <lowerValueInternal>
                          <literalString Id="f5b2223c-448c-4154-b6f9-1917c15b2a87" name="Lower" value="1">
                            <elementDefinition Id="cbe35f2a-ef7e-43b0-8b24-912b43c2388f" />
                          </literalString>
                        </lowerValueInternal>
                        <upperValueInternal>
                          <literalString Id="216cd25b-7e4a-4dd4-a198-cfc2e6093860" name="Upper" value="*">
                            <elementDefinition Id="cb4b3d72-bed4-4f85-b28c-ad8532a1d40a" />
                          </literalString>
                        </upperValueInternal>
                        <elementDefinition Id="3bce5c93-e45d-49d6-be7d-c9d238b1d47a" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="f2587d91-6b16-45ea-a32b-6375e2239aa1" name="Renderer" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="253e4903-227e-40a7-9b84-42ab2e02faaa" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="09d5ba03-53ee-4228-97a3-0e50ac326161" />
                </association>
              </targetEnds>
              <ownedOperationsInternal>
                <operation Id="3d69236a-e8ce-43fc-979d-3430a16c5795" name="AddShader" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="8a79b530-968f-4c44-aff6-9af6b1575b8e" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="9e48871e-2fb4-4212-91b5-55d643533286" name="shader" direction="In" isUnique="false">
                        <elementDefinition Id="5c76569d-6276-47e6-96d1-6b1c934b7c96" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="e8ba31e3-3de9-4945-ab76-2ed14a67a75f" LastKnownName="Shader*" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="2fbd7efb-d4e0-44c4-bbe0-28861742ee8d" name="Compile" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="fd7e3cf5-f537-4b07-b43f-f78a31b3959b" />
                </operation>
                <operation Id="42ef98a3-5515-42c6-9cd7-82c42e439e1c" name="Link" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="9aa7792e-7fa5-4317-9d35-c3fd49f311b1" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="1bdeb239-7c79-4562-9481-833a27d5d4f1" direction="Return" isUnique="false">
                        <elementDefinition Id="347d0a97-b977-4825-b53a-dbfe3ce6e5db" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="759ab0ed-987d-4215-a1c0-50be359ea735" LastKnownName="GLuint" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="a3397171-d6f9-4d1a-b159-5b6f8bbfbf05" name="GetHandle" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="0649da7f-f104-4f5a-99d6-b110763ac025" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="32f75a09-d29e-4ed3-9c32-44aecb27c4f2" direction="Return" isUnique="false">
                        <elementDefinition Id="74390aff-80cb-4f81-9322-a00e918decef" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="759ab0ed-987d-4215-a1c0-50be359ea735" LastKnownName="GLuint" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="8f4a9165-d0c2-4109-8f12-318a59a8e5d2" name="Bind" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="64a5a39c-a12c-4f28-879d-d63301d3d29c" />
                </operation>
                <operation Id="53c43c04-4605-4c38-9fea-e6010d090ee1" name="Unbind" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="11afd598-02b9-4e47-9740-ab16f97394f6" />
                </operation>
              </ownedOperationsInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="7aec4691-c729-4839-a151-29f688c9f913" name="Shader" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="79315b8d-2a43-4145-9eec-67c9538d0ebb" />
              <targetEnds>
                <association Id="0faac031-4801-40f0-aa3a-34e298bf35f5" isDerived="false" sourceEndRoleName="Shader" targetEndRoleName="ShaderProgram" isLeaf="false" isAbstract="false">
                  <classMoniker Id="3c4cd3f6-99bd-422b-b995-0f937ff59da9" LastKnownName="ShaderProgram" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="f72ad6ba-f43f-4e63-bdd9-830701dc3f1c" name="Shader" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Composite" isComposite="false" isNavigableOwned="false">
                        <lowerValueInternal>
                          <literalString Id="c4a4a073-ae00-4808-a807-da8baeb9e594" name="Lower" value="2">
                            <elementDefinition Id="6ddd33a2-0860-41db-a756-6f131a246bd8" />
                          </literalString>
                        </lowerValueInternal>
                        <upperValueInternal>
                          <literalString Id="03ab59e4-491d-456d-ba27-613fba602468" name="Upper" value="5">
                            <elementDefinition Id="061e9daa-4fba-43c1-9ba2-f83977594356" />
                          </literalString>
                        </upperValueInternal>
                        <elementDefinition Id="c3acbc94-6a58-4cfb-9dc4-a039e5d5e63b" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="1805b573-3379-49b8-be7e-021ba79cb4bc" name="ShaderProgram" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="true">
                        <elementDefinition Id="3d3e4a96-2c66-4bf1-adc0-f4e14b8deba3" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="888d2b58-fcd6-4fbf-a6aa-f09f7cc5a8d5" />
                </association>
              </targetEnds>
              <ownedOperationsInternal>
                <operation Id="d8440c5e-026b-467d-a78d-a2d4f770bbfe" name="CompileShader" isLeaf="false" isStatic="true" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="01313083-5566-4240-b021-acb25ac4a9ad" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="1b77a865-5bbb-43ad-959f-bfcaa7d5cf05" name="shaderType" direction="In" isUnique="false">
                        <elementDefinition Id="21d16ac5-9de7-4350-bf25-3b95a6273ee2" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="ed1fe6fc-d872-45c6-b340-381dafee5e15" LastKnownName="GLenum" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="8e489cdf-2b5a-47f9-835a-30e36110f505" name="fileName" direction="In" isUnique="false">
                        <elementDefinition Id="66aca2e1-5c63-4bb5-ac7b-04335649487e" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="8c66d51c-fb1f-4a30-90bd-563a25fa80fe" direction="Return" isUnique="false">
                        <elementDefinition Id="ed617aae-5970-49b3-9421-ef2ff8facea8" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="759ab0ed-987d-4215-a1c0-50be359ea735" LastKnownName="GLuint" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="107f9488-1782-4dd3-b0d3-6cdf190229d4" name="Compile" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="6a971845-b4c5-4b38-bd7f-7aa919892164" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="91711236-8ad5-43f6-b956-fcd1096663e0" direction="Return" isUnique="false">
                        <elementDefinition Id="67ee4c0d-9489-4721-a82d-5eb57ac0c7c3" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="759ab0ed-987d-4215-a1c0-50be359ea735" LastKnownName="GLuint" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="a7513c1f-5440-4b38-8fe4-e9ac9f3b053c" name="GetType" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="34422b8f-1385-4a2e-9a15-10deb78cb596" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="dd8e73d8-2d8f-4112-afb4-e6198975ec63" direction="Return" isUnique="false">
                        <elementDefinition Id="703b7890-5cde-486b-ab02-7a15ad103174" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="ed1fe6fc-d872-45c6-b340-381dafee5e15" LastKnownName="GLenum" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="657e8cf1-d822-45d4-89fb-0199781f34e3" name="GetFileName" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="b095a771-47d8-484f-8c91-cc5b95cdacb2" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="c65a70b2-a65f-4542-9dc6-3dc7fab3875a" direction="Return" isUnique="false">
                        <elementDefinition Id="fc97926d-fe3c-466e-85fb-01ed881debbb" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="04d57a54-32e4-4510-8155-73e2d20b67ee" name="GetHandle" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="61fc5f24-82d5-480d-9c44-34a38f95cc5c" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="b1cd25d6-358b-4507-9644-f5c324b6735f" direction="Return" isUnique="false">
                        <elementDefinition Id="25780430-395a-4696-a606-59379626ea7c" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="759ab0ed-987d-4215-a1c0-50be359ea735" LastKnownName="GLuint" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="395148dc-d16a-482f-810d-7cbe79f2543b" name="IsCompiled" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="86dc7ab6-6bbc-4b24-ac53-39230d7f09a9" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="563d978a-d05f-4a51-9a70-3c61ccc6316f" direction="Return" isUnique="false">
                        <elementDefinition Id="73657ab4-a4cb-4910-8210-8c5b61d17942" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="2c8f101e-2764-463e-8c9d-278d5dbcee10" LastKnownName="Boolean" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
              </ownedOperationsInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="471936e5-96b0-4dfb-8e61-333c7324321e" name="Texture" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="aa92c063-05e7-4521-8bb1-6f7647c31c88" />
              <targetEnds>
                <association Id="107004b8-242d-4500-9b70-54c2c1760107" isDerived="false" sourceEndRoleName="Texture" targetEndRoleName="Model::TextureGroup" isLeaf="false" isAbstract="false">
                  <classMoniker Id="49e5a474-1bce-4e90-8acd-022061e6946b" LastKnownName="Model::TextureGroup" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="2eb13c56-c34c-4c17-986e-3c61e0719fac" name="Texture" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Composite" isComposite="false" isNavigableOwned="false">
                        <elementDefinition Id="71be4c64-e053-4182-a26d-7f6c617e6182" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="a74f9692-b8ae-4009-a8b4-e73e820c0f79" name="Model::TextureGroup" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="true">
                        <elementDefinition Id="8a2896d7-2fec-4861-940e-848295557777" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="7245f4d6-247c-480f-9574-0f758bd24a5c" />
                </association>
              </targetEnds>
              <ownedOperationsInternal>
                <operation Id="667ea73b-7ea5-40bd-83af-38287d989b6f" name="Load" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="9629d7f2-7422-4211-be82-37c3fd660862" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="4530a1bb-19fd-4f5c-8d8e-694287749530" name="path" direction="In" isUnique="false">
                        <elementDefinition Id="00488958-9ce4-4628-befb-a751961f91b1" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="88d4e502-861e-48b5-802e-6da720644b49" name="Bind" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="77815039-9f21-4bbd-b27f-1cc12c50196c" />
                </operation>
              </ownedOperationsInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="c703a240-88ce-42d9-b11f-009c01efbc98" name="CubemapTexture" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="21763b16-1b2a-4ba2-a2be-7783bdae39d8" />
              <targetEnds>
                <association Id="325ea82b-cd25-4177-874a-8625daa66049" isDerived="false" sourceEndRoleName="CubemapTexture" targetEndRoleName="Skybox" isLeaf="false" isAbstract="false">
                  <classMoniker Id="ad778f4a-248e-4d3a-a249-94e99cce72df" LastKnownName="Skybox" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="2595f0c2-eaba-4848-97a3-a4c4e06efc17" name="CubemapTexture" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Composite" isComposite="false" isNavigableOwned="false">
                        <elementDefinition Id="c0693892-6fca-4e65-8afd-cfeb73564bd5" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="5ccc0efb-c5c2-489e-8d64-b2239402a908" name="Skybox" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="true">
                        <elementDefinition Id="9f5bbc3e-7e13-4b3a-a44d-6b445f1fe83b" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="afe2dba1-fbfd-403f-90b3-41279e8a66f2" />
                </association>
              </targetEnds>
              <ownedOperationsInternal>
                <operation Id="b6745f80-2782-4432-96cc-a08364ab1c18" name="Load" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="a7672c9b-b721-4b7d-be97-2fec59c63214" />
                  <ownedParameters>
                    <operationHasOwnedParameters>
                      <parameter Id="2c7a38b8-f239-4252-b6ae-feb1c338a4e6" name="path" direction="In" isUnique="false">
                        <elementDefinition Id="84782514-b4c2-40e6-9b45-ba67bc638df9" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="eadf92b6-841d-461a-91a9-4240ffe0df06" LastKnownName="String" />
                        </type_NamedElement>
                      </parameter>
                    </operationHasOwnedParameters>
                  </ownedParameters>
                </operation>
                <operation Id="9cc7ac49-8a01-4b88-b5bb-b4236952bbca" name="Bind" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="2cc86299-8f91-4a23-86b8-97a477e2a839" />
                </operation>
              </ownedOperationsInternal>
            </class>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <class Id="ad778f4a-248e-4d3a-a249-94e99cce72df" name="Skybox" isAbstract="false" isLeaf="false" isActiveClass="false">
              <elementDefinition Id="f98c3b6d-5889-458e-acf2-82aae2f856e5" />
              <targetEnds>
                <association Id="696103e6-b9ec-4d8f-a9ce-37ea610227c9" isDerived="false" sourceEndRoleName="Skybox" targetEndRoleName="Renderer" isLeaf="false" isAbstract="false">
                  <classMoniker Id="716360ec-749f-40da-bd3f-ad2d2ef61871" LastKnownName="Renderer" />
                  <relationshipOwnedElementsInternal>
                    <associationHasOwnedEnds>
                      <memberEnd Id="68218bc1-9d81-4681-a673-0004aaf770f3" name="Skybox" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="Shared" isComposite="false" isNavigableOwned="false">
                        <lowerValueInternal>
                          <literalString Id="742ba731-da2c-4c9d-9e0e-c4c27e65cbfd" name="Lower" value="0">
                            <elementDefinition Id="16d049f2-c244-413a-ad32-c4fcc22b372f" />
                          </literalString>
                        </lowerValueInternal>
                        <upperValueInternal>
                          <literalString Id="4c30411f-b55e-4113-8e6a-76d8bec8783e" name="Upper" value="*">
                            <elementDefinition Id="c23da7e1-71a0-4fa8-9914-08d1842b9596" />
                          </literalString>
                        </upperValueInternal>
                        <elementDefinition Id="69ba3af6-5a55-4a5b-9d82-c576d63456da" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                    <associationHasOwnedEnds>
                      <memberEnd Id="de8f7c03-8c75-4d2e-9177-0afaf4e08ce2" name="Renderer" isLeaf="false" isStatic="false" isReadOnly="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="92916b38-d831-48ce-a052-5c34735209b0" />
                      </memberEnd>
                    </associationHasOwnedEnds>
                  </relationshipOwnedElementsInternal>
                  <elementDefinition Id="10603dd9-c7ae-4efe-b375-d10256f2e6b2" />
                </association>
              </targetEnds>
              <ownedOperationsInternal>
                <operation Id="53d36f90-7815-47ce-9cea-28ca1ea10931" name="Draw" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                  <elementDefinition Id="968bf2e0-b951-4d20-a1f2-7a649b107bd3" />
                </operation>
              </ownedOperationsInternal>
            </class>
          </packageHasNamedElement>
        </packagedElements>
      </package>
    </logicalClassDesignerModelHasPackages>
    <packageHasNamedElement>
      <referencedType Id="c5169c03-e704-4c11-aa39-dce7f17deedd" name="String" isAbstract="false" isLeaf="false" cachedFullName="String">
        <elementDefinition Id="59259974-6d55-42c6-b7bd-763d77ac8ef9" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="cdb3f276-11c5-4548-ba01-b34bca0e6909" name="Color" isAbstract="false" isLeaf="false" cachedFullName="Color">
        <elementDefinition Id="144f90b6-0553-4d12-8385-c23023fc8567" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="759f85f2-70fa-435b-ba8b-1c5cd5cc3e62" name="Color" isAbstract="false" isLeaf="false" cachedFullName="Color">
        <elementDefinition Id="144f90b6-0553-4d12-8385-c23023fc8567" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="61feccb3-9e34-4a8e-9946-d9b65f6d656e" name="String" isAbstract="false" isLeaf="false" cachedFullName="String">
        <elementDefinition Id="59259974-6d55-42c6-b7bd-763d77ac8ef9" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="b46141f5-2532-4c01-b700-2f03db7aebfa" name="GLFWwindow*" isAbstract="false" isLeaf="false" cachedFullName="GLFWwindow*">
        <elementDefinition Id="a5054a2e-111d-4cb1-b42e-6a5a36d35212" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="0ca15bf7-c98a-4c20-ab9b-f765cec80d09" name="Camera*" isAbstract="false" isLeaf="false" cachedFullName="Camera*">
        <elementDefinition Id="92d00c12-f0fb-4acd-88e3-2c9114b8abad" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="3e9a6b3f-5346-452f-9cee-097b887897d4" name="OBJ*" isAbstract="false" isLeaf="false" cachedFullName="OBJ*">
        <elementDefinition Id="1f09aa64-92eb-4641-bc03-93dc576c6425" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="759ab0ed-987d-4215-a1c0-50be359ea735" name="GLuint" isAbstract="false" isLeaf="false" cachedFullName="GLuint">
        <elementDefinition Id="4c6d72fd-a8ee-4359-9a40-413c4a44c2a0" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="e33a956f-329d-487e-aab5-6976888486b1" name="TextureGroup" isAbstract="false" isLeaf="false" cachedFullName="TextureGroup">
        <elementDefinition Id="622b4702-3f38-4468-9a13-74cfa01603f6" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="8404a355-d7ef-42b7-abff-0a2c58bf278c" name="Texture*" isAbstract="false" isLeaf="false" cachedFullName="Texture*">
        <elementDefinition Id="3818ecd7-b9d7-4040-93a3-ae7a3634e680" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="6ee3c8ad-28e6-49b3-ab10-71252c6b649f" name="UnsignedInteger" isAbstract="false" isLeaf="false" cachedFullName="UnsignedInteger">
        <elementDefinition Id="0c9c428d-c4af-4f19-be51-2b281f2f197c" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="127f7480-b260-44bb-8dd2-7eacd3f5d6fa" name="FaceDefinition" isAbstract="false" isLeaf="false" cachedFullName="FaceDefinition">
        <elementDefinition Id="126b2c60-b32d-4f56-acf6-be3581c04c4b" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="be8b4276-131d-4a03-95b2-6c10998e9d36" name="MaterialInfo" isAbstract="false" isLeaf="false" cachedFullName="MaterialInfo">
        <elementDefinition Id="c1cabf97-079b-4679-b30e-bf7b3a20a065" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="585f5ebe-f280-409c-99ba-c02fff18892b" name="Tuple(Float, Float, Float)" isAbstract="false" isLeaf="false" cachedFullName="Tuple(Float, Float, Float)">
        <elementDefinition Id="8618ad69-f7ce-445a-ae1a-92713b21e3dd" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" name="Integer" isAbstract="false" isLeaf="false" cachedFullName="Integer">
        <elementDefinition Id="220a3521-e091-4221-bae9-3ef9018e845c" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="7be389f5-9dcd-4c59-b5b8-925a05170f20" name="Tuple(Float,Float,Float)[]" isAbstract="false" isLeaf="false" cachedFullName="Tuple(Float,Float,Float)[]">
        <elementDefinition Id="364e9888-36f5-456b-a704-569da6a94d05" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="a10af0f1-962a-43aa-813d-2795a75c95dc" name="Face[]" isAbstract="false" isLeaf="false" cachedFullName="Face[]">
        <elementDefinition Id="f4f0e5d1-84fa-4eb7-bc15-33627768158a" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="398164de-5b3b-4662-8807-96c41c3edbe1" name="Map(String, MaterialInfo)" isAbstract="false" isLeaf="false" cachedFullName="Map(String, MaterialInfo)">
        <elementDefinition Id="5dfbb2a8-775a-458a-bea8-36846dcf2810" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="96851bf4-8c96-4d61-bb58-6f8138bd97d3" name="boost::filesystem::path" isAbstract="false" isLeaf="false" cachedFullName="boost::filesystem::path">
        <elementDefinition Id="2c555f73-c821-4a0d-a479-b7805ad2139e" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="c26ac471-3982-424f-941d-33875ebd722d" name="Vector3" isAbstract="false" isLeaf="false" cachedFullName="Vector3">
        <elementDefinition Id="1d0ee20e-670d-4332-83c4-d5766677500d" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="83a3e481-9053-4d65-b5a2-1d651e30c8ac" name="Quaternion" isAbstract="false" isLeaf="false" cachedFullName="Quaternion">
        <elementDefinition Id="3d8ea861-d278-4b29-b99f-c541e12cb443" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="d3ad477a-743e-4399-8d50-e52256332d08" name="Matrix4x4" isAbstract="false" isLeaf="false" cachedFullName="Matrix4x4">
        <elementDefinition Id="d5926045-214f-450a-a731-6c44d6960e1f" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="7c5483ea-fb4d-458d-9741-57e3ead06094" name="Float" isAbstract="false" isLeaf="false" cachedFullName="Float">
        <elementDefinition Id="abf6232c-7432-4662-913b-e73b0447b228" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="ed1fe6fc-d872-45c6-b340-381dafee5e15" name="GLenum" isAbstract="false" isLeaf="false" cachedFullName="GLenum">
        <elementDefinition Id="6eee35c6-16f0-4dae-8cdf-7856d3b02968" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="2c8f101e-2764-463e-8c9d-278d5dbcee10" name="Boolean" isAbstract="false" isLeaf="false" cachedFullName="Boolean">
        <elementDefinition Id="8943dc84-709e-4f62-b15a-a3273aa6f165" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="e8ba31e3-3de9-4945-ab76-2ed14a67a75f" name="Shader*" isAbstract="false" isLeaf="false" cachedFullName="Shader*">
        <elementDefinition Id="c003ac52-e8f2-447d-ab70-7a89d2484f17" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="eadf92b6-841d-461a-91a9-4240ffe0df06" name="String" isAbstract="false" isLeaf="false" cachedFullName="String">
        <elementDefinition Id="59259974-6d55-42c6-b7bd-763d77ac8ef9" />
      </referencedType>
    </packageHasNamedElement>
    <logicalClassDesignerModelHasPackages>
      <package Id="92d536e6-0c2d-4431-aff2-61df6a35976a" name="Sound">
        <elementDefinition Id="2a24e340-fa0f-4c7e-8bb2-67687aebc30e" />
        <packagedElements>
          <packageHasNamedElement>
            <package Id="8d571817-e777-4141-a139-c6af1b359c62" name="Components">
              <elementDefinition Id="b1db9906-6f6a-4227-a011-880ae59ca703" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="2f34a6fd-e1f6-410e-953a-e9b420bf471f" name="SoundEmitter" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="7601892f-4611-47c3-af12-7ff10987611a" />
                    <ownedAttributesInternal>
                      <property Id="1d5638b7-7434-42e9-83ab-f84e3928af86" name="Gain" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="d107f835-7717-4a90-b352-eedfb2302310" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="08e5eb04-9e6d-4c82-9632-acccfc80140d" name="MaxDistance" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="f91c1468-9a33-461d-9754-703f1f8156b0" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="93d90807-77e7-4f53-8af0-1d657d6b51d7" name="ReferenceDistance" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="64f17d69-37ef-495b-99b5-18901cd20d27" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="28ab8764-8d2f-4b60-b811-e63bf5e3e4fa" name="Pitch" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="9cfc0eab-b59e-46ed-bcb1-64cdf82b8d35" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="86366014-99b0-4128-87d4-7e6d6ac06611" name="Loop" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="3fd53bf7-1b87-47fa-9b62-886d9fde2363" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="2c8f101e-2764-463e-8c9d-278d5dbcee10" LastKnownName="Boolean" />
                        </type_NamedElement>
                      </property>
                      <property Id="db0ba118-3e8b-459d-8439-c150616d284f" name="Path" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="a49ce2ec-714f-482e-8789-f821d2e21a2b" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <package Id="cb854db8-a6bb-49c0-bf29-d64618c54aa3" name="Systems">
              <elementDefinition Id="4afdd1d5-f3c3-40b0-a70e-777d89b12070" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="d03d9c61-4c4a-494a-aa6c-23673a165432" name="SoundSystem" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="defc146c-eb70-4912-969d-3ed3d34c5f5f" />
                    <suppliersInternal>
                      <interfaceRealization Id="ceed9b4b-a5a0-4dd3-8944-ef13a0f3a17d">
                        <interfaceMoniker Id="9e1581e3-e56c-400b-8018-17718ed868eb" LastKnownName="System" />
                        <elementDefinition Id="28077688-b80c-483c-9b46-947ce2ad5e20" />
                      </interfaceRealization>
                    </suppliersInternal>
                    <ownedOperationsInternal>
                      <operation Id="62095012-1f95-422d-bc03-9ab2cc13e92e" name="Initialize" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="4cbcdc49-e7e3-476f-91c8-c95b8c5bde8d" />
                      </operation>
                      <operation Id="8ce3cf8e-2e50-4985-801f-446c2613307e" name="Update" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="8774bc31-2b25-4879-b77f-1866e85e131c" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="bb25075c-e493-4e46-a4c8-2ffd3f755cb8" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="20e784e4-09e4-44c6-bd16-c3dcf6c42d02" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="de24b6e0-6ee8-423a-82aa-670c98ce6832" name="UpdateEntity" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="f6f7c802-fc3f-411f-a9d4-391fd10971d0" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="c4d6dac6-8e41-41d5-8048-3c8cb4525c00" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="cdfc1b04-12fa-4376-b8fe-191116e68cf0" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="f3ad820c-fd8b-42e7-bff5-a14eda2f70f7" name="entity" direction="In" isUnique="false">
                              <elementDefinition Id="c21907a8-8a16-4fd4-9146-82837e732674" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="5c613a35-a404-4c97-8025-e777af306651" name="parent" direction="In" isUnique="false">
                              <elementDefinition Id="d0bf88e6-6a0d-40c7-b2da-232adb51fba5" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="103ca3ed-700a-4d0a-94d8-b408051783ba" name="OnComponentCreated" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="bd5f82e4-3a7f-4812-90c2-be1f60d5c1c1" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="2fac0c54-c3f2-46b6-a2d7-1dd16432c4dd" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="18df19c9-d7bc-4fed-90a8-9c905ab7c865" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="5ed4ecb4-7a6e-4691-b9a4-e8281d61c47f" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="13a8fafa-3742-449c-9945-cb2782533f9e" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="fbb25a52-66d5-4935-b1b3-bacc48f12ece" name="OnComponentRemoved" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="6611e7f7-cc32-4455-9c0c-4d6f9faf711e" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="e1b3abfb-1a13-4240-8e7f-f0d3ea4b1fc9" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="a31eb1e5-b00d-4e29-aa6f-b93880e6994c" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="7ba9c5cf-cfc8-4109-986c-5fefa9e3bc8f" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="27cbc759-4d60-4c8a-b50e-51936c512216" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="5db6ff6f-384b-47f2-b849-103a2f3f3ff6" name="PlaySound" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="2835f2c3-baec-42a3-961a-584a26b273a3" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="ff1939e4-37b2-4503-8817-988936cc0a34" name="emitter" direction="In" isUnique="false">
                              <elementDefinition Id="afc2eaf7-a1c2-4936-b799-5571858f02de" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="87d6d12c-8d83-463d-a145-30dc1f64419b" LastKnownName="SoundEmitter*" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="93844e71-2639-4883-b994-e087521b4cc9" name="soundPath" direction="In" isUnique="false">
                              <elementDefinition Id="084c1f63-733a-4223-a958-32c25b930d92" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="84b59815-0bd0-4123-8bd1-38ae678bd9d5" name="PlaySound" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="92648a19-de32-419b-8f78-0c236707f686" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="a770194c-c96a-4b31-870c-fd1da5eee5fd" name="emitter" direction="In" isUnique="false">
                              <elementDefinition Id="b5d3c29f-6a65-44bb-937d-6aada5fad05f" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="87d6d12c-8d83-463d-a145-30dc1f64419b" LastKnownName="SoundEmitter*" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="3755bc6d-5597-469a-80b3-26787b7bb79c" name="StopSound" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="4e4d0ac2-11ab-4bf6-a812-619ec7fa9b1c" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="5dcd59b0-a0d5-44d7-90f3-9e77888be4d6" name="emitter" direction="In" isUnique="false">
                              <elementDefinition Id="8198ac2b-1ade-4535-ac21-549d0771aa3f" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="87d6d12c-8d83-463d-a145-30dc1f64419b" LastKnownName="SoundEmitter*" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                    </ownedOperationsInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
        </packagedElements>
      </package>
    </logicalClassDesignerModelHasPackages>
    <packageHasNamedElement>
      <referencedType Id="87d6d12c-8d83-463d-a145-30dc1f64419b" name="SoundEmitter*" isAbstract="false" isLeaf="false" cachedFullName="SoundEmitter*">
        <elementDefinition Id="effb9c78-b666-4fe5-8903-84e70257eda4" />
      </referencedType>
    </packageHasNamedElement>
    <logicalClassDesignerModelHasPackages>
      <package Id="ba140204-2629-48ff-8d5a-42e0b14aae82" name="Particle System">
        <elementDefinition Id="4f00bcd8-6029-4ece-8858-f38f52cb8894" />
        <packagedElements>
          <packageHasNamedElement>
            <package Id="1b392051-9694-4577-ad0b-adf048c8b145" name="Components">
              <elementDefinition Id="aaa0afab-1fd4-49d0-bff2-b112b0c14ee5" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="09150f57-da46-4af5-bf8e-82a85a433eb6" name="ParticleEmitter" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="0d19723c-db70-40b7-89d6-bb6af70d8175" />
                    <ownedAttributesInternal>
                      <property Id="655a3eed-1c17-4f3b-85aa-ff3dcf0a3b3c" name="TemplateEntities[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="e7bd1d0f-3e0f-4b83-8b41-679561823c33" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                        </type_NamedElement>
                      </property>
                      <property Id="099f1713-3c11-4614-8df4-14ae93d3c23a" name="SpawnFrequency" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="849148cf-f077-4391-a734-eb144c0cd08b" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="e467b93c-9c24-4739-8527-2d4acb40281a" name="SpawnCount" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="582d316d-5e52-4e3b-8ceb-258b33661236" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" LastKnownName="Integer" />
                        </type_NamedElement>
                      </property>
                      <property Id="7bffe6ba-e843-474a-875d-9f6d3cee1282" name="ColorSpectrum[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="db9dc2f1-0330-4bee-a2ea-e53c4b4a1796" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="cdb3f276-11c5-4548-ba01-b34bca0e6909" LastKnownName="Color" />
                        </type_NamedElement>
                      </property>
                      <property Id="19238942-61d9-42e6-bb49-448d49e52411" name="ScaleSpectrum[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="63f8190d-4337-4885-adc7-c68908c251be" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="87aa4f50-79cf-4f6d-9873-7c751b172a0f" name="SpreadAngle" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="a908f465-7fd8-4dfd-ab8c-e72b6d4ade14" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="c49eefcb-34ea-4ea5-92d9-d1731b577f98" name="LifeTime" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="201ff335-0d43-460c-a6e1-352d708a3daf" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="fa2799be-5371-4bbf-bf24-98da09c80518" name="VelocitySpectrum[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="c662a121-80d8-4977-9d7b-ff1cfa4f1d93" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                      <property Id="87449931-1238-4295-a6c3-d65afe5199dd" name="AngularVelocitySpectrum[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="3b290790-686c-4a1a-a919-153dfeb6854b" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="c4cbe783-a703-4c1b-8b09-20fbfa8c6ee5" LastKnownName="Vector3" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <package Id="a3f9606d-b382-4efd-beb3-b3c07e3cb982" name="Systems">
              <elementDefinition Id="382081e1-0659-419f-97a0-eee7612b0e08" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="930c7780-8921-4b7f-84a5-17c591de3bb5" name="ParticleSystem" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="7a12919e-8a67-4320-b291-4e23ee905ce6" />
                    <suppliersInternal>
                      <interfaceRealization Id="20145855-5f85-4b60-8828-382727a58b28">
                        <interfaceMoniker Id="9e1581e3-e56c-400b-8018-17718ed868eb" LastKnownName="System" />
                        <elementDefinition Id="ec3d8880-91e7-495d-a08d-12fa35528ea0" />
                      </interfaceRealization>
                    </suppliersInternal>
                    <ownedOperationsInternal>
                      <operation Id="c34446d4-f3e2-41e2-a7c8-a8c4c63b74d7" name="Initialize" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="1014c800-3d6b-41f3-bd1f-b33f881be045" />
                      </operation>
                      <operation Id="e193fbd3-843a-42c2-aba9-9a977d14b15a" name="Update" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="5c9ab540-284d-4fe8-8f50-e61ec6be23b0" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="69ecda0e-559b-47af-936b-ff716206d430" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="c44275af-3c24-430c-a51f-2c42f3c97387" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="37f81253-14e4-41b1-af2f-267d2cb1dae5" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="01d2c607-8905-48b2-ba0e-f1e91d0b36fd" name="UpdateEntity" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="a10f9a27-d7e8-4b60-b3e5-e7d06410b392" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="b3b749f4-846a-4986-a830-12c6c0456153" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="27dbec58-b513-46d6-b136-d7a1b57a9f14" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="37f81253-14e4-41b1-af2f-267d2cb1dae5" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="7168391d-0720-4bde-b5fe-7f652ea30562" name="entity" direction="In" isUnique="false">
                              <elementDefinition Id="d6db37c3-c891-4933-89ad-6102033ce523" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ecec8da2-8fdf-4b8c-8305-609f8532db0e" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="be12f7b7-30ff-4214-b5fb-a4d529b2565b" name="parent" direction="In" isUnique="false">
                              <elementDefinition Id="6a1cc31c-6c57-495a-a9b7-dde0ff9408c3" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ecec8da2-8fdf-4b8c-8305-609f8532db0e" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="de664388-f01a-4880-b6f1-6ae7e974d0a1" name="OnComponentCreated" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="bd36c4c5-e0bc-40ee-af1e-60563f58d20e" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="45e998c2-0284-4a14-b842-63c1e29bc040" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="ac448b5a-af9e-4a37-9083-43866b2ca845" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="2131b9a5-1454-4e8f-bd0e-00a48403d942" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="8df91cbe-bb2a-433b-9eed-458e7dd360aa" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="d07ca120-b3fe-45d0-8869-86a2a555262a" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="d97f11dd-0a70-4132-b84c-1e96a41ecb63" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="e656d72a-f4bd-4bb4-bdb4-f8b68c9216ef" name="OnComponentRemoved" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="231766ba-9cd7-4b9f-bbd2-624e23d6d526" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="e8d766e5-354a-473b-b5b2-a7cd244defe8" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="36c62893-4cf3-4c2c-a8b6-683a67aa7921" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="2131b9a5-1454-4e8f-bd0e-00a48403d942" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="ec4e234b-e311-4e67-9d4b-c6651f2b93f2" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="a99cad48-0f2c-405e-9e99-1eae173f95b6" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="d97f11dd-0a70-4132-b84c-1e96a41ecb63" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                    </ownedOperationsInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
        </packagedElements>
      </package>
    </logicalClassDesignerModelHasPackages>
    <packageHasNamedElement>
      <referencedType Id="b52c12a1-806c-42b1-8c82-6212f813e0a0" name="Float" isAbstract="false" isLeaf="false" cachedFullName="Float">
        <elementDefinition Id="abf6232c-7432-4662-913b-e73b0447b228" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="70e6f00c-b896-4561-8b6b-0a0201968da0" name="Float" isAbstract="false" isLeaf="false" cachedFullName="Float">
        <elementDefinition Id="abf6232c-7432-4662-913b-e73b0447b228" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="37f81253-14e4-41b1-af2f-267d2cb1dae5" name="Double" isAbstract="false" isLeaf="false" cachedFullName="Double">
        <elementDefinition Id="ef82f100-2f45-465e-b04f-921abe839bdd" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="ecec8da2-8fdf-4b8c-8305-609f8532db0e" name="EntityID" isAbstract="false" isLeaf="false" cachedFullName="EntityID">
        <elementDefinition Id="8ba9f02a-1b44-4417-a1b3-b0a19e11fab5" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="2131b9a5-1454-4e8f-bd0e-00a48403d942" name="String" isAbstract="false" isLeaf="false" cachedFullName="String">
        <elementDefinition Id="59259974-6d55-42c6-b7bd-763d77ac8ef9" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="d97f11dd-0a70-4132-b84c-1e96a41ecb63" name="Component" isAbstract="false" isLeaf="false" cachedFullName="ModelingProject1::Component System::Component">
        <elementDefinition Id="557b402c-c226-4a6b-ace0-d9de61545867" />
      </referencedType>
    </packageHasNamedElement>
    <logicalClassDesignerModelHasPackages>
      <package Id="ceefa4b2-b135-4618-a187-f41de1c92cab" name="Input">
        <elementDefinition Id="0bebfcbf-1e12-4a03-b0ee-69d29306ec92" />
        <packagedElements>
          <packageHasNamedElement>
            <package Id="af8e5057-264b-4a5b-9921-d42efa11a242" name="Components">
              <elementDefinition Id="d6bd36c3-3801-42f6-8627-0c3871fa75ee" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="e9736548-f6f1-439f-bc68-818f734f9300" name="Input" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="48c8b117-6fb6-44c0-b611-73a18f3dfe02" />
                    <ownedAttributesInternal>
                      <property Id="6b1973a8-fc41-44b1-a9b8-31ff9096d6bf" name="KeyState[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="9f1abbdd-5203-4d03-9826-88bbb31a5f22" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" LastKnownName="Integer" />
                        </type_NamedElement>
                      </property>
                      <property Id="2c59eb26-d63c-412b-ab6f-f71214eedf27" name="LastKeyState[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="c1d0c4f4-f717-4ef4-8c5c-4822aca564d9" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" LastKnownName="Integer" />
                        </type_NamedElement>
                      </property>
                      <property Id="548e5d0d-4d72-4274-b10a-63583638c5f1" name="MouseState[]" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="b91951c7-25a1-414b-a725-5c017050ba97" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" LastKnownName="Integer" />
                        </type_NamedElement>
                      </property>
                      <property Id="65be5505-fafc-4fef-8df8-b141579c19e1" name="LastMouseState" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="26b64af2-564b-4343-8ca4-175b0bc60fc6" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="4fc24110-026d-43ca-9f19-2cc167a73f4a" LastKnownName="Integer" />
                        </type_NamedElement>
                      </property>
                      <property Id="57bb1dbe-74b6-45a4-9b74-1059736b0e44" name="dX" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="479a9961-153d-4536-8a67-0c0abe126fcc" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="6203774f-bd3d-4047-a8cb-9785fa99c766" name="dY" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="b8c93c58-d522-4f32-bf37-867ceddf4792" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                      <property Id="24711ed8-8dbe-4ab2-8052-15259c231d1c" name="WheelDelta" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
                        <elementDefinition Id="3b669016-152b-4a71-b66d-3450db774cb2" />
                        <type_NamedElement>
                          <referencedTypeMoniker Id="804827c3-a366-4e97-8c57-d84e6edb9f8b" LastKnownName="Float" />
                        </type_NamedElement>
                      </property>
                    </ownedAttributesInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
          <packageHasNamedElement>
            <package Id="4563ae1e-66e5-4227-9612-ac1a26c5bb48" name="Systems">
              <elementDefinition Id="a578b302-eb5e-4231-a4d8-6182f4ed7e1d" />
              <packagedElements>
                <packageHasNamedElement>
                  <class Id="6d72680a-5b6b-4980-9e11-96464af63346" name="InputSystem" isAbstract="false" isLeaf="false" isActiveClass="false">
                    <elementDefinition Id="0e973b4a-f216-44f5-84ef-793970051a6a" />
                    <suppliersInternal>
                      <interfaceRealization Id="e127a645-596d-4cad-8c5e-3d7739b2f960">
                        <interfaceMoniker Id="9e1581e3-e56c-400b-8018-17718ed868eb" LastKnownName="System" />
                        <elementDefinition Id="fb0feb0c-92dd-40f3-8a34-48d92c3e06f9" />
                      </interfaceRealization>
                    </suppliersInternal>
                    <ownedOperationsInternal>
                      <operation Id="30cbc096-a761-400a-89a4-6e2565ec236c" name="Initialize" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="c1925f05-c9e5-4edb-9d5a-e9749823a7a0" />
                      </operation>
                      <operation Id="85ef0975-f85b-4d85-9762-4d6312aad0c3" name="Update" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="ec97624d-8472-46a3-baf5-6b3cc05247c9" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="bf773c8f-44cc-4fba-91b9-6fb941e93884" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="68e7620a-f0e6-4cf4-8669-b783d98b6445" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="1e265520-4e1b-472b-8289-64f50246c27d" name="UpdateEntity" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="01e34f64-de05-462d-ab34-64dc2034c59b" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="57b2b4bc-7198-45b7-83a7-a414346dfe44" name="dt" direction="In" isUnique="false">
                              <elementDefinition Id="edc4c0f1-a5a0-4cca-b4f2-d6a31444f8e5" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="5c8073d4-69d0-449a-9e70-5ef5eddf13e7" LastKnownName="Double" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="25c3180f-97a0-4760-b4a3-c7f639cac7d4" name="entity" direction="In" isUnique="false">
                              <elementDefinition Id="93dcaa30-dd51-4341-bf06-9a94c6c82cad" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="766d8d17-50e0-46b9-8e90-04e2700d8e69" name="parent" direction="In" isUnique="false">
                              <elementDefinition Id="ff7c28e8-ab7b-4306-9b20-3792ea25171e" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="aef00f8e-64b4-46f2-816f-e47eeaf81494" LastKnownName="EntityID" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="fbe27e1d-091a-4a31-8d48-580c8175b2cf" name="OnComponentCreated" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="f7799b8e-5758-407f-9892-17cbbee8a6b2" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="3c74f234-d7a0-4b01-8523-1304e6ef765c" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="05c8a0a0-05f3-4149-9a27-10c7cbfd6475" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="e48fd658-5409-4ea7-9b43-cbe2f7eb4b90" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="b5b17f94-798d-4348-8f45-68534f436487" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                      <operation Id="ccdb9a2b-2160-43c3-a5eb-57e2b0a2c73a" name="OnComponentRemoved" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
                        <elementDefinition Id="86290ac2-f9d9-48c9-8108-e263e0d7559d" />
                        <ownedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="a5828aa3-6eda-4f1c-b821-a77cc203f38a" name="type" direction="In" isUnique="false">
                              <elementDefinition Id="a0c56e00-5ef1-4963-99e5-f69c66cc3dd9" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="dd83fe94-4353-4775-9b03-c050c12e1356" LastKnownName="String" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                          <operationHasOwnedParameters>
                            <parameter Id="5bef11e8-c10a-452e-b0e2-1adbfae3e7b4" name="component" direction="In" isUnique="false">
                              <elementDefinition Id="f92eaab4-4a11-438f-9883-de9e947c2d3b" />
                              <type_NamedElement>
                                <referencedTypeMoniker Id="ed3345a2-ccbd-4f03-8e87-880d26c1966e" LastKnownName="Component" />
                              </type_NamedElement>
                            </parameter>
                          </operationHasOwnedParameters>
                        </ownedParameters>
                      </operation>
                    </ownedOperationsInternal>
                  </class>
                </packageHasNamedElement>
              </packagedElements>
            </package>
          </packageHasNamedElement>
        </packagedElements>
      </package>
    </logicalClassDesignerModelHasPackages>
    <packageHasNamedElement>
      <referencedType Id="2ac483e8-96a1-4c6a-be71-25543fee5bba" name="System*" isAbstract="false" isLeaf="false" cachedFullName="System*">
        <elementDefinition Id="fbc11d1d-bcf9-4437-8812-07e15eaec85a" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="9ad612b0-d082-44c9-89e5-4a94b9ed74c0" name="&lt;T&gt;" isAbstract="false" isLeaf="false" cachedFullName="&lt;T&gt;">
        <elementDefinition Id="8e31adc3-65a8-42cc-9d24-85914c7069d9" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="66b128e7-457d-49a6-b2f0-1ecdc5e4c1d1" name="boost::any" isAbstract="false" isLeaf="false" cachedFullName="boost::any">
        <elementDefinition Id="e6195da5-5d96-4fd9-bedc-d8d482abdb4e" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="2e60e9a0-92a0-4cd4-8d0a-fd475ee51971" name="Component*" isAbstract="false" isLeaf="false" cachedFullName="Component*">
        <elementDefinition Id="63a0bfa5-5f57-4b16-84a7-368d404a5aad" />
      </referencedType>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <referencedType Id="c69826c4-8234-4434-9a8f-0c3115c4170f" name="map(EntityID, EntityID)*" isAbstract="false" isLeaf="false" cachedFullName="map(EntityID, EntityID)*">
        <elementDefinition Id="d2c872f7-3813-42d6-a0bb-44e1015ebea6" />
      </referencedType>
    </packageHasNamedElement>
    <logicalClassDesignerModelHasTypes>
      <class Id="07fc7ff1-1d71-48c2-b033-fa9687a6b977" name="Engine" isAbstract="false" isLeaf="false" isActiveClass="false">
        <elementDefinition Id="2297b045-e75a-4acd-bd9d-1c8b835aa7e9" />
        <ownedAttributesInternal>
          <property Id="7fd695cb-c77a-49af-b3d1-b3859d55fbc2" name="Running()" isLeaf="false" isStatic="false" isReadOnly="false" isUnique="false" isDerived="false" isDerivedUnion="false" aggregation="None" isComposite="false">
            <elementDefinition Id="87d7c585-ab82-462d-97b0-092af7261623" />
            <type_NamedElement>
              <referencedTypeMoniker Id="2c8f101e-2764-463e-8c9d-278d5dbcee10" LastKnownName="Boolean" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
        <ownedOperationsInternal>
          <operation Id="f0e98b3b-4d6d-4022-a9a5-2817d56eeb3a" name="Tick" isLeaf="false" isStatic="false" isAbstract="false" concurrency="Sequential" isQuery="false">
            <elementDefinition Id="ecbee665-6220-43af-b226-053b7af2532d" />
          </operation>
        </ownedOperationsInternal>
      </class>
    </logicalClassDesignerModelHasTypes>
  </packagedElements>
  <package Id="e64778f0-4ac6-4aaa-961e-f0f8f7a26972" name="ModelingProject1">
    <elementDefinition Id="77031507-5455-440e-8ca9-5c5bf3469270" />
    <profileInstances>
      <packageHasProfileInstances Id="ae5433cd-dfee-45e4-bfb5-6697abb9c879">
        <profileInstance Id="8d7e61f7-f5ad-4776-a569-939c6f09095d" name="StandardProfileL2">
          <elementDefinition Id="e34d544e-0fea-4ed6-ac5e-1b74119ac791" />
        </profileInstance>
        <elementDefinition Id="0caec977-1f8c-4ba3-a7db-8cc9ad9cc73b" />
      </packageHasProfileInstances>
      <packageHasProfileInstances Id="ff65cae7-7afd-447e-914d-07b6f5b38928">
        <profileInstance Id="8a1b6905-cd4f-447e-b4e8-a9f71f17ffba" name="StandardProfileL3">
          <elementDefinition Id="532ea607-fb19-44b8-8502-3351b05452be" />
        </profileInstance>
        <elementDefinition Id="29349502-908c-4fda-9054-c48619c59ed0" />
      </packageHasProfileInstances>
    </profileInstances>
  </package>
</logicalClassDesignerModel>