Roi Atalla avatar Roi Atalla committed d960750

Reformat and updated Example 12.1.

Comments (0)

Files changed (90)

.idea/codeStyleSettings.xml

             <emptyLine />
             <package name="com" withSubpackages="true" static="false" />
             <emptyLine />
+            <package name="org" withSubpackages="true" static="false" />
+            <emptyLine />
             <package name="net" withSubpackages="true" static="false" />
             <emptyLine />
-            <package name="org" withSubpackages="true" static="false" />
+            <package name="com.ra4king" withSubpackages="true" static="false" />
             <emptyLine />
             <package name="" withSubpackages="true" static="false" />
           </value>
         </option>
         <XML>
+          <option name="XML_SPACE_INSIDE_EMPTY_TAG" value="true" />
           <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
         </XML>
         <codeStyleSettings language="Groovy">
           </indentOptions>
         </codeStyleSettings>
         <codeStyleSettings language="JAVA">
+          <option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true" />
           <option name="SPACE_AFTER_TYPE_CAST" value="false" />
           <option name="SPACE_BEFORE_IF_PARENTHESES" value="false" />
           <option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />

.idea/encodings.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
-    <file url="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12" charset="UTF-8" />
+  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" defaultCharsetForPropertiesFiles="UTF-8">
+    <file url="PROJECT" charset="UTF-8" />
   </component>
 </project>
 
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="EclipseCodeFormatter">
+    <option name="defaultSettings" value="true" />
+    <option name="formatter" value="ECLIPSE" />
+    <option name="id" value="1361996749054" />
+    <option name="importOrder" value="java;javax;org;com;sun" />
+    <option name="importOrderConfigFilePath" value="$PROJECT_DIR$/../.metadata/EclipseImportOrder.importorder" />
+    <option name="importOrderFromFile" value="true" />
+    <option name="name" value="default" />
+    <option name="pathToConfigFileJava" value="$PROJECT_DIR$/../.metadata/EclipseFormatter.xml" />
+    <option name="selectedJavaProfile" value="Roi's Formatter" />
+  </component>
   <component name="EntryPointsManager">
     <entry_points version="2.0" />
   </component>

.idea/workspace.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="3bd3582b-975a-4915-888d-8e2c52d85938" name="Default" comment="">
+    <list default="true" id="3bd3582b-975a-4915-888d-8e2c52d85938" name="Default" comment="Reformat and updated Example 12.1.">
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Circle.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Circle.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorVector.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorVector.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorf.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorf.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example1/Example10_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example1/Example10_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example2/Example10_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example2/Example10_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example3/Example10_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example3/Example10_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example1/Example11_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example1/Example11_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example2/Example11_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example2/Example11_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example3/Example11_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example3/Example11_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/Example12_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/Example12_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter1/Example1_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter1/Example1_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter1/Example1_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter1/Example1_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter1/Example1_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter1/Example1_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter2/example1/Example2_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter2/example1/Example2_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Example2_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Example2_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter2/Example2_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter2/Example2_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example1/Example2_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example1/Example2_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter2/example2/Example2_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter2/example2/Example2_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Example2_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Example2_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter2/Example2_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter2/Example2_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example2/Example2_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example2/Example2_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Example2_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Example2_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter2/Example2_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter2/Example2_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example3/Example2_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example3/Example2_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Example2_4.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Example2_4.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter3/example1/Example3_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter3/example1/Example3_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_10.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_10.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_11.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_11.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_13.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_13.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_14.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_14.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter3/example2/Example3_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter3/example2/Example3_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter3/example3/Example3_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter3/example3/Example3_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter3/example4/Example3_4.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter3/example4/Example3_4.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_4.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_4.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_5.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_5.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_6.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_6.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_7.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_7.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_8.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb4/chapter3/Example3_8.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter4/example1/Example4_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter4/example1/Example4_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter4/example2/Example4_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter4/example2/Example4_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter4/example3/Example4_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter4/example3/Example4_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter4/example4/Example4_4.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter4/example4/Example4_4.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example1/Example5_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example1/Example5_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example2/Example5_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example2/Example5_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example3/Example5_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example3/Example5_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example4/Example5_4.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example4/Example5_4.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example5/Example5_5.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example5/Example5_5.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter6/example1/Example6_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter6/example1/Example6_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter6/example2/Example6_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter6/example2/Example6_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter6/example3/Example6_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter6/example3/Example6_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter6/example4/Example6_4.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter6/example4/Example6_4.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter7/example1/Example7_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter7/example1/Example7_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter7/example2/Example7_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter7/example2/Example7_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/Example8_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/Example8_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example2/Example8_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example2/Example8_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example3/Example8_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example3/Example8_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example4/Example8_4.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example4/Example8_4.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example1/Example9_1.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example1/Example9_1.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example2/Example9_2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example2/Example9_2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example3/Example9_3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example3/Example9_3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/GLProgram.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/GLProgram.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/LightManager.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/LightManager.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/LinearInterpolatorVector.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/LinearInterpolatorVector.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/LinearInterpolatorf.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/LinearInterpolatorf.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Matrix3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Matrix3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Matrix4.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Matrix4.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/MatrixStack.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/MatrixStack.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/Mesh.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/Mesh.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/MousePoles.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/MousePoles.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/PNGDecoder.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/PNGDecoder.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Quaternion.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Quaternion.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/Scene.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/Scene.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/ShaderProgram.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/ShaderProgram.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/test/Test.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/test/Test.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/TimedLinearInterpolatorVector.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/TimedLinearInterpolatorVector.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/TimedLinearInterpolatorf.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/TimedLinearInterpolatorf.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/Timer.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/Timer.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/Utils.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/Utils.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Vector.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Vector.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Vector2.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Vector2.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Vector3.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Vector3.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Vector4.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Vector4.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/WeightedLinearInterpolatorVector.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/WeightedLinearInterpolatorVector.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/WeightedLinearInterpolatorf.java" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/WeightedLinearInterpolatorf.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/codeStyleSettings.xml" afterPath="$PROJECT_DIR$/.idea/codeStyleSettings.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example1/example10.1.UnitCube.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example1/example10.1.UnitCube.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example1/example10.1.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example1/example10.1.UnitCylinder.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example2/example10.2.UnitCube.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example2/example10.2.UnitCube.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example2/example10.2.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example2/example10.2.UnitCylinder.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example3/example10.3.UnitCube.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example3/example10.3.UnitCube.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example3/example10.3.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example3/example10.3.UnitCylinder.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example1/example11.1.UnitCube.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example1/example11.1.UnitCube.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example1/example11.1.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example1/example11.1.UnitCylinder.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example2/example11.2.UnitCube.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example2/example11.2.UnitCube.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example2/example11.2.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example2/example11.2.UnitCylinder.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example3/example11.3.UnitCube.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example3/example11.3.UnitCube.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example3/example11.3.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example3/example11.3.UnitCylinder.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitCube.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitCube.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitCylinder.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitSphere.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitSphere.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/example8.1.Ship.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/example8.1.Ship.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example2/example8.2.Ship.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example2/example8.2.Ship.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example3/example8.3.Ship.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example3/example8.3.Ship.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example4/example8.4.Ship.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example4/example8.4.Ship.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example1/example9.1.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example1/example9.1.UnitCylinder.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example2/example9.2.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example2/example9.2.UnitCylinder.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example3/example9.3.UnitCylinder.xml" afterPath="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter9/example3/example9.3.UnitCylinder.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/encodings.xml" afterPath="$PROJECT_DIR$/.idea/encodings.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
     </list>
     <ignored path="OpenGL.iws" />
     <ignored path=".idea/workspace.xml" />
