Commits

Jason McKesson committed b6e5dc0

Tut09: Diagrams for topology.

Comments (0)

Files changed (4)

Add a comment to this file

Documents/Illumination/CubeNormalTopology.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="600"
+   height="250"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="CubeNormalTopology.svg">
+  <title
+     id="title3767">Cube Position Topology</title>
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="402.05603"
+     inkscape:cy="116.52924"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1609"
+     inkscape:window-height="862"
+     inkscape:window-x="276"
+     inkscape:window-y="130"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="true"
+     inkscape:snap-bbox-midpoints="false"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Cube Position Topology</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Lines"
+     transform="translate(0,-100)"
+     sodipodi:insensitive="true">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 75.5,200.5 c 100,0 100,0 100,0 l 0,100 -100,0 z"
+       id="path3800"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 75.5,200.5 -40,-30 100,0 40,30"
+       id="path3802"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 35.5,170.5 0,100 40,30"
+       id="path3806"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 4;stroke-dashoffset:0"
+       d="m 35.5,270.5 100,0 40,30"
+       id="path3808"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 4;stroke-dashoffset:0"
+       d="m 135.5,270.5 0,-100"
+       id="path3810"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:label="Dots"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-802.36215)">
+    <rect
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       id="rect3939"
+       width="10"
+       height="10"
+       x="-45"
+       y="110"
+       transform="translate(0,802.36215)"
+       ry="2"
+       rx="2">
+      <title
+         id="title3941">Normal Point</title>
+    </rect>
+    <use
+       x="0"
+       y="0"
+       xlink:href="#rect3939"
+       id="use3943"
+       transform="translate(165,35)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#rect3939"
+       id="use5408" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5408"
+       id="use5410"
+       transform="translate(125,5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5408"
+       id="use5412"
+       transform="matrix(1.2,0,0.99527624,0.75,-760.02876,299.34054)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5408"
+       id="use5416"
+       transform="matrix(1.2,0,0.99527624,0.75,-760.02876,199.34054)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5408"
+       id="use5418"
+       transform="matrix(0.8,0.62502521,0,1.1,87,-46.735206)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5408"
+       id="use5420"
+       transform="matrix(0.8,0.62502521,0,1.1,187,-46.735206)"
+       width="600"
+       height="250" />
+    <rect
+       style="fill:none;stroke:#b4b4b4;stroke-opacity:1"
+       id="rect5422"
+       width="89.999977"
+       height="90"
+       x="490.5"
+       y="822.86212"
+       rx="0"
+       ry="0" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5408"
+       id="use5424"
+       transform="translate(575.49997,-49.499917)"
+       width="600"
+       height="250" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 532.49997,863.86224 c -0.64241,-6.42411 -4,-13 -12,-16 -15.14765,-5.68037 -8.50484,-17.59806 -5,-19 10,-4 30,-4 40,0 3.52687,1.41075 9.99839,13.3756 -5,19 -8,3 -11.35648,9.56481 -12,16"
+       id="path5428"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cssssc" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5430"
+       transform="matrix(-1,0,0,-1,1071,1735.7243)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5432"
+       transform="matrix(0,-1,1,0,-332.36227,1403.3622)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5434"
+       transform="matrix(0,1,-1,0,1403.3622,332.36227)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#rect5422"
+       id="use5436"
+       transform="translate(1.7578125e-8,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5438"
+       transform="translate(1.7578125e-8,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5440"
+       transform="translate(1.7578125e-8,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5430"
+       id="use5442"
+       transform="translate(1.7578125e-8,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5432"
+       id="use5444"
+       transform="translate(1.7578125e-8,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5434"
+       id="use5446"
+       transform="translate(1.7578125e-8,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#rect5422"
+       id="use5448"
+       transform="translate(-110.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5450"
+       transform="translate(-110.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5452"
+       transform="translate(-110.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5430"
+       id="use5454"
+       transform="translate(-110.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5432"
+       id="use5456"
+       transform="translate(-110.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5434"
+       id="use5458"
+       transform="translate(-110.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#rect5422"
+       id="use5460"
+       transform="translate(-110.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5462"
+       transform="translate(-110.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5464"
+       transform="translate(-110.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5430"
+       id="use5466"
+       transform="translate(-110.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5432"
+       id="use5468"
+       transform="translate(-110.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5434"
+       id="use5470"
+       transform="translate(-110.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#rect5422"
+       id="use5472"
+       transform="translate(-220.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5474"
+       transform="translate(-220.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5476"
+       transform="translate(-220.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5430"
+       id="use5478"
+       transform="translate(-220.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5432"
+       id="use5480"
+       transform="translate(-220.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5434"
+       id="use5482"
+       transform="translate(-220.49998,-0.49997158)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#rect5422"
+       id="use5484"
+       transform="translate(-220.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5486"
+       transform="translate(-220.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5488"
+       transform="translate(-220.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5430"
+       id="use5490"
+       transform="translate(-220.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5432"
+       id="use5492"
+       transform="translate(-220.49998,119.50003)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5434"
+       id="use5494"
+       transform="translate(-220.49998,119.50003)"
+       width="600"
+       height="250" />
+  </g>
+</svg>
Add a comment to this file

