<?xml version="1.0" encoding="utf-8"?>
<package 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/LogicalClassDesigner"
  dslVersion="1.0.0.0"
  Id="0455a440-fe60-47be-a0ff-2559a40fd8d4"
  name="Rendering" xmlns="http://schemas.microsoft.com/dsltools/ModelStore">
  <packagedElements>
    <packageHasNamedElement>
      <packageMoniker
        Id="69e51d9c-3a6d-45cb-bf63-b7be3c24d825"
        LastKnownName="Components"
        LastKnownLocation="Package1_0008.uml" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <packageMoniker
        Id="501bb8af-bcff-4186-ab88-b25cbf99d24e"
        LastKnownName="Systems"
        LastKnownLocation="Package_0010.uml" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="075fb835-aafb-4443-8708-9cbccb22baa6"
        name="Renderer"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="d6177e54-8800-418b-9d8d-5d4643f40a40"
            isDerived="false"
            sourceEndRoleName="Renderer"
            targetEndRoleName="Engine"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="2297b045-e75a-4acd-bd9d-1c8b835aa7e9"
              LastKnownName="Engine"
              LastKnownLocation="ModelingProject1.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="cc5865ad-7d7a-4118-ae82-80ec0b6a51d0"
                  name="Renderer"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="84f73e4e-9633-42f5-b62d-933af38b7f77"
                  name="Engine"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedOperationsInternal>
          <operation
            Id="4f3f8eb8-be4e-4fbc-95be-c92ac171f73e"
            name="Initialize"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="c8d39b80-24e7-4e93-adb9-76db6a40176a"
            name="Draw"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="2d2ea0c4-8872-4796-874a-fd4368764a49"
                  name="dt"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="ef82f100-2f45-465e-b04f-921abe839bdd"
                      LastKnownName="Double"
                      LastKnownLocation="Package_2341.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="c1eb7d12-6d67-482e-9fd8-4803ae81043e"
            name="AddModelToDraw"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="f8a19034-f239-41dc-9e67-d7075b8ec192"
                  name="..."
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="7c09460e-388a-4aed-be85-44bc172220a4"
            name="AddTextToDraw"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="c4c366c1-9ffe-42a4-9a97-afa19e38c05a"
                  name="..."
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="ddc545b6-cc63-4e85-a01b-f633d0d3ca02"
            name="AddPointLightToDraw"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="ffe5ab01-98a4-4f9b-a707-ce7ac10cdb40"
                  name="..."
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="68bb70e8-1d14-4ebf-bd53-6117a3130ff9"
            name="AddAABBToDraw"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="77e9529f-9e76-4bbc-a475-7e504ca8aa90"
                  name="..."
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="b457116c-b5ee-4f9b-a002-a20aec87da26"
            name="LoadContent"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="27cf2b69-b3ef-447f-af40-7b5cb405d7b7"
            name="GetWindow"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="4c6a478e-2ee7-40be-b491-5a28d8c55bb1"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="a5054a2e-111d-4cb1-b42e-6a5a36d35212"
                      LastKnownName="GLFWwindow*"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="7f90c10c-e441-41ca-8ad1-c7e1f2afa0fc"
            name="GetCamera"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="6fdca733-e240-442c-9828-4b56831985c3"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="92d00c12-f0fb-4acd-88e3-2c9114b8abad"
                      LastKnownName="Camera*"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="a5054a2e-111d-4cb1-b42e-6a5a36d35212"
        name="GLFWwindow*" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="92d00c12-f0fb-4acd-88e3-2c9114b8abad"
        name="Camera*" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="34707cc4-a3b0-41c9-bb38-be0a7e760680"
        name="Model"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="9e1de866-be99-415d-b310-45cb6dbc71e0"
            isDerived="false"
            sourceEndRoleName="Model"
            targetEndRoleName="Renderer"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="075fb835-aafb-4443-8708-9cbccb22baa6"
              LastKnownName="Renderer"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="d32a14a5-cb88-44d1-8cd3-56731211ef14"
                  name="Model"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Shared"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="8220983d-563f-4180-bab6-dec8e2b12133"
                      name="Lower"
                      value="0" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="ab53127f-0fdb-4884-a2f2-f51fd800222f"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="526d3529-3617-4722-85f4-a3fe67f45585"
                  name="Renderer"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="e7a63b69-15fa-4313-a801-5a8ace5d179e"
            name="VAO"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="4c6d72fd-a8ee-4359-9a40-413c4a44c2a0"
                LastKnownName="GLuint"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="b30b61f2-271c-4880-8eb9-4cf4fff3a2db"
            name="TextureGroups[]"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="622b4702-3f38-4468-9a13-74cfa01603f6"
                LastKnownName="TextureGroup"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
        <ownedOperationsInternal>
          <operation
            Id="03e658dc-4294-4d95-b072-5c179141f6d9"
            name="Model"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="64c7c896-2ba6-4c1b-8bbf-9718b9b716ee"
                  name="obj"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="1f09aa64-92eb-4641-bc03-93dc576c6425"
                      LastKnownName="OBJ*"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="1f09aa64-92eb-4641-bc03-93dc576c6425"
        name="OBJ*" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="4c6d72fd-a8ee-4359-9a40-413c4a44c2a0"
        name="GLuint" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="622b4702-3f38-4468-9a13-74cfa01603f6"
        name="TextureGroup" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="bd5e81a9-1788-4c96-bc7b-826189d8c432"
        name="Model::TextureGroup"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="ca9d65e4-3a79-4b2f-ab90-1ae6d263accd"
            isDerived="false"
            sourceEndRoleName="Model::TextureGroup"
            targetEndRoleName="Model"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="34707cc4-a3b0-41c9-bb38-be0a7e760680"
              LastKnownName="Model"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="ae91d28a-52c2-46b2-83a4-c6e4715e1e1b"
                  name="Model::TextureGroup"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="51b941ce-b120-4fc7-955f-7c21babe6689"
                      name="Lower"
                      value="0" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="b663bf5a-064a-46ca-8017-dd34931f2ea0"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="1364c5df-119c-47cd-ac37-346485598b81"
                  name="Model"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="d68709db-7b62-4ec8-9898-7894a63650ae"
            name="Texture"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="3818ecd7-b9d7-4040-93a3-ae7a3634e680"
                LastKnownName="Texture*"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="a6ca6a75-43cc-4683-a1f3-b913f7eba23c"
            name="StartIndex"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="0c9c428d-c4af-4f19-be51-2b281f2f197c"
                LastKnownName="UnsignedInteger"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="554cae8e-ea81-45b4-b977-8176110198c5"
            name="EndIndex"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="0c9c428d-c4af-4f19-be51-2b281f2f197c"
                LastKnownName="UnsignedInteger"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="3818ecd7-b9d7-4040-93a3-ae7a3634e680"
        name="Texture*" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="0c9c428d-c4af-4f19-be51-2b281f2f197c"
        name="UnsignedInteger" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="c294efcb-4cd9-4801-9887-46b6fb84c098"
        name="OBJ"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="80070f45-7e33-4dbd-950e-bb06d3bc2eba"
            isDerived="false"
            sourceEndRoleName="OBJ"
            targetEndRoleName="Model"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="34707cc4-a3b0-41c9-bb38-be0a7e760680"
              LastKnownName="Model"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="abd5c0c4-f747-4ccc-acb6-236bc123113c"
                  name="OBJ"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Shared"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="5ca5b366-a534-413b-8cbd-e6cb13d31af5"
                  name="Model"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="0ce4f9b9-afc1-4d67-98bf-a47cd045628c"
            name="Vertices"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="364e9888-36f5-456b-a704-569da6a94d05"
                LastKnownName="Tuple(Float,Float,Float)[]"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="2f9e2d54-933d-4dd7-9249-29dcd18179e7"
            name="Normals"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="364e9888-36f5-456b-a704-569da6a94d05"
                LastKnownName="Tuple(Float,Float,Float)[]"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="4313fdaa-4dd0-4582-9ac9-6e5516334994"
            name="TextureCoords"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="364e9888-36f5-456b-a704-569da6a94d05"
                LastKnownName="Tuple(Float,Float,Float)[]"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="5bb7e879-7564-40a8-9e35-207a3f7910f6"
            name="Faces"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="f4f0e5d1-84fa-4eb7-bc15-33627768158a"
                LastKnownName="Face[]"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="f0678aa5-1340-4b95-b1fe-96da0d982223"
            name="Materials"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="5dfbb2a8-775a-458a-bea8-36846dcf2810"
                LastKnownName="Map(String, MaterialInfo)"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
        <ownedOperationsInternal>
          <operation
            Id="d2e3c36e-a7c0-4164-8a60-d913384dc86d"
            name="LoadFromFile"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="988d5870-05da-4612-93f2-691075133782"
                  name="filename"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="ModelingProject1.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="10ab72a7-1d7f-436b-9b01-cfbc7e248d4c"
            name="Path"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="3d4bcd8d-330b-4a63-a137-dd120b82300a"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="2c555f73-c821-4a0d-a479-b7805ad2139e"
                      LastKnownName="boost::filesystem::path"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="c4527d07-5478-4fc8-8663-0549f97d65f6"
        name="OBJ::Face"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="fd166f89-364c-4105-a495-4c2f76789b60"
            isDerived="false"
            sourceEndRoleName="OBJ::Face"
            targetEndRoleName="OBJ"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="c294efcb-4cd9-4801-9887-46b6fb84c098"
              LastKnownName="OBJ"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="efe09002-59a7-4dc6-aaa0-acc1dbe4b1e6"
                  name="OBJ::Face"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="d5497d57-3401-4e92-b66d-5d54be611379"
                      name="Lower"
                      value="0" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="17736665-e9a1-41cb-8001-724e0686f68b"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="156d9491-267d-4f3b-a54b-23ca2b024fb3"
                  name="OBJ"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="6644be3a-8138-4efa-b48c-ea45bf002eaf"
            name="Definitions[]"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="126b2c60-b32d-4f56-acf6-be3581c04c4b"
                LastKnownName="FaceDefinition"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="b5e6de28-381d-4621-8321-dad9a731e300"
            name="Material"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="c1cabf97-079b-4679-b30e-bf7b3a20a065"
                LastKnownName="MaterialInfo"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="7dbf61af-60c3-447c-8a70-5b053ea48098"
        name="Interface1"
        isAbstract="false"
        isLeaf="false" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="fb552ada-d8f5-41ea-ba25-f1a3f08f1126"
        name="OBJ::FaceDefinition"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="51cec920-7a3e-4aef-84e3-a07378cae550"
            isDerived="false"
            sourceEndRoleName="OBJ::FaceDefinition"
            targetEndRoleName="OBJ::Face"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="c4527d07-5478-4fc8-8663-0549f97d65f6"
              LastKnownName="OBJ::Face"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="4e55f6bf-7afb-4505-adf8-c6d1e13c3f01"
                  name="OBJ::FaceDefinition"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="5f391065-d394-4287-84a4-4622c4b7834d"
                      name="Lower"
                      value="1" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="3d691fe5-5a61-41d4-9fe1-d1b690a22c16"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="210364c7-ac3d-4bac-aef5-96bbdf666781"
                  name="OBJ::Face"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="dc0fbd0d-55a7-4f35-87da-41f20545d6d4"
            name="VertexIndex"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <primitiveTypeMoniker
                Id="220a3521-e091-4221-bae9-3ef9018e845c"
                LastKnownName="Integer"
                LastKnownLocation="ModelingProject1.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="437c5e3f-7002-4e48-8d0e-ca6acc52c688"
            name="TextureCoordIndex"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <primitiveTypeMoniker
                Id="220a3521-e091-4221-bae9-3ef9018e845c"
                LastKnownName="Integer"
                LastKnownLocation="ModelingProject1.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="ce564556-45e2-4b8c-80f7-57b729a39a0d"
            name="NormalIndex"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <primitiveTypeMoniker
                Id="220a3521-e091-4221-bae9-3ef9018e845c"
                LastKnownName="Integer"
                LastKnownLocation="ModelingProject1.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="0ea5d92d-9453-4dde-aa67-ea660a924949"
        name="OBJ::MaterialInfo"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="6e87a8d5-515e-42ee-88b5-ab06a8a5bf6a"
            isDerived="false"
            sourceEndRoleName="OBJ::MaterialInfo"
            targetEndRoleName="OBJ::Face"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="c4527d07-5478-4fc8-8663-0549f97d65f6"
              LastKnownName="OBJ::Face"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="3eadd5a9-14a7-4618-86d3-106f8c9d6913"
                  name="OBJ::MaterialInfo"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="35c0ac67-a4ef-49f4-887a-0382394298e7"
                  name="OBJ::Face"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="f79e5ca6-c6d1-48cc-83b7-0ca6201bb691"
            name="TextureFile"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <primitiveTypeMoniker
                Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                LastKnownName="String"
                LastKnownLocation="ModelingProject1.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="3bd3d545-e76a-455e-8c4b-46ca34354d68"
            name="AmbientColor"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="8618ad69-f7ce-445a-ae1a-92713b21e3dd"
                LastKnownName="Tuple(Float, Float, Float)"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="344c08bf-0a9c-4972-aa3b-aeda58403d0f"
            name="DiffuseColor"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="8618ad69-f7ce-445a-ae1a-92713b21e3dd"
                LastKnownName="Tuple(Float, Float, Float)"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="2bdfe850-8236-4d7f-867d-1c2e7da2d625"
            name="SpecularColor"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="8618ad69-f7ce-445a-ae1a-92713b21e3dd"
                LastKnownName="Tuple(Float, Float, Float)"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="c4e93d67-d170-44cc-b2e0-db9b87f91735"
            name="TransmissionFilter::Tuple(Float, Float, Float)"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="e038fb70-b42c-410e-b164-c42221a77250"
            name="OpticalDensity"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="abf6232c-7432-4662-913b-e73b0447b228"
                LastKnownName="Float"
                LastKnownLocation="Package_2342.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="ce05f41d-dcc0-49a0-931f-86bc539d2185"
            name="Alpha"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="abf6232c-7432-4662-913b-e73b0447b228"
                LastKnownName="Float"
                LastKnownLocation="Package_2342.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="15f55ec6-13f5-406e-b766-33031da3156c"
            name="Shininess"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="abf6232c-7432-4662-913b-e73b0447b228"
                LastKnownName="Float"
                LastKnownLocation="Package_2342.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="59c2accd-5835-4ddd-80ff-51e4480e48f5"
            name="IlluminationModel"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <primitiveTypeMoniker
                Id="220a3521-e091-4221-bae9-3ef9018e845c"
                LastKnownName="Integer"
                LastKnownLocation="ModelingProject1.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="126b2c60-b32d-4f56-acf6-be3581c04c4b"
        name="FaceDefinition" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="c1cabf97-079b-4679-b30e-bf7b3a20a065"
        name="MaterialInfo" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="8618ad69-f7ce-445a-ae1a-92713b21e3dd"
        name="Tuple(Float, Float, Float)" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="364e9888-36f5-456b-a704-569da6a94d05"
        name="Tuple(Float,Float,Float)[]" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="f4f0e5d1-84fa-4eb7-bc15-33627768158a"
        name="Face[]" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="5dfbb2a8-775a-458a-bea8-36846dcf2810"
        name="Map(String, MaterialInfo)" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="2c555f73-c821-4a0d-a479-b7805ad2139e"
        name="boost::filesystem::path" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="75c02dd5-705d-4a95-a865-6fe4d544c88b"
        name="Camera"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="681e195f-49ff-4ea1-9554-c90ed21abbd6"
            isDerived="false"
            sourceEndRoleName="Camera"
            targetEndRoleName="Renderer"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="075fb835-aafb-4443-8708-9cbccb22baa6"
              LastKnownName="Renderer"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="ab17a551-1d13-4833-a296-a2953a86a0b5"
                  name="Camera"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Shared"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="00294db5-fcd2-4df1-a7be-897e0cfa3e4f"
                      name="Lower"
                      value="1" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="827546a2-b245-44f6-9fe6-0cd5cab8007b"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="e7f810b0-2a62-4ecb-a490-eb1354d1319c"
                  name="Renderer"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="19369993-27f3-417c-8482-7ba2359f3b90"
            name="Forward()"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="1d0ee20e-670d-4332-83c4-d5766677500d"
                LastKnownName="Vector3"
                LastKnownLocation="Package1_2346.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="3243387b-edd4-48c9-ae51-ab6db27fb533"
            name="Right()"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="1d0ee20e-670d-4332-83c4-d5766677500d"
                LastKnownName="Vector3"
                LastKnownLocation="Package1_2346.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="c2cf5ed4-079d-4834-9d18-2e2ecda8b4de"
            name="Up()"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="1d0ee20e-670d-4332-83c4-d5766677500d"
                LastKnownName="Vector3"
                LastKnownLocation="Package1_2346.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="c4bd4b23-a032-41ff-a63b-8dad1f679c30"
            name="Position()"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="1d0ee20e-670d-4332-83c4-d5766677500d"
                LastKnownName="Vector3"
                LastKnownLocation="Package1_2346.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="70311afd-de7f-479f-ad7c-b30af20f7b6b"
            name="Orientation()"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="3d8ea861-d278-4b29-b99f-c541e12cb443"
                LastKnownName="Quaternion"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="af05115c-b84b-45a1-b1d0-71a702d432a4"
            name="ProjectionMatrix"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="d5926045-214f-450a-a731-6c44d6960e1f"
                LastKnownName="Matrix4x4"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="f576359c-1c6d-47a4-8515-f3559ff0f2f4"
            name="ViewMatrix()"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="d5926045-214f-450a-a731-6c44d6960e1f"
                LastKnownName="Matrix4x4"
                LastKnownLocation="Package_0008.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="132cb60a-71d7-47b8-abda-c0836b0e9a58"
            name="FOV()"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="abf6232c-7432-4662-913b-e73b0447b228"
                LastKnownName="Float"
                LastKnownLocation="Package_2342.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="05a79802-ead0-4afa-a386-ac099c30b749"
            name="FarClip()"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="abf6232c-7432-4662-913b-e73b0447b228"
                LastKnownName="Float"
                LastKnownLocation="Package_2342.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="91b97acd-3899-4a06-9110-4fd45762cefe"
            name="NearClip()"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="abf6232c-7432-4662-913b-e73b0447b228"
                LastKnownName="Float"
                LastKnownLocation="Package_2342.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="e1705f29-45f7-4551-a87a-e963aad9a77a"
        name="Vector34" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="3d8ea861-d278-4b29-b99f-c541e12cb443"
        name="Quaternion" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="d068e23e-3812-4b9f-8064-fd4b5bb18b82"
        name="Matrix4" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="d5926045-214f-450a-a731-6c44d6960e1f"
        name="Matrix4x4" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="63f2f7b5-d0e9-439f-9906-157384c7d030"
        name="ShaderProgram"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="09d5ba03-53ee-4228-97a3-0e50ac326161"
            isDerived="false"
            sourceEndRoleName="ShaderProgram"
            targetEndRoleName="Renderer"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="075fb835-aafb-4443-8708-9cbccb22baa6"
              LastKnownName="Renderer"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="3bce5c93-e45d-49d6-be7d-c9d238b1d47a"
                  name="ShaderProgram"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Shared"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="cbe35f2a-ef7e-43b0-8b24-912b43c2388f"
                      name="Lower"
                      value="1" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="cb4b3d72-bed4-4f85-b28c-ad8532a1d40a"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="253e4903-227e-40a7-9b84-42ab2e02faaa"
                  name="Renderer"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedOperationsInternal>
          <operation
            Id="8a79b530-968f-4c44-aff6-9af6b1575b8e"
            name="AddShader"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="5c76569d-6276-47e6-96d1-6b1c934b7c96"
                  name="shader"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="c003ac52-e8f2-447d-ab70-7a89d2484f17"
                      LastKnownName="Shader*"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="fd7e3cf5-f537-4b07-b43f-f78a31b3959b"
            name="Compile"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="9aa7792e-7fa5-4317-9d35-c3fd49f311b1"
            name="Link"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="347d0a97-b977-4825-b53a-dbfe3ce6e5db"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="4c6d72fd-a8ee-4359-9a40-413c4a44c2a0"
                      LastKnownName="GLuint"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="0649da7f-f104-4f5a-99d6-b110763ac025"
            name="GetHandle"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="74390aff-80cb-4f81-9322-a00e918decef"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="4c6d72fd-a8ee-4359-9a40-413c4a44c2a0"
                      LastKnownName="GLuint"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="64a5a39c-a12c-4f28-879d-d63301d3d29c"
            name="Bind"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="11afd598-02b9-4e47-9740-ab16f97394f6"
            name="Unbind"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="79315b8d-2a43-4145-9eec-67c9538d0ebb"
        name="Shader"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="888d2b58-fcd6-4fbf-a6aa-f09f7cc5a8d5"
            isDerived="false"
            sourceEndRoleName="Shader"
            targetEndRoleName="ShaderProgram"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="63f2f7b5-d0e9-439f-9906-157384c7d030"
              LastKnownName="ShaderProgram"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="c3acbc94-6a58-4cfb-9dc4-a039e5d5e63b"
                  name="Shader"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="6ddd33a2-0860-41db-a756-6f131a246bd8"
                      name="Lower"
                      value="2" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="061e9daa-4fba-43c1-9ba2-f83977594356"
                      name="Upper"
                      value="5" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="3d3e4a96-2c66-4bf1-adc0-f4e14b8deba3"
                  name="ShaderProgram"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedOperationsInternal>
          <operation
            Id="01313083-5566-4240-b021-acb25ac4a9ad"
            name="CompileShader"
            isLeaf="false"
            isStatic="true"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="21d16ac5-9de7-4350-bf25-3b95a6273ee2"
                  name="shaderType"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="6eee35c6-16f0-4dae-8cdf-7856d3b02968"
                      LastKnownName="GLenum"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="66aca2e1-5c63-4bb5-ac7b-04335649487e"
                  name="fileName"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="ModelingProject1.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="ed617aae-5970-49b3-9421-ef2ff8facea8"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="4c6d72fd-a8ee-4359-9a40-413c4a44c2a0"
                      LastKnownName="GLuint"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="6a971845-b4c5-4b38-bd7f-7aa919892164"
            name="Compile"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="67ee4c0d-9489-4721-a82d-5eb57ac0c7c3"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="4c6d72fd-a8ee-4359-9a40-413c4a44c2a0"
                      LastKnownName="GLuint"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="34422b8f-1385-4a2e-9a15-10deb78cb596"
            name="GetType"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="703b7890-5cde-486b-ab02-7a15ad103174"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="6eee35c6-16f0-4dae-8cdf-7856d3b02968"
                      LastKnownName="GLenum"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="b095a771-47d8-484f-8c91-cc5b95cdacb2"
            name="GetFileName"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="fc97926d-fe3c-466e-85fb-01ed881debbb"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="ModelingProject1.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="61fc5f24-82d5-480d-9c44-34a38f95cc5c"
            name="GetHandle"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="25780430-395a-4696-a606-59379626ea7c"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <undefinedTypeMoniker
                      Id="4c6d72fd-a8ee-4359-9a40-413c4a44c2a0"
                      LastKnownName="GLuint"
                      LastKnownLocation="Package_0008.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="86dc7ab6-6bbc-4b24-ac53-39230d7f09a9"
            name="IsCompiled"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="73657ab4-a4cb-4910-8210-8c5b61d17942"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="8943dc84-709e-4f62-b15a-a3273aa6f165"
                      LastKnownName="Boolean"
                      LastKnownLocation="ModelingProject1.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="6eee35c6-16f0-4dae-8cdf-7856d3b02968"
        name="GLenum" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="c003ac52-e8f2-447d-ab70-7a89d2484f17"
        name="Shader*" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="aa92c063-05e7-4521-8bb1-6f7647c31c88"
        name="Texture"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="7245f4d6-247c-480f-9574-0f758bd24a5c"
            isDerived="false"
            sourceEndRoleName="Texture"
            targetEndRoleName="Model::TextureGroup"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="bd5e81a9-1788-4c96-bc7b-826189d8c432"
              LastKnownName="Model::TextureGroup"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="71be4c64-e053-4182-a26d-7f6c617e6182"
                  name="Texture"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="8a2896d7-2fec-4861-940e-848295557777"
                  name="Model::TextureGroup"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedOperationsInternal>
          <operation
            Id="9629d7f2-7422-4211-be82-37c3fd660862"
            name="Load"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="00488958-9ce4-4628-befb-a751961f91b1"
                  name="path"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="ModelingProject1.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="77815039-9f21-4bbd-b27f-1cc12c50196c"
            name="Bind"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="21763b16-1b2a-4ba2-a2be-7783bdae39d8"
        name="CubemapTexture"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="afe2dba1-fbfd-403f-90b3-41279e8a66f2"
            isDerived="false"
            sourceEndRoleName="CubemapTexture"
            targetEndRoleName="Skybox"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="f98c3b6d-5889-458e-acf2-82aae2f856e5"
              LastKnownName="Skybox"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="c0693892-6fca-4e65-8afd-cfeb73564bd5"
                  name="CubemapTexture"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="9f5bbc3e-7e13-4b3a-a44d-6b445f1fe83b"
                  name="Skybox"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedOperationsInternal>
          <operation
            Id="a7672c9b-b721-4b7d-be97-2fec59c63214"
            name="Load"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="84782514-b4c2-40e6-9b45-ba67bc638df9"
                  name="path"
                  direction="In"
                  isUnique="false">
                  <type_NamedElement>
                    <primitiveTypeMoniker
                      Id="59259974-6d55-42c6-b7bd-763d77ac8ef9"
                      LastKnownName="String"
                      LastKnownLocation="ModelingProject1.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="2cc86299-8f91-4a23-86b8-97a477e2a839"
            name="Bind"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="f98c3b6d-5889-458e-acf2-82aae2f856e5"
        name="Skybox"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="10603dd9-c7ae-4efe-b375-d10256f2e6b2"
            isDerived="false"
            sourceEndRoleName="Skybox"
            targetEndRoleName="Renderer"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="075fb835-aafb-4443-8708-9cbccb22baa6"
              LastKnownName="Renderer"
              LastKnownLocation="Package_0008.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="69ba3af6-5a55-4a5b-9d82-c576d63456da"
                  name="Skybox"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Shared"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="16d049f2-c244-413a-ad32-c4fcc22b372f"
                      name="Lower"
                      value="0" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="c23da7e1-71a0-4fa8-9914-08d1842b9596"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="92916b38-d831-48ce-a052-5c34735209b0"
                  name="Renderer"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedOperationsInternal>
          <operation
            Id="968bf2e0-b951-4d20-a1f2-7a649b107bd3"
            name="Draw"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
  </packagedElements>
</package>