-    <file path="/a.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361777220123" ignored="false" />
+    <file path="/a.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1362017298781" ignored="false" />
     <file path="/fragment.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361741903715" ignored="false" />
-    <file path="/a.xml" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361777220765" ignored="false" />
-    <file path="/a.html" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361777219377" ignored="false" />
-    <file path="/a.groovy" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361777216935" ignored="false" />
-    <file path="/Dummy.txt" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361741554796" ignored="false" />
-    <file path="/Example12_1.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361702047705" ignored="false" />
+    <file path="/a.xml" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361850040520" ignored="false" />
+    <file path="/a.html" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361850041808" ignored="false" />
+    <file path="/a.groovy" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361850042481" ignored="false" />
+    <file path="/Dummy.txt" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1362017874469" ignored="false" />
+    <file path="/Example12_1.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361924497412" ignored="false" />
     <file path="/example12.1.DiffuseSpecular.frag" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361702005810" ignored="false" />
-    <file path="/LightManager.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361702255231" ignored="false" />
-    <file path="/sample.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361738575799" ignored="false" />
+    <file path="/LightManager.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361856937559" ignored="false" />
+    <file path="/sample.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361997836503" ignored="false" />
     <file path="/Scene.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361741235144" ignored="false" />
     <file path="$PROJECT_DIR$/bin/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/example8.1.Ship.xml" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361777249769" ignored="false" />
     <file path="$PROJECT_DIR$/bin/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example2/example8.2.Ship.xml" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361777249770" ignored="false" />
     <file path="$PROJECT_DIR$/bin/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example3/example11.3.UnitCylinder.xml" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361777249770" ignored="false" />
     <file path="$PROJECT_DIR$/bin/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example3/example11.3.UnitCube.xml" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361777249770" ignored="false" />
     <file path="$PROJECT_DIR$/bin/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example2/example11.2.UnitCylinder.xml" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361777249770" ignored="false" />
+    <file path="/example12.1.PosTransform.vert" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361857593731" ignored="false" />
+    <file path="$PROJECT_DIR$/../../../../../Downloads/Downloaded Folders/IntelliJ IDEA/platform/lang-impl/src/com/intellij/formatting/FormatProcessor.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361926988280" ignored="false" />
+    <file path="$PROJECT_DIR$/../../../../../Downloads/Downloaded Folders/IntelliJ IDEA/platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettings.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361947778494" ignored="false" />
+    <file path="/CommonCodeStyleSettings.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361943912554" ignored="false" />
+    <file path="$PROJECT_DIR$/../../../../../Downloads/Downloaded Folders/IntelliJ IDEA/java/java-impl/src/com/intellij/application/options/JavaIndentOptionsEditor.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361943925808" ignored="false" />
+    <file path="/JavaIndentOptionsEditor.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361943925425" ignored="false" />
+    <file path="/a.dummy" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361997911997" ignored="false" />
+    <file path="$PROJECT_DIR$/../../../../../Downloads/Downloaded Folders/IntelliJ IDEA/platform/platform-resources-en/src/messages/ApplicationBundle.properties" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361942803305" ignored="false" />
+    <file path="/ApplicationBundle.properties" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361942802444" ignored="false" />
+    <file path="$PROJECT_DIR$/../../../../../Downloads/Downloaded Folders/IntelliJ IDEA/system/conversion/Test4fc3a780.xml" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361942830409" ignored="false" />
+    <file path="$PROJECT_DIR$/../../../../../Downloads/Downloaded Folders/IntelliJ IDEA/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361947028016" ignored="false" />
+    <file path="/AbstractJavaBlock.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361947004208" ignored="false" />
+    <file path="$PROJECT_DIR$/../../../../../Downloads/Downloaded Folders/IntelliJ IDEA/java/java-impl/src/com/intellij/psi/codeStyle/arrangement/JavaRearranger.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361947416272" ignored="false" />
+    <file path="/ReformatCodeProcessor.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1361992964680" ignored="false" />
+    <file path="$PROJECT_DIR$/../../../../../Downloads/Downloaded Folders/IntelliJ IDEA/platform/lang-impl/src/com/intellij/codeInsight/actions/ReformatCodeProcessor.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1362003317321" ignored="false" />
+    <file path="/GLProgram.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1362018393427" ignored="false" />
+    <file path="/Example8_1.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1362018560645" ignored="false" />
+    <file path="/Mesh.java" changelist="3bd3582b-975a-4915-888d-8e2c52d85938" time="1362019507338" ignored="false" />
     <option name="TRACKING_ENABLED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
   <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
+  <component name="Commander">
+    <leftPanel />
+    <rightPanel />
+    <splitter proportion="0.5" />
+  </component>
   <component name="CreatePatchCommitExecutor">
     <option name="PATCH_PATH" value="" />
   </component>
     <favorites_list name="OpenGL" />
   </component>
   <component name="FileEditorManager">
-    <leaf />
+    <leaf>
+      <file leaf-file-name="Example11_1.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example1/Example11_1.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="66" column="24" selection-start="2103" selection-end="2103" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ConstVelLinearInterpolatorf.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorf.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="15" column="49" selection-start="363" selection-end="363" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Circle.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Circle.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="10" column="4" selection-start="232" selection-end="232" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Timer.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/Timer.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="76" column="4" selection-start="1378" selection-end="1378" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Mesh.java" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/Mesh.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="242" column="4" selection-start="7586" selection-end="7586" vertical-scroll-proportion="0.44298247">
+              <folding>
+                <element signature="e#435#520#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Example2_1.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example1/Example2_1.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="72" column="81" selection-start="2315" selection-end="2315" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Example2_2.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example2/Example2_2.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="17" column="141" selection-start="594" selection-end="594" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Example7_1.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter7/example1/Example7_1.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="200" column="4" selection-start="8539" selection-end="8539" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
   </component>
   <component name="FindManager">
     <FindUsagesManager>
       <setting name="OPEN_NEW_TAB" value="false" />
     </FindUsagesManager>
   </component>
+  <component name="GradleLocalSettings">
+    <option name="expandStates">
+      <map>
+        <entry key="OpenGL" value="true" />
+      </map>
+    </option>
+  </component>
   <component name="HgRememberedInputs">
     <option name="repositoryUrls">
       <list>
         <option value="https://ra4king@bitbucket.org/ra4king/lwjgl-shader-tutorials" />