Documents/Illumination/CubePositionTopology.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="600"
+   height="250"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="CubePositionTopology.svg">
+  <title
+     id="title3767">Cube Position Topology</title>
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="381.76883"
+     inkscape:cy="143.32856"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1609"
+     inkscape:window-height="862"
+     inkscape:window-x="276"
+     inkscape:window-y="130"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="true"
+     inkscape:snap-bbox-midpoints="false"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Cube Position Topology</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Lines"
+     transform="translate(0,-100)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 75.5,200.5 c 100,0 100,0 100,0 l 0,100 -100,0 z"
+       id="path3800"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 75.5,200.5 -40,-30 100,0 40,30"
+       id="path3802"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 35.5,170.5 0,100 40,30"
+       id="path3806"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 4;stroke-dashoffset:0"
+       d="m 35.5,270.5 100,0 40,30"
+       id="path3808"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 4;stroke-dashoffset:0"
+       d="m 135.5,270.5 0,-100"
+       id="path3810"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 335,135 c 40,-15 140,-15 180,0"
+       id="path3900"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path3900"
+       id="use3913"
+       transform="matrix(-1,0,0,-1,850,450)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3913"
+       id="use3915"
+       transform="matrix(0,-1,1,0,200,650)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3915"
+       id="use3917"
+       transform="matrix(-1,0,0,-1,849.5,450.5)"
+       width="700"
+       height="350" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 375,175 c 30,-10 70,-10 100,0"
+       id="path3919"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path3919"
+       id="use3921"
+       transform="matrix(-1,0,0,-1,850,450)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path3919"
+       id="use3923"
+       transform="matrix(0,-1,1,0,200,650)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3923"
+       id="use3925"
+       transform="matrix(-1,0,0,-1,850,450)"
+       width="700"
+       height="350" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 335,135 40,40"
+       id="path3927"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 375,275 -40,40"
+       id="path3929"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 475,275 40,40"
+       id="path3931"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 475,175 40,-40"
+       id="path3933"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:label="Dots"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-802.36215)">
+    <path
+       transform="translate(110,877.36215)"
+       d="m -30,125 c 0,2.76142 -2.238576,5 -5,5 -2.761424,0 -5,-2.23858 -5,-5 0,-2.76142 2.238576,-5 5,-5 2.761424,0 5,2.23858 5,5 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="125"
+       sodipodi:cx="-35"
+       id="use3773"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title3937">Position Dot</title>
+    </path>
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3773"
+       id="use3775"
+       transform="translate(100,0)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3773"
+       id="use3777"
+       transform="translate(0,-100)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3775"
+       id="use3779"
+       transform="translate(0,-100)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3777"
+       id="use3792"
+       transform="translate(-40,-30)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3792"
+       id="use3794"
+       transform="translate(0,100)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3794"
+       id="use3796"
+       transform="translate(100,0)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3796"
+       id="use3798"
+       transform="translate(0,-100)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3779"
+       id="use3884"
+       transform="translate(200,-25)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3884"
+       id="use3886"
+       transform="translate(100,0)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3884"
+       id="use3888"
+       transform="translate(0,100)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3886"
+       id="use3890"
+       transform="translate(0,100)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3884"
+       id="use3892"
+       transform="translate(-40,-40)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3892"
+       id="use3894"
+       transform="translate(0,180)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3892"
+       id="use3896"
+       transform="translate(180,0)"
+       width="700"
+       height="350" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use3894"
+       id="use3898"
+       transform="translate(180,0)"
+       width="700"
+       height="350" />
+  </g>
+</svg>
Add a comment to this file