+        <option value="http://ra4king@bitbucket.org/ra4king/lwjgl-shader-tutorials" />
       </list>
     </option>
   </component>
+  <component name="HighlightingSettingsPerFile">
+    <setting file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/Example12_1.java" root0="FORCE_HIGHLIGHTING" />
+  </component>
   <component name="IdeDocumentHistory">
     <option name="changedFiles">
       <list>
-        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.Ground.xml" />
-        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitCube.xml" />
-        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitCylinder.xml" />
-        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitSphere.xml" />
-        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/example12.1.DiffuseSpecularMtl.frag" />
-        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/example12.1.DiffuseSpecular.frag" />
-        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/Example12_1.java" />
         <option value="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorVector.java" />
         <option value="$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorf.java" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/Scene.java" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitTetrahedron.xml" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example3/Example11_3.java" />
         <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/LightManager.java" />
-        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/Scene.java" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/example12.1.PosTransform.vert" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/Example12_1.java" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/MatrixStack.java" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter8/example1/Example8_1.java" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Matrix3.java" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Quaternion.java" />
         <option value="$PROJECT_DIR$/src/com/ra4king/opengl/GLProgram.java" />
-        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitTetrahedron.xml" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/util/MousePoles.java" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/util/Timer.java" />
+        <option value="$PROJECT_DIR$/src/com/ra4king/opengl/util/Mesh.java" />
       </list>
     </option>
   </component>
+  <component name="MavenProjectNavigator">
+    <treeState />
+  </component>
   <component name="ProjectFrameBounds">
-    <option name="x" value="1912" />
+    <option name="x" value="-8" />
     <option name="y" value="-8" />
     <option name="width" value="1936" />
     <option name="height" value="1096" />
             <id>Android Lint</id>
           </State>
           <State>
-            <id>Code style issues</id>
-          </State>
-          <State>
-            <id>Concurrency annotation issues</id>
-          </State>
-          <State>
-            <id>Error handling</id>
-          </State>
-          <State>
-            <id>JUnit issues</id>
-          </State>
-          <State>
-            <id>Javadoc issues</id>
-          </State>
-          <State>
-            <id>Logging issues</id>
-          </State>
-          <State>
-            <id>Numeric issues</id>
-          </State>
-          <State>
-            <id>Portability issues</id>
-          </State>
-          <State>
-            <id>Probable bugs</id>
+            <id>Properties Files</id>
           </State>
           <State>
             <id>RELAX NG</id>
           </State>
           <State>
-            <id>Resource management issues</id>
+            <id>Spelling</id>
           </State>
           <State>
-            <id>Serialization issues</id>
-          </State>
-          <State>
-            <id>Threading issues</id>
-          </State>
-          <State>
-            <id>XPath</id>
+            <id>XML</id>
           </State>
           <State>
             <id>XSLT</id>
         </expanded-state>
         <selected-state>
           <State>
+            <id>Control flow issues</id>
+          </State>
+        </selected-state>
+      </profile-state>
+    </entry>
+    <entry key="Roi's Inspection">
+      <profile-state>
+        <expanded-state>
+          <State>
+            <id />
+          </State>
+        </expanded-state>
+        <selected-state>
+          <State>
             <id>Abstraction issues</id>
           </State>
         </selected-state>
           </PATH>
         </subPane>
       </pane>
+      <pane id="Scope" />
       <pane id="PackagesPane">
         <subPane />
       </pane>
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
     <property name="project.structure.last.edited" value="Modules" />
     <property name="project.structure.proportion" value="0.15" />
     <property name="options.splitter.main.proportions" value="0.3" />
+    <property name="recentsLimit" value="5" />
+    <property name="MemberChooser.sorted" value="false" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_treeWidth1" value="282" />
-    <property name="MemberChooser.sorted" value="false" />
-    <property name="recentsLimit" value="5" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_treeWidth2" value="288" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/../.metadata/EclipseImportOrder.importorder" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_treeWidth0" value="293" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_treeOrder0" value="0" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_treeOrder1" value="1" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatWidth2" value="289" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatWidth1" value="289" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatWidth0" value="289" />
-    <property name="options.lastSelected" value="preferences.sourceCode.XML" />
+    <property name="options.lastSelected" value="krasa.formatter.settings.ProjectSettingsComponent" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatOrder1" value="1" />
+    <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatOrder0" value="0" />
     <property name="project.structure.side.proportion" value="0.2" />
-    <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatOrder0" value="0" />
     <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatOrder3" value="3" />
+    <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatOrder2" value="2" />
     <property name="MemberChooser.copyJavadoc" value="false" />
-    <property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatOrder2" value="2" />
     <property name="restartRequiresConfirmation" value="true" />
+    <property name="options.searchVisible" value="true" />
     <property name="dynamic.classpath" value="false" />
-    <property name="options.searchVisible" value="true" />
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
       <option name="PROGRAM_PARAMETERS" />
       <method />
     </configuration>
+    <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
+      <module name="" />
+      <option name="TESTING_TYPE" value="0" />
+      <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
+      <option name="METHOD_NAME" value="" />
+      <option name="CLASS_NAME" value="" />
+      <option name="PACKAGE_NAME" value="" />
+      <option name="TARGET_SELECTION_MODE" value="EMULATOR" />
+      <option name="PREFERRED_AVD" value="" />
+      <option name="COMMAND_LINE" value="" />
+      <option name="WIPE_USER_DATA" value="false" />
+      <option name="DISABLE_BOOT_ANIMATION" value="false" />
+      <option name="NETWORK_SPEED" value="full" />
+      <option name="NETWORK_LATENCY" value="none" />
+      <option name="CLEAR_LOGCAT" value="false" />
+      <method />
+    </configuration>
     <configuration default="true" type="MavenRunConfiguration" factoryName="Maven">
       <MavenSettings>
         <option name="myGeneralSettings" />
       </MavenSettings>
       <method />
     </configuration>
-    <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
-      <module name="" />
-      <option name="TESTING_TYPE" value="0" />
-      <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
-      <option name="METHOD_NAME" value="" />
-      <option name="CLASS_NAME" value="" />
-      <option name="PACKAGE_NAME" value="" />
-      <option name="TARGET_SELECTION_MODE" value="EMULATOR" />
-      <option name="PREFERRED_AVD" value="" />
-      <option name="COMMAND_LINE" value="" />
-      <option name="WIPE_USER_DATA" value="false" />
-      <option name="DISABLE_BOOT_ANIMATION" value="false" />
-      <option name="NETWORK_SPEED" value="full" />
-      <option name="NETWORK_LATENCY" value="none" />
-      <option name="CLEAR_LOGCAT" value="false" />
-      <method />
-    </configuration>
     <configuration default="true" type="Remote" factoryName="Remote">
       <option name="USE_SOCKET_TRANSPORT" value="true" />
       <option name="SERVER_MODE" value="false" />
       <option name="PORT" value="5005" />
       <method />
     </configuration>
-    <configuration default="true" type="Applet" factoryName="Applet">
-      <module name="" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="HTML_FILE_NAME" />
-      <option name="HTML_USED" value="false" />
-      <option name="WIDTH" value="400" />
-      <option name="HEIGHT" value="300" />
-      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
-      <option name="VM_PARAMETERS" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <method />
-    </configuration>
     <configuration default="true" type="TestNG" factoryName="TestNG">
       <module name="" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
       <listeners />
       <method />
     </configuration>
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <module name="" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="HTML_FILE_NAME" />
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+      <option name="VM_PARAMETERS" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <method />
+    </configuration>
     <configuration default="true" type="Application" factoryName="Application">
       <option name="MAIN_CLASS_NAME" />
       <option name="VM_PARAMETERS" />
       <created>1361697332176</created>
       <updated>1361697332176</updated>
     </task>
+    <task id="LOCAL-00001" summary="Reformat.">
+      <created>1361777339796</created>
+      <updated>1361777339796</updated>
+    </task>
+    <option name="localTasksCounter" value="2" />
     <servers />
   </component>
   <component name="TodoView" selected-index="0">
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="1912" y="-8" width="1936" height="1096" extended-state="6" />
-    <editor active="false" />
+    <frame x="-8" y="-8" width="1936" height="1096" extended-state="6" />
+    <editor active="true" />
     <layout>
       <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32942432" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="JetGradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="JetGradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32977587" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32942432" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2497332" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32905984" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.18366013" sideWeight="0.14915694" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.021321962" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3304904" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3283582" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.18366013" sideWeight="0.17250325" order="1" side_tool="true" content_ui="tabs" />
-      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32977587" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.19370331" sideWeight="0.8496802" order="0" side_tool="false" content_ui="combo" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.15031983" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.19370331" sideWeight="0.6002132" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39978677" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.19936034" sideWeight="0.9898039" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3304904" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
-      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
     </layout>
   </component>
   <component name="VcsContentAnnotationSettings">
     <option name="MAXIMUM_HISTORY_ROWS" value="1000" />
     <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
     <option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />
-    <option name="LAST_COMMIT_MESSAGE" />
+    <option name="LAST_COMMIT_MESSAGE" value="Reformat and updated Example 12.1." />
     <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
     <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
-    <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
+    <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="true" />
     <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
     <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
     <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
     <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
     <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
     <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
+    <MESSAGE value="Reformat." />
+    <MESSAGE value="Reformat and updated Example 12.1." />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager />
     <option name="FILTER_TARGETS" value="false" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/example12.1.DiffuseSpecularMtl.frag">
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/Scene.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="39" column="0" selection-start="790" selection-end="790" vertical-scroll-proportion="1.2300557" />
+        <state line="147" column="4" selection-start="5322" selection-end="5322" vertical-scroll-proportion="0.30540037">
+          <folding />
+        </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/example12.1.DiffuseSpecular.frag">
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example2/Example10_2.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="75" column="0" selection-start="1904" selection-end="1904" vertical-scroll-proportion="0.4638219" />
+        <state line="56" column="11" selection-start="1847" selection-end="1847" vertical-scroll-proportion="0.33333334">
+          <folding />
+        </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/example12.1.UniformColor.frag">
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/math/Quaternion.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="10" column="0" selection-start="108" selection-end="108" vertical-scroll-proportion="0.3153989" />
+        <state line="3" column="13" selection-start="91" selection-end="91" vertical-scroll-proportion="0.05586592">
+          <folding>
+            <element signature="e#39#77#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/MousePoles.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="39" column="122" selection-start="1032" selection-end="1032" vertical-scroll-proportion="0.33333334">
+          <folding>
+            <element signature="e#1030#1067#1" expanded="true" />
+            <element signature="e#1083#1120#1" expanded="true" />
+            <element signature="e#1247#1284#1" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/GLProgram.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="176" column="80" selection-start="3589" selection-end="3589" vertical-scroll-proportion="0.33333334">
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#3585#3622#1" expanded="true" />
+          </folding>
+        </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorVector.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="31" column="8" selection-start="760" selection-end="760" vertical-scroll-proportion="0.6530612" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/Mesh.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="16" column="0" selection-start="434" selection-end="434" vertical-scroll-proportion="0.423676">
-          <folding>
-            <element signature="imports" expanded="false" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorf.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="29" column="8" selection-start="684" selection-end="684" vertical-scroll-proportion="0.76791275" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/LightManager.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="11" column="0" selection-start="529" selection-end="529" vertical-scroll-proportion="0.2403599">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/Scene.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="7" column="0" selection-start="252" selection-end="252" vertical-scroll-proportion="0.154345">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.Ground.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="16622" column="0" selection-start="376947" selection-end="376947" vertical-scroll-proportion="0.154345">
-          <folding>
-            <element signature="tag#attribute#0;tag#mesh#0" expanded="false" />
-            <element signature="tag#attribute#1;tag#mesh#0" expanded="false" />
-            <element signature="tag#attribute#2;tag#mesh#0" expanded="false" />
-            <element signature="tag#indices#0;tag#mesh#0" expanded="false" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitTetrahedron.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="2" column="0" selection-start="108" selection-end="108" vertical-scroll-proportion="0.044098575">
+        <state line="17" column="16" selection-start="405" selection-end="405" vertical-scroll-proportion="0.33333334">
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter11/example1/Example11_1.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="37" column="0" selection-start="1343" selection-end="1343" vertical-scroll-proportion="0.8158236" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/GLProgram.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="25" column="0" selection-start="579" selection-end="579" vertical-scroll-proportion="0.55123216">
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter5/example1/Example5_1.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="19" column="0" selection-start="515" selection-end="515" vertical-scroll-proportion="0.13229571" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/README.md">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="3" column="0" selection-start="21" selection-end="21" vertical-scroll-proportion="0.068456374" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example1/Example12_1.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="90" column="0" selection-start="3264" selection-end="3264" vertical-scroll-proportion="0.022049287">
+        <state line="66" column="24" selection-start="2103" selection-end="2103" vertical-scroll-proportion="0.0">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter12/example12.UnitCube.xml">
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example1/Example10_1.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
+        <state line="99" column="55" selection-start="3524" selection-end="3524" vertical-scroll-proportion="1.0875232">
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/interpolators/ConstVelLinearInterpolatorf.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="15" column="49" selection-start="363" selection-end="363" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/redbook/chapter2/Circle.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="10" column="4" selection-start="232" selection-end="232" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/Timer.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="76" column="4" selection-start="1378" selection-end="1378" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example1/Example2_1.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="72" column="81" selection-start="2315" selection-end="2315" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/superbible/osb5/chapter2/example2/Example2_2.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="17" column="141" selection-start="594" selection-end="594" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/arcsynthesis/gl33/chapter7/example1/Example7_1.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="200" column="4" selection-start="8539" selection-end="8539" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk7/src.zip!/java/util/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="364" column="5" selection-start="13634" selection-end="13634" vertical-scroll-proportion="0.556797">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/ra4king/opengl/util/Mesh.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="242" column="4" selection-start="7586" selection-end="7586" vertical-scroll-proportion="0.44298247">
+          <folding>
+            <element signature="e#435#520#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
   <component name="masterDetails">
     <states>
           </splitter-proportions>
         </settings>
       </state>