Documents/Illumination/CubeTotalTopology.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="600"
+   height="250"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="CubeTotalTopology.svg"
+   inkscape:export-filename="D:\Projects\OpenGL Tutorials\Documents\Illumination\CubeTotalTopology.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <title
+     id="title3767">Cube Position Topology</title>
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.70710678"
+     inkscape:cx="480.34088"
+     inkscape:cy="-75.288245"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1609"
+     inkscape:window-height="862"
+     inkscape:window-x="276"
+     inkscape:window-y="130"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="true"
+     inkscape:snap-bbox-midpoints="false"
+     showguides="true"
+     inkscape:guide-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Cube Position Topology</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Lines"
+     transform="translate(0,-100)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 75.5,200.5 c 100,0 100,0 100,0 l 0,100 -100,0 z"
+       id="path3800"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 75.5,200.5 -40,-30 100,0 40,30"
+       id="path3802"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 35.5,170.5 0,100 40,30"
+       id="path3806"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 4;stroke-dashoffset:0"
+       d="m 35.5,270.5 100,0 40,30"
+       id="path3808"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 4;stroke-dashoffset:0"
+       d="m 135.5,270.5 0,-100"
+       id="path3810"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 531.99997,161.00012 C 529,150 517,137 512,135 c -6.75452,-2.70181 -10,-8 -10,-12 0,-4 1.02692,-5.90808 8,-8 10,-3 40,-3 50,0 7.18573,2.15572 8,4 8,8 0,4 -3.28632,9.31453 -10,12 -5,2 -17,15 -20.00003,26.00012"
+       id="path5428"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cssssssc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 490,120 c 30,-10 60,-10 90,0"
+       id="path5529"
+       inkscape:connector-curvature="0" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5531"
+       transform="matrix(-1,0,0,-1,1070,330.00012)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5529"
+       id="use5533"
+       transform="matrix(-1,0,0,-1,1070,330.00012)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5535"
+       transform="matrix(0,-1,1,0,369.99988,699.99997)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5529"
+       id="use5537"
+       transform="matrix(0,-1,1,0,369.99988,699.99997)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5539"
+       transform="matrix(0,1,-1,0,700.00012,-369.99997)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5529"
+       id="use5541"
+       transform="matrix(0,1,-1,0,700.00012,-369.99997)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5543"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5529"
+       id="use5545"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5531"
+       id="use5547"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5533"
+       id="use5549"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5535"
+       id="use5551"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5537"
+       id="use5553"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5539"
+       id="use5555"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5541"
+       id="use5557"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5569"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5529"
+       id="use5571"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5531"
+       id="use5573"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5533"
+       id="use5575"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5535"
+       id="use5577"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5537"
+       id="use5579"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5539"
+       id="use5581"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5541"
+       id="use5583"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5595"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5529"
+       id="use5597"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5531"
+       id="use5599"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5533"
+       id="use5601"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5535"
+       id="use5603"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5537"
+       id="use5605"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5539"
+       id="use5607"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5541"
+       id="use5609"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5621"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5529"
+       id="use5623"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5531"
+       id="use5625"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5533"
+       id="use5627"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5535"
+       id="use5629"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5537"
+       id="use5631"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5539"
+       id="use5633"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5541"
+       id="use5635"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5428"
+       id="use5647"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path5529"
+       id="use5649"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5531"
+       id="use5651"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5533"
+       id="use5653"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5535"
+       id="use5655"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5537"
+       id="use5657"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5539"
+       id="use5659"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5541"
+       id="use5661"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+  </g>
+  <g
+     inkscape:label="Dots"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-802.36215)"
+     style="display:inline">
+    <rect
+       rx="2"
+       ry="2"
+       y="947.36212"
+       x="120"
+       height="10"
+       width="10"
+       id="use3943"
+       style="fill:#000000;fill-opacity:1;stroke:none">
+      <title
+         id="title5747">Normal Point</title>
+    </rect>
+    <rect
+       rx="2"
+       ry="2"
+       y="917.36212"
+       x="80"
+       height="10"
+       width="10"
+       id="use5410"
+       style="fill:#000000;fill-opacity:1;stroke:none">
+      <title
+         id="title5723">Normal Point</title>
+    </rect>
+    <rect
+       rx="2.4000001"
+       ry="2.4924483"
+       transform="matrix(1,0,0.79863337,0.60181787,0,0)"
+       y="1634.4017"
+       x="-1211.2642"
+       height="12.462242"
+       width="12"
+       id="use5412"
+       style="fill:#000000;fill-opacity:1;stroke:none">
+      <title
+         id="title5727">Normal Point</title>
+    </rect>
+    <rect
+       rx="2.4000001"
+       ry="2.4924483"
+       transform="matrix(1,0,0.79863337,0.60181787,0,0)"
+       y="1468.2385"
+       x="-1078.5607"
+       height="12.462242"
+       width="12"
+       id="use5416"
+       style="fill:#000000;fill-opacity:1;stroke:none">
+      <title
+         id="title5731">Normal Point</title>
+    </rect>
+    <rect
+       rx="2.0304251"
+       ry="2.2"
+       transform="matrix(0.78801233,0.61565946,0,1,0,0)"
+       y="888.89166"
+       x="64.719803"
+       height="11"
+       width="10.152125"
+       id="use5418"
+       style="fill:#000000;fill-opacity:1;stroke:none">
+      <title
+         id="title5735">Normal Point</title>
+    </rect>
+    <rect
+       rx="2.0304251"
+       ry="2.2"
+       transform="matrix(0.78801233,0.61565946,0,1,0,0)"
+       y="810.76349"
+       x="191.62137"
+       height="11"
+       width="10.152125"
+       id="use5420"
+       style="fill:#000000;fill-opacity:1;stroke:none">
+      <title
+         id="title5739">Normal Point</title>
+    </rect>
+    <rect
+       rx="2"
+       ry="2"
+       y="862.36224"
+       x="530"
+       height="10"
+       width="10"
+       id="use5424"
+       style="fill:#000000;fill-opacity:1;stroke:none">
+      <title
+         id="title5743">Normal Point</title>
+    </rect>
+    <path
+       transform="translate(115,767.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5500"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5675">Position Point</title>
+    </path>
+    <path
+       transform="translate(215,767.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5502"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5679">Position Point</title>
+    </path>
+    <path
+       transform="translate(75,737.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5504"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5683">Position Point</title>
+    </path>
+    <path
+       transform="translate(175,737.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5506"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5687">Position Point</title>
+    </path>
+    <path
+       transform="translate(75,837.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5508"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5691">Position Point</title>
+    </path>
+    <path
+       transform="translate(115,867.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5510"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5695">Position Point</title>
+    </path>
+    <path
+       transform="translate(175,837.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5512"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5699">Position Point</title>
+    </path>
+    <path
+       transform="translate(215,867.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5514"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5703">Position Point</title>
+    </path>
+    <path
+       transform="translate(530,687.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5516"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5707">Position Point</title>
+    </path>
+    <path
+       transform="translate(620,687.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5518"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5711">Position Point</title>
+    </path>
+    <path
+       transform="translate(620,777.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5520"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5715">Position Point</title>
+    </path>
+    <path
+       transform="translate(530,777.36215)"
+       d="m -35,135 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       sodipodi:ry="5"
+       sodipodi:rx="5"
+       sodipodi:cy="135"
+       sodipodi:cx="-40"
+       id="use5522"
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       sodipodi:type="arc">
+      <title
+         id="title5719">Position Point</title>
+    </path>
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5559"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5516"
+       id="use5561"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5518"
+       id="use5563"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5520"
+       id="use5565"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5522"
+       id="use5567"
+       transform="translate(0.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5585"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5516"
+       id="use5587"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5518"
+       id="use5589"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5520"
+       id="use5591"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5522"
+       id="use5593"
+       transform="translate(-119.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5611"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5516"
+       id="use5613"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5518"
+       id="use5615"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5520"
+       id="use5617"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5522"
+       id="use5619"
+       transform="translate(-120,120)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5637"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5516"
+       id="use5639"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5518"
+       id="use5641"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5520"
+       id="use5643"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5522"
+       id="use5645"
+       transform="translate(-239.5,-0.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5424"
+       id="use5663"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5516"
+       id="use5665"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5518"
+       id="use5667"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5520"
+       id="use5669"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use5522"
+       id="use5671"
+       transform="translate(-239.5,119.5)"
+       width="600"
+       height="250" />
+  </g>
+</svg>