+      <state key="Copyright.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
       <state key="FacetStructureConfigurable.UI">
         <settings>
           <last-edited>No facets are configured</last-edited>

src/com/ra4king/opengl/GLProgram.java

 
 public abstract class GLProgram {
 	private int fps;
-
+	
 	public GLProgram(boolean vsync) {
 		try {
 			Display.setFullscreen(true);
 			exc.printStackTrace();
 		}
 	}
-
+	
 	public GLProgram(String name, int width, int height, boolean resizable) {
 		Display.setTitle(name);
-
+		
 		try {
 			Display.setDisplayMode(new DisplayMode(width, height));
 		} catch(Exception exc) {
 			exc.printStackTrace();
 		}
-
+		
 		Display.setResizable(resizable);
-
+		
 		fps = 60;
 	}
-
+	
 	public void setFPS(int fps) {
 		this.fps = fps;
 	}
-
+	
 	public int getFPS() {
 		return fps;
 	}
-
+	
 	public final void run() {
 		try {
 			Display.create();
 			exc.printStackTrace();
 			System.exit(1);
 		}
-
+		
 		gameLoop();
 	}
-
+	
 	public final void run(boolean core) {
 		try {
 			Display.create(new PixelFormat(), core ? new ContextAttribs(3, 3) : new ContextAttribs());
 			exc.printStackTrace();
 			System.exit(1);
 		}
-
+		
 		gameLoop();
 	}
-
+	
 	public final void run(int major, int minor) {
 		try {
 			Display.create(new PixelFormat(), new ContextAttribs(major, minor));
 			exc.printStackTrace();
 			System.exit(1);
 		}
-
+		
 		gameLoop();
 	}
-
+	
 	public final void run(PixelFormat format) {
 		run(format, new ContextAttribs());
 	}
-
+	
 	public final void run(PixelFormat format, ContextAttribs attribs) {
 		try {
 			Display.create(format, attribs);
 			exc.printStackTrace();
 			System.exit(1);
 		}
-
+		
 		gameLoop();
 	}
-
+	
 	private void gameLoop() {
 		try {
 			init();
-
+			
 			checkGLError("init");
-
+			
 			resized();
-
+			
 			checkGLError("resized");
-
+			
 			long lastTime, lastFPS;
 			lastTime = lastFPS = System.nanoTime();
 			int frames = 0;
-
+			
 			while(!Display.isCloseRequested() && !shouldStop()) {
 				long deltaTime = System.nanoTime() - lastTime;
 				lastTime += deltaTime;
-
+				
 				if(Display.wasResized())
 					resized();
-
+				
 				while(Keyboard.next()) {
 					if(Keyboard.getEventKeyState())
 						keyPressed(Keyboard.getEventKey(), Keyboard.getEventCharacter());
 					else
 						keyReleased(Keyboard.getEventKey(), Keyboard.getEventCharacter());
 				}
-
+				
 				update(deltaTime);
-
+				
 				checkGLError("update");
-
+				
 				render();
-
+				
 				checkGLError("render");
-
+				
 				Display.update();
-
+				
 				frames++;
 				if(System.nanoTime() - lastFPS >= 1e9) {
 					System.out.println("FPS: ".concat(String.valueOf(frames)));
 					lastFPS += 1e9;
 					frames = 0;
 				}
-
+				
 				Display.sync(fps);
 			}
 		} catch(Throwable exc) {
 			destroy();
 		}
 	}
-
+	
 	public void checkGLError(String event) {
 		int error;
-		while((error = glGetError()) != GL_NO_ERROR)
+		if((error = glGetError()) != GL_NO_ERROR)
 			throw new RuntimeException("OpenGL Error during " + event + ": " + gluErrorString(error));
 	}
-
+	
 	public int getWidth() {
 		return Display.getWidth();
 	}
-
+	
 	public int getHeight() {
 		return Display.getHeight();
 	}
-
+	
 	public abstract void init();
-
+	
 	public void resized() {
 		glViewport(0, 0, getWidth(), getHeight());
 	}
-
+	
 	public boolean shouldStop() {
 		return Keyboard.isKeyDown(Keyboard.KEY_ESCAPE);
 	}
-
-	public void keyPressed(int key, char c) {
-	}
-
-	public void keyReleased(int key, char cs) {
-	}
-
-	public void update(long deltaTime) {
-	}
-
+	
+	public void keyPressed(int key, char c) {}
+	
+	@SuppressWarnings("UnusedParameters")
+	public void keyReleased(int key, @SuppressWarnings("UnusedParameters") char cs) {}
+	
+	public void update(long deltaTime) {}
+	
 	public abstract void render();
-
+	
 	public void destroy() {
 		Display.destroy();
 		System.exit(0);
 	}
-
+	
 	protected String readFromFile(String file) {
 		try(BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(file), "UTF-8"))) {
 			StringBuilder s = new StringBuilder();
 			String l;
-
+			
 			while((l = reader.readLine()) != null)
 				s.append(l).append('\n');
-
+			
 			return s.toString();
 		} catch(Exception exc) {
 			throw new RuntimeException("Failure reading file: " + file, exc);

src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example1/Example10_1.java

 	public static void main(String[] args) {
 		new Example10_1().run(true);
 	}
-
+	
 	private ProgramData whiteDiffuseColor;
 	private ProgramData vertexDiffuseColor;
-
+	
 	private UnlitProgramData unlit;
-
+	
 	private int projectionUniformBuffer;
 	private final int projectionBlockIndex = 2;
-
+	
 	private Mesh cylinderMesh;
 	private Mesh planeMesh;
 	private Mesh cubeMesh;
-
+	
 	private ViewPole viewPole;
 	private ObjectPole objectPole;
-
+	
 	private Timer lightTimer = new Timer(Timer.Type.LOOP, 5);
-
+	
 	private boolean drawColoredCyl, drawLight;
-
+	
 	public Example10_1() {
 		super("Example 10.1 - Vertex Point Lighting", 500, 500, true);
 	}
-
+	
 	@Override
 	public void init() {
 		glClearColor(0, 0, 0, 0);
 		glClearDepth(1);
-
+		
 		ViewData initialViewData = new ViewData(new Vector3(0, 0.5f, 0), new Quaternion(0.3826834f, 0, 0, 0.92387953f), 5, 0);
 		ViewScale viewScale = new ViewScale(3, 20, 1.5f, 0.5f, 0, 0, 90f / 250f);
 		ObjectData initialObjectData = new ObjectData(new Vector3(0, 0.5f, 0), new Quaternion());
-
+		
 		viewPole = new ViewPole(initialViewData, viewScale, MouseButton.LEFT_BUTTON, false);
 		objectPole = new ObjectPole(initialObjectData, 90f / 250f, MouseButton.RIGHT_BUTTON, viewPole);
-
+		
 		whiteDiffuseColor = loadLitShader("example10.1.VertexLighting_PN.vert", "example10.1.frag");
 		vertexDiffuseColor = loadLitShader("example10.1.VertexLighting_PCN.vert", "example10.1.frag");
 		unlit = loadUnlitShader("example10.1.Transform.vert", "example10.1.UniformColor.frag");
-
+		
 		try {
 			cylinderMesh = new Mesh(getClass().getResource("example10.1.UnitCylinder.xml"));
 			planeMesh = new Mesh(getClass().getResource("example10.1.LargePlane.xml"));
 			exc.printStackTrace();
 			destroy();
 		}
-
+		
 		glEnable(GL_CULL_FACE);
 		glCullFace(GL_BACK);
 		glFrontFace(GL_CW);
-
+		
 		glEnable(GL_DEPTH_TEST);
 		glDepthMask(true);
 		glDepthFunc(GL_LEQUAL);
 		glDepthRange(0, 1);
 		glEnable(GL_DEPTH_CLAMP);
-
+		
 		projectionUniformBuffer = glGenBuffers();
 		glBindBuffer(GL_UNIFORM_BUFFER, projectionUniformBuffer);
 		glBufferData(GL_UNIFORM_BUFFER, 16 * 4, GL_DYNAMIC_DRAW);
 		glBindBufferRange(GL_UNIFORM_BUFFER, projectionBlockIndex, projectionUniformBuffer, 0, 16 * 4);
 		glBindBuffer(GL_UNIFORM_BUFFER, 0);
 	}
-
+	
 	private ProgramData loadLitShader(String vertFile, String fragFile) {
 		ProgramData data = new ProgramData(new ShaderProgram(readFromFile(vertFile), readFromFile(fragFile)));
 		data.modelToCameraMatrixUniform = glGetUniformLocation(data.program.getProgram(), "modelToCameraMatrix");
 		data.lightPosUniform = glGetUniformLocation(data.program.getProgram(), "lightPos");
 		data.lightIntensityUniform = glGetUniformLocation(data.program.getProgram(), "lightIntensity");
 		data.ambientIntensityUniform = glGetUniformLocation(data.program.getProgram(), "ambientIntensity");
-
+		
 		int projectionBlock = glGetUniformBlockIndex(data.program.getProgram(), "Projection");
 		glUniformBlockBinding(data.program.getProgram(), projectionBlock, projectionBlockIndex);
-
+		
 		return data;
 	}
-
+	
 	private UnlitProgramData loadUnlitShader(String vertFile, String fragFile) {
 		UnlitProgramData data = new UnlitProgramData(new ShaderProgram(readFromFile(vertFile), readFromFile(fragFile)));
 		data.modelToCameraMatrixUniform = glGetUniformLocation(data.program.getProgram(), "modelToCameraMatrix");
 		data.objectColorUniform = glGetUniformLocation(data.program.getProgram(), "objectColor");
-
+		
 		int projectionBlock = glGetUniformBlockIndex(data.program.getProgram(), "Projection");
 		glUniformBlockBinding(data.program.getProgram(), projectionBlock, projectionBlockIndex);
-
+		
 		return data;
 	}
-
+	
 	@Override
 	public void resized() {
 		super.resized();
-
+		
 		glBindBuffer(GL_UNIFORM_BUFFER, projectionUniformBuffer);
 		glBufferSubData(GL_UNIFORM_BUFFER, 0, new Matrix4().clearToPerspectiveDeg(45, getWidth(), getHeight(), 1, 1000).toBuffer());
 		glBindBuffer(GL_UNIFORM_BUFFER, 0);
 	}
-
+	
 	@Override
 	public void update(long deltaTime) {
 		Utils.updateMousePoles(viewPole, objectPole);
-
+		
 		lightTimer.update(deltaTime);
-
+		
 		float speed = (deltaTime / (float)1e9) * (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) ? 0.5f : 2f);
-
+		
 		if(Keyboard.isKeyDown(Keyboard.KEY_I))
 			lightHeight += speed;
 		if(Keyboard.isKeyDown(Keyboard.KEY_K))
 			lightRadius += speed;
 		if(Keyboard.isKeyDown(Keyboard.KEY_J))
 			lightRadius -= speed;
-
+		
 		if(lightRadius < 0.2f)
 			lightRadius = 0.2f;
 	}