Documents/Illumination/Tutorial 09.xml

             separate topology. How is this possible?</para>
         <para>Consider a simple cube. It has 8 vertex positions. The topology between the positions
             of the cube is as follows:</para>
-        <!--TODO: diagram of cube position topology.-->
+        <figure>
+            <title>Cube Position Topology</title>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="CubePositionTopology.svg"/>
+                </imageobject>
+            </mediaobject>
+        </figure>
         <para>The topology diagram has the 8 different positions, with each position connected to
             three neighbors. The connections represent the edges of the cube faces, and the area
             bounded by connections represent the faces themselves. So each face has four edges and
             four positions.</para>
         <para>Now consider the topology of the normals of a cube. A cube has 6 faces, each of which
             has a distinct normal. The topology is a bit unorthodox:</para>
-        <!--TODO: diagram of cube normal topology. Which is 6 points, each with four tightly curved edges that point to themselves.-->
-        <para>Here, the points represent distinct normals, not positions in space. The connections
+        <figure>
+            <title>Cube Normal Topology</title>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="CubeNormalTopology.svg"/>
+                </imageobject>
+            </mediaobject>
+        </figure>
+        <para>The square points represent distinct normals, not positions in space. The connections
             between normals all loop back on themselves. That's because each vertex of each face
             uses the same normal. While the front face and the top face share two vertex positions
             in common, they share no vertex normals at all. Therefore, there is no topological