-
+	
 	private float lightHeight = 1.5f, lightRadius = 1;
-
+	
 	@Override
 	public void keyPressed(int key, char c) {
 		switch(key) {
 				break;
 		}
 	}
-
+	
 	private Vector4 calcLightPosition() {
 		float currTime = lightTimer.getAlpha();
-
+		
 		Vector4 ret = new Vector4(0, lightHeight, 0, 1);
 		ret.x((float)Math.cos(currTime * 2 * Math.PI) * lightRadius);
 		ret.z((float)Math.sin(currTime * 2 * Math.PI) * lightRadius);
-
+		
 		return ret;
 	}
-
+	
 	@Override
 	public void render() {
 		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
+		
 		MatrixStack modelMatrix = new MatrixStack();
 		modelMatrix.setTop(viewPole.calcMatrix());
-
+		
 		Vector4 worldLightPos = calcLightPosition();
 		Vector4 lightPosCameraSpace = modelMatrix.getTop().mult(worldLightPos);
-
+		
 		whiteDiffuseColor.program.begin();
 		glUniform3(whiteDiffuseColor.lightPosUniform, lightPosCameraSpace.toBuffer());
 		vertexDiffuseColor.program.begin();
 		glUniform3(vertexDiffuseColor.lightPosUniform, lightPosCameraSpace.toBuffer());
 		vertexDiffuseColor.program.end();
-
+		
 		whiteDiffuseColor.program.begin();
 		glUniform4f(whiteDiffuseColor.lightIntensityUniform, 0.8f, 0.8f, 0.8f, 1);
 		glUniform4f(whiteDiffuseColor.ambientIntensityUniform, 0.2f, 0.2f, 0.2f, 1);
 		glUniform4f(vertexDiffuseColor.lightIntensityUniform, 0.8f, 0.8f, 0.8f, 1);
 		glUniform4f(vertexDiffuseColor.ambientIntensityUniform, 0.2f, 0.2f, 0.2f, 1);
 		vertexDiffuseColor.program.end();
-
+		
 		{
 			modelMatrix.pushMatrix();
-
+			
 			{
 				modelMatrix.pushMatrix();
-
+				
 				whiteDiffuseColor.program.begin();
 				glUniformMatrix4(whiteDiffuseColor.modelToCameraMatrixUniform, false, modelMatrix.getTop().toBuffer());
 				glUniformMatrix3(whiteDiffuseColor.normalModelToCameraMatrixUniform, false, new Matrix3(modelMatrix.getTop()).toBuffer());
 				planeMesh.render();
 				whiteDiffuseColor.program.end();
-
+				
 				modelMatrix.popMatrix();
 			}
-
+			
 			{
 				modelMatrix.pushMatrix();
-
+				
 				modelMatrix.getTop().mult(objectPole.calcMatrix());
-
+				
 				if(drawColoredCyl) {
 					vertexDiffuseColor.program.begin();
 					glUniformMatrix4(vertexDiffuseColor.modelToCameraMatrixUniform, false, modelMatrix.getTop().toBuffer());
 					cylinderMesh.render("lit");
 					whiteDiffuseColor.program.end();
 				}
-
+				
 				modelMatrix.popMatrix();
 			}
-
+			
 			if(drawLight) {
 				modelMatrix.pushMatrix();
-
+				
 				modelMatrix.getTop().translate(new Vector3(worldLightPos)).scale(0.1f, 0.1f, 0.1f);
-
+				
 				unlit.program.begin();
 				glUniformMatrix4(unlit.modelToCameraMatrixUniform, false, modelMatrix.getTop().toBuffer());
 				glUniform4f(unlit.objectColorUniform, 0.8078f, 0.8706f, 0.9922f, 1);
 				cubeMesh.render("flat");
 				unlit.program.end();
-
+				
 				modelMatrix.popMatrix();
 			}
-
+			
 			modelMatrix.popMatrix();
 		}
 	}
-
+	
 	private static class ProgramData {
 		private ShaderProgram program;
-
+		
 		private int lightPosUniform;
 		private int lightIntensityUniform;
 		private int ambientIntensityUniform;
-
+		
 		private int modelToCameraMatrixUniform;
 		private int normalModelToCameraMatrixUniform;
-
+		
 		public ProgramData(ShaderProgram program) {
 			this.program = program;
 		}
 	}
-
+	
 	private static class UnlitProgramData {
 		private ShaderProgram program;
-
+		
 		private int objectColorUniform;
 		private int modelToCameraMatrixUniform;
-
+		
 		public UnlitProgramData(ShaderProgram program) {
 			this.program = program;
 		}

src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example2/Example10_2.java

 	public static void main(String[] args) {
 		new Example10_2().run(true);
 	}
-
+	
 	private ProgramData whiteDiffuseColor;
 	private ProgramData vertexDiffuseColor;
 	private ProgramData fragWhiteDiffuseColor;
 	private ProgramData fragVertexDiffuseColor;
-
+	
 	private UnlitProgramData unlit;
-
+	
 	private int projectionUniformBuffer;
 	private final int projectionBlockIndex = 2;
-
+	
 	private Mesh cylinderMesh;
 	private Mesh planeMesh;
 	private Mesh cubeMesh;
-
+	
 	private ViewPole viewPole;
 	private ObjectPole objectPole;
-
+	
 	private Timer lightTimer = new Timer(Timer.Type.LOOP, 5);
-
+	
 	private float lightHeight = 1.5f, lightRadius = 1;
-
+	
 	private boolean useFragmentLighting = true, drawColoredCyl, drawLight, scaleCyl;
-
+	
 	public Example10_2() {
 		super("Example 10.2 - Fragment Point Lighting", 500, 500, true);
 	}
-
+	
 	@Override
 	public void init() {
 		glClearColor(0, 0, 0, 0);
 		glClearDepth(1);
-
+		
 		ViewData initialViewData = new ViewData(new Vector3(0, 0.5f, 0), new Quaternion(0.3826834f, 0, 0, 0.92387953f), 5, 0);
 		ViewScale viewScale = new ViewScale(3, 20, 1.5f, 0.5f, 0, 0, 90f / 250f);
 		ObjectData initialObjectData = new ObjectData(new Vector3(0, 0.5f, 0), new Quaternion());
-
+		
 		viewPole = new ViewPole(initialViewData, viewScale, MouseButton.LEFT_BUTTON, false);
 		objectPole = new ObjectPole(initialObjectData, 90f / 250f, MouseButton.RIGHT_BUTTON, viewPole);
-
+		
 		whiteDiffuseColor = loadLitShader("example10.2.VertexLighting_PN.vert", "example10.2.frag");
 		vertexDiffuseColor = loadLitShader("example10.2.VertexLighting_PCN.vert", "example10.2.frag");
 		fragWhiteDiffuseColor = loadLitShader("example10.2.FragLighting_PN.vert", "example10.2.FragLighting.frag");
 		fragVertexDiffuseColor = loadLitShader("example10.2.FragLighting_PCN.vert", "example10.2.FragLighting.frag");
-
+		
 		unlit = loadUnlitShader("example10.2.Transform.vert", "example10.2.UniformColor.frag");
-
+		
 		try {
 			cylinderMesh = new Mesh(getClass().getResource("example10.2.UnitCylinder.xml"));
 			planeMesh = new Mesh(getClass().getResource("example10.2.LargePlane.xml"));
 			exc.printStackTrace();
 			destroy();
 		}
-
+		
 		glEnable(GL_CULL_FACE);
 		glCullFace(GL_BACK);
 		glFrontFace(GL_CW);
-
+		
 		glEnable(GL_DEPTH_TEST);
 		glDepthMask(true);
 		glDepthFunc(GL_LEQUAL);
 		glDepthRange(0, 1);
 		glEnable(GL_DEPTH_CLAMP);
-
+		
 		projectionUniformBuffer = glGenBuffers();
 		glBindBuffer(GL_UNIFORM_BUFFER, projectionUniformBuffer);
 		glBufferData(GL_UNIFORM_BUFFER, 16 * 4, GL_DYNAMIC_DRAW);
 		glBindBufferRange(GL_UNIFORM_BUFFER, projectionBlockIndex, projectionUniformBuffer, 0, 16 * 4);
 		glBindBuffer(GL_UNIFORM_BUFFER, 0);
 	}
-
+	
 	private ProgramData loadLitShader(String vertFile, String fragFile) {
 		ProgramData data = new ProgramData(new ShaderProgram(readFromFile(vertFile), readFromFile(fragFile)));
 		data.modelToCameraMatrixUniform = glGetUniformLocation(data.program.getProgram(), "modelToCameraMatrix");
 		data.modelSpaceLightPosUniform = glGetUniformLocation(data.program.getProgram(), "modelSpaceLightPos");
 		data.lightIntensityUniform = glGetUniformLocation(data.program.getProgram(), "lightIntensity");
 		data.ambientIntensityUniform = glGetUniformLocation(data.program.getProgram(), "ambientIntensity");
-
+		
 		int projectionBlock = glGetUniformBlockIndex(data.program.getProgram(), "Projection");
 		glUniformBlockBinding(data.program.getProgram(), projectionBlock, projectionBlockIndex);
-
+		
 		return data;
 	}
-
+	
 	private UnlitProgramData loadUnlitShader(String vertFile, String fragFile) {
 		UnlitProgramData data = new UnlitProgramData(new ShaderProgram(readFromFile(vertFile), readFromFile(fragFile)));
 		data.modelToCameraMatrixUniform = glGetUniformLocation(data.program.getProgram(), "modelToCameraMatrix");
 		data.objectColorUniform = glGetUniformLocation(data.program.getProgram(), "objectColor");
-
+		
 		int projectionBlock = glGetUniformBlockIndex(data.program.getProgram(), "Projection");
 		glUniformBlockBinding(data.program.getProgram(), projectionBlock, projectionBlockIndex);
-
+		
 		return data;
 	}
-
+	
 	@Override
 	public void resized() {
 		super.resized();
-
+		
 		glBindBuffer(GL_UNIFORM_BUFFER, projectionUniformBuffer);
 		glBufferSubData(GL_UNIFORM_BUFFER, 0, new Matrix4().clearToPerspectiveDeg(45, getWidth(), getHeight(), 1, 1000).toBuffer());
 		glBindBuffer(GL_UNIFORM_BUFFER, 0);
 	}
-
+	
 	@Override
 	public void update(long deltaTime) {
 		Utils.updateMousePoles(viewPole, objectPole);
-
+		
 		lightTimer.update(deltaTime);
-
+		
 		float speed = (deltaTime / (float)1e9) * (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) ? 0.5f : 2f);
-
+		
 		if(Keyboard.isKeyDown(Keyboard.KEY_I))
 			lightHeight += speed;
 		if(Keyboard.isKeyDown(Keyboard.KEY_K))
 			lightRadius += speed;
 		if(Keyboard.isKeyDown(Keyboard.KEY_J))
 			lightRadius -= speed;
-
+		
 		if(lightRadius < 0.2f)
 			lightRadius = 0.2f;
 	}