-            relation between the front normal and the top normal. Each normal is connected to
-            itself, but to nothing else.</para>
+            relation between the front normal and the top normal. Each normal value is connected to
+            itself four times, but it is connected to nothing else.</para>
         <para>We have 8 positions and 6 normals. They each have a unique topology over the mesh. How
             do we turn this into something we can render?</para>
         <para>If we knew nothing about OpenGL, this would be simple. We simply use the topologies to
 }</programlisting>
         <para>The first index in each element of the list pulls from the position array, and the
             second index pulls from the normal array. This list explicitly specifies the
-            relationship between faces and topology: the first face contains 4 positions, but uses
-            the same normal for all vertices. The second face shares two positions with the first,
-            but no normals.</para>
+            relationship between faces and topology: the first face (composed of two triangles)
+            contains 4 positions, but uses the same normal for all vertices. The second face shares
+            two positions with the first, but no normals.</para>
         <para>This is complicated in OpenGL because of one simple reason: we only get
                 <emphasis>one</emphasis> index list. When we render with an index array, every
             attribute array uses the same index. Therefore, what we need to do is convert the above
             index list into a list of unique combinations of vertex attributes. So each pair of
             indices must refer to a unique index.</para>
         <para>Consider the first face. It consists of 4 unique vertices; the index pairs {1, 0} and
-            {2, 0} are repeated. Since these pairs are repeats, we can collapse them; they will
-            refer to the same index. However, the fact that each vertex uses the same normal must be
-            ignored entirely. Therefore, the final index list we use for the first face is:</para>
+            {2, 0} are repeated, since we must draw triangles. Since these pairs are repeats, we can
+            collapse them; they will refer to the same index. However, the fact that each vertex
+            uses the same normal must be ignored entirely. Therefore, the final index list we use
+            for the first face is:</para>
         <programlisting language="cpp">{ 0, 1, 2, 1, 3, 2 }</programlisting>
         <para>The attribute arrays for this one face contain 4 positions and 4 normals. But while
             the positions are all different, the normals must all be the same value. Even though
             normals for the second face are all duplicates of each other. And there are two
             positions that are duplicated. Topologically speaking, our cube vertex topology looks
             like the following:</para>
-        <!--TODO: Diagram of vertex topology of a cube, with 6 separate faces.-->
-        <para>Each face is entirely distinct topologically from the rest. The two triangles in each
-            face share an edge, but that is all.</para>
+        <figure>
+            <title>Full Cube Topology</title>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="CubeTotalTopology.svg"/>
+                </imageobject>
+            </mediaobject>
+        </figure>
+        <para>Each face is entirely distinct topologically from the rest.</para>
         <para>In the end, this gives us 24 positions and 24 normals in our arrays. There will only
-            be 6 distinct normals and 8 distinct positions in the array, but there will be 24 of
-            each. So this represents a significant increase in our data size.</para>
-        <para>Do not be too concerned about the increase in data however. A cube, or other faceted
-            object, represents the worst-case scenario for this kind of conversion. Most actual
-            meshes of smooth objects have much more interconnected topologies.</para>
+            be 6 distinct normal values and 8 distinct position values in the array, but there will
+            be 24 of each. So this represents a significant increase in our data size.</para>
+        <para>Do not be too concerned about the increase in data however. A cube, or any other
+            faceted object, represents the worst-case scenario for this kind of conversion. Most
+            actual meshes of smooth objects have much more interconnected topologies.</para>
         <para>Mesh topology is something to be aware of, as is the ability to convert attribute
             topologies into forms that OpenGL can directly process. Each attribute has its own
             topology which affects how the index list is built. Different attributes can share the
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.