-
+	
 	@Override
 	public void keyPressed(int key, char c) {
 		switch(key) {
 				break;
 		}
 	}
-
+	
 	private Vector4 calcLightPosition() {
 		float currTime = lightTimer.getAlpha();
-
+		
 		Vector4 ret = new Vector4(0, lightHeight, 0, 1);
 		ret.x((float)Math.cos(currTime * 2 * Math.PI) * lightRadius);
 		ret.z((float)Math.sin(currTime * 2 * Math.PI) * lightRadius);
-
+		
 		return ret;
 	}
-
+	
 	@Override
 	public void render() {
 		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
+		
 		MatrixStack modelMatrix = new MatrixStack();
 		modelMatrix.setTop(viewPole.calcMatrix());
-
+		
 		Vector4 worldLightPos = calcLightPosition();
 		Vector4 lightPosCameraSpace = modelMatrix.getTop().mult(worldLightPos);
-
+		
 		ProgramData whiteProgram, vertColorProgram;
-
+		
 		if(useFragmentLighting) {
 			whiteProgram = fragWhiteDiffuseColor;
 			vertColorProgram = fragVertexDiffuseColor;
 			whiteProgram = whiteDiffuseColor;
 			vertColorProgram = vertexDiffuseColor;
 		}
-
+		
 		whiteProgram.program.begin();
 		glUniform4f(whiteProgram.lightIntensityUniform, 0.8f, 0.8f, 0.8f, 1);
 		glUniform4f(whiteProgram.ambientIntensityUniform, 0.2f, 0.2f, 0.2f, 1);
 		glUniform4f(vertColorProgram.lightIntensityUniform, 0.8f, 0.8f, 0.8f, 1);
 		glUniform4f(vertColorProgram.ambientIntensityUniform, 0.2f, 0.2f, 0.2f, 1);
 		vertColorProgram.program.end();
-
+		
 		{
 			modelMatrix.pushMatrix();
-
+			
 			{
 				modelMatrix.pushMatrix();
-
+				
 				whiteProgram.program.begin();
 				glUniformMatrix4(whiteProgram.modelToCameraMatrixUniform, false, modelMatrix.getTop().toBuffer());
-
+				
 				Vector4 lightPosModelSpace = new Matrix4(modelMatrix.getTop()).inverse().mult(lightPosCameraSpace);
 				glUniform3(whiteProgram.modelSpaceLightPosUniform, lightPosModelSpace.toBuffer());
-
+				
 				planeMesh.render();
 				whiteProgram.program.end();
-
+				
 				modelMatrix.popMatrix();
 			}
-
+			
 			{
 				modelMatrix.pushMatrix();
-
+				
 				modelMatrix.getTop().mult(objectPole.calcMatrix());
-
+				
 				if(scaleCyl)
 					modelMatrix.getTop().scale(1, 1, 0.2f);
-
+				
 				Vector4 lightPosModelSpace = new Matrix4(modelMatrix.getTop()).inverse().mult(lightPosCameraSpace);
 				if(drawColoredCyl) {
 					vertColorProgram.program.begin();
 					cylinderMesh.render("lit");
 					whiteProgram.program.end();
 				}
-
+				
 				modelMatrix.popMatrix();
 			}
-
+			
 			if(drawLight) {
 				modelMatrix.pushMatrix();
-
+				
 				modelMatrix.getTop().translate(new Vector3(worldLightPos));
 				modelMatrix.getTop().scale(0.1f, 0.1f, 0.1f);
-
+				
 				unlit.program.begin();
 				glUniformMatrix4(unlit.modelToCameraMatrixUniform, false, modelMatrix.getTop().toBuffer());
 				glUniform4f(unlit.objectColorUniform, 0.8078f, 0.8706f, 0.9922f, 1);
 				cubeMesh.render("flat");
-
+				
 				modelMatrix.popMatrix();
 			}
-
+			
 			modelMatrix.popMatrix();
 		}
 	}
-
+	
 	private static class ProgramData {
 		private ShaderProgram program;
-
+		
 		private int modelSpaceLightPosUniform;
 		private int lightIntensityUniform;
 		private int ambientIntensityUniform;
-
+		
 		private int modelToCameraMatrixUniform;
-
+		
 		public ProgramData(ShaderProgram program) {
 			this.program = program;
 		}
 	}
-
+	
 	private static class UnlitProgramData {
 		private ShaderProgram program;
-
+		
 		private int objectColorUniform;
 		private int modelToCameraMatrixUniform;
-
+		
 		public UnlitProgramData(ShaderProgram program) {
 			this.program = program;
 		}

src/com/ra4king/opengl/arcsynthesis/gl33/chapter10/example3/Example10_3.java

 	public static void main(String[] args) {
 		new Example10_3().run(true);
 	}
-
+	
 	private ProgramData fragWhiteDiffuseColor;
 	private ProgramData fragVertexDiffuseColor;
-
+	
 	private UnlitProgramData unlit;
-
+	
 	private int projectionUniformBuffer;
 	private int unprojectionUniformBuffer;
-
+	
 	private final int projectionBlockIndex = 2;
 	private final int unprojectionBlockIndex = 1;
-
+	
 	private Mesh cylinderMesh;
 	private Mesh planeMesh;
 	private Mesh cubeMesh;
-
+	
 	private ViewPole viewPole;
 	private ObjectPole objectPole;
-
+	
 	private Timer lightTimer = new Timer(Timer.Type.LOOP, 5);
-
+	
 	private float lightHeight = 1.5f, lightRadius = 1, lightAttenuation = 1;
-
+	
 	private boolean drawColoredCyl, drawLight, scaleCyl, useRSquare;
-
+	
 	public Example10_3() {
 		super("Example 10.3 - Fragment Attenuation", 500, 500, true);
 	}
-