commit e25d0ddeef6016c10ed4e15e8091317dad19817a
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Wed Jun 22 00:13:23 2016 +0100

    Additional Javadoc stuff.

diff --git a/src/main/java/org/distorted/library/EffectNames.java b/src/main/java/org/distorted/library/EffectNames.java
index 037b2f9..009889d 100644
--- a/src/main/java/org/distorted/library/EffectNames.java
+++ b/src/main/java/org/distorted/library/EffectNames.java
@@ -23,7 +23,21 @@ package org.distorted.library;
 /**
  * Names of Effects one can apply to DistortedObjects.
  * <p>
- * Effect's 'unity' is a set of values which
+ * Effect's 'Type' is one of the constants defined in {@see EffectTypes}.
+ * </p>
+ * <p>
+ * Effect's 'Uniforms' are a vector of 7 (matrix effects) 9 (vertex) or 8 (fragment) floats, which
+ * together form full information how to compute a given effect.
+ * Typically, some of those values will be Interpolated in CPU (by one of the 'EffectQueueX.compute()'
+ * methods) and the effect of such Interpolation sent to the Shaders.
+ * </p>
+ * <p>
+ * Effect's 'Unity' is such a particular vector of its 'interpolated values' which makes the
+ * effect NULL. For example, if the effect is 'MOVE' by a 3-dimensional vector, then a 'NULL
+ * MOVE' is a MOVE by vector (0,0,0), thus (0,0,0) is the unity of the MOVE effect.
+ * This is used by the EffectQueue classes to decide if the final form of the Effect is NULL - and
+ * thus if it can safely be removed from Effect Queues without affecting the visual in any way.
+ * </p>
  */
 public enum EffectNames
   {
@@ -35,35 +49,35 @@ public enum EffectNames
  /**
    * Rotate the whole Object around a center point (in angle-axis notation).
    * <p>
-   * 7 Uniforms: (angle,axisX,axisY,axisZ,centerX,centerY,centerZ)
+   * Uniforms: (angle,axisX,axisY,axisZ,centerX,centerY,centerZ)
    * Unity: angle==0
    */
   ROTATE           ( EffectTypes.MATRIX  ,   new float[] {0.0f}           ),
  /**
    * Rotate the whole Object around a center point (in quaternion notation).
    * <p>
-   * 7 Uniforms: (quatX,quatY,quatZ,quatW,centerX,centerY,centerZ)
+   * Uniforms: (quatX,quatY,quatZ,quatW,centerX,centerY,centerZ)
    * Unity: (quatX,quatY,quatZ) = (0,0,0)
    */
   QUATERNION       ( EffectTypes.MATRIX  ,   new float[] {0.0f,0.0f,0.0f} ),
  /**
    * Move the whole Object by a vector.
    * <p>
-   * 7 Uniforms: (vectorX,vectorY,vectorZ,UNUSED,UNUSED,UNUSED,UNUSED)
+   * Uniforms: (vectorX,vectorY,vectorZ,UNUSED,UNUSED,UNUSED,UNUSED)
    * Unity: (vectorX,vectorY,vectorZ) = (0,0,0)
    */
   MOVE             ( EffectTypes.MATRIX  ,   new float[] {0.0f,0.0f,0.0f} ),
  /**
    * Scale the whole Object independently in all 3 dimensions.
    * <p>
-   * 7 Uniforms: (scaleX,scaleY,scaleZ,UNUSED,UNUSED,UNUSED,UNUSED)
+   * Uniforms: (scaleX,scaleY,scaleZ,UNUSED,UNUSED,UNUSED,UNUSED)
    * Unity: (scaleX,scaleY,scaleZ) = (1,1,1)
    */
   SCALE            ( EffectTypes.MATRIX  ,   new float[] {1.0f,1.0f,1.0f} ),
  /**
    * Shear the whole Object in 3 dimensions around a center point.
    * <p>
-   * 7 Uniforms: (shearX,shearY,shearZ,UNUSED,centerX,centerY,centerZ)
+   * Uniforms: (shearX,shearY,shearZ,UNUSED,centerX,centerY,centerZ)
    * Unity:  (shearX,shearY,shearZ) = (0,0,0)
    */
   SHEAR            ( EffectTypes.MATRIX  ,   new float[] {0.0f,0.0f,0.0f} ),
@@ -76,28 +90,28 @@ public enum EffectNames
  /**
    * Apply a 3D vector of force to area around a point on the surface of the Object.
    * <p>
-   * 9 Uniforms: (forceX,forceY,forceZ,regionX,regionY,regionRX,regionRY,centerX,centerY)
+   * Uniforms: (forceX,forceY,forceZ,regionX,regionY,regionRX,regionRY,centerX,centerY)
    * Unity: (forceX,forceY,forceZ) = (0,0,0)
    */
   DISTORT          ( EffectTypes.VERTEX  ,   new float[] {0.0f,0.0f,0.0f} ),      // keep this the first VERT effect (reason: getType)
  /**
    * Deform the whole Object by applying a 2D vector of force to a center point.
    * <p>
-   * 9 Uniforms: (forceX,forceY,UNUSED,UNUSED,UNUSED,UNUSED,UNUSED,centerX,centerY)
+   * Uniforms: (forceX,forceY,UNUSED,UNUSED,UNUSED,UNUSED,UNUSED,centerX,centerY)
    * Unity: (forceX,forceY) = (0,0)
    */
   DEFORM           ( EffectTypes.VERTEX  ,   new float[] {0.0f,0.0f}      ),
  /**
    * Pull (or push away) all points around a center point to (from) it.
    * <p>
-   * 9 Uniforms: (sinkFactor,UNUSED,UNUSED,regionX,regionY,regionRX,regionRY,centerX,centerY)
+   * Uniforms: (sinkFactor,UNUSED,UNUSED,regionX,regionY,regionRX,regionRY,centerX,centerY)
    * Unity: sinkFactor = 1
    */
   SINK             ( EffectTypes.VERTEX  ,   new float[] {1.0f}           ),
  /**
    * Smoothly rotate a limited area around a center point.
    * <p>
-   * 9 Uniforms: (swirlAngle,UNUSED,UNUSED,regionX,regionY,regionRX,regionRY,centerX,centerY)
+   * Uniforms: (swirlAngle,UNUSED,UNUSED,regionX,regionY,regionRX,regionRY,centerX,centerY)
    * Unity: swirlAngle = 0
    */
   SWIRL            ( EffectTypes.VERTEX  ,   new float[] {0.0f}           ),
@@ -109,14 +123,14 @@ public enum EffectNames
  /**
    * Create square-shaped macroblocks.
    * <p>
-   * 8 Uniforms: (macroblockSize,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (macroblockSize,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
    * Unity: macroblockSize = 1
    */
   MACROBLOCK       ( EffectTypes.FRAGMENT,   new float[] {1.0f}           ),      // keep this the first FRAG effect (reason: getType)
  /**
    * Make a given Region (partially) transparent.
    * <p>
-   * 8 Uniforms: (transparencyLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (transparencyLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
    * Unity: transparencyLevel = 1
    */
   ALPHA            ( EffectTypes.FRAGMENT,   new float[] {1.0f}           ),
@@ -124,63 +138,63 @@ public enum EffectNames
    * Make a given Region (partially) transparent.
    * Effect smoothly fades towards the edges of the region.
    * <p>
-   * 8 Uniforms: (transparencyLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (transparencyLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
    * Unity: transparencyLevel = 1
    */
   SMOOTH_ALPHA     ( EffectTypes.FRAGMENT,   new float[] {1.0f}           ),
  /**
    * Blend current color in the texture with a given color.
    * <p>
-   * 8 Uniforms: (blendLevel,colorR,colorG,colorB, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (blendLevel,colorR,colorG,colorB, regionX, regionY, regionRX, regionRY)
    * Unity: blendLevel = 0
    */
   CHROMA           ( EffectTypes.FRAGMENT,   new float[] {0.0f}           ),
  /**
    * Smoothly blend current color in the texture with a given color.
    * <p>
-   * 8 Uniforms: (blendLevel,colorR,colorG,colorB, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (blendLevel,colorR,colorG,colorB, regionX, regionY, regionRX, regionRY)
    * Unity: blendLevel = 0
    */
   SMOOTH_CHROMA    ( EffectTypes.FRAGMENT,   new float[] {0.0f}           ),
  /**
    * Change brightness level of a given Region.
    * <p>
-   * 8 Uniforms: (brightnessLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (brightnessLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
    * Unity: brightnessLevel = 1
    */
   BRIGHTNESS       ( EffectTypes.FRAGMENT,   new float[] {1.0f}           ),
  /**
    * Smoothly change brightness level of a given Region.
    * <p>
-   * 8 Uniforms: (brightnessLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (brightnessLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
    * Unity: brightnessLevel = 1
    */
   SMOOTH_BRIGHTNESS( EffectTypes.FRAGMENT,   new float[] {1.0f}           ),
  /**
    * Change saturation level of a given Region.
    * <p>
-   * 8 Uniforms: (saturationLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (saturationLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
    * Unity: saturationLevel = 1
    */
   SATURATION       ( EffectTypes.FRAGMENT,   new float[] {1.0f}           ),
  /**
    * Smoothly change saturation level of a given Region.
    * <p>
-   * 8 Uniforms: (saturationLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (saturationLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
    * Unity: saturationLevel = 1
    */
   SMOOTH_SATURATION( EffectTypes.FRAGMENT,   new float[] {1.0f}           ),
  /**
    * Change contrast level of a given Region.
    * <p>
-   * 8 Uniforms: (contrastLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (contrastLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
    * Unity: contrastLevel = 1
    */
   CONTRAST         ( EffectTypes.FRAGMENT,   new float[] {1.0f}           ),
  /**
    * Smoothly change contrast level of a given Region.
    * <p>
-   * 8 Uniforms: (contrastLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
+   * Uniforms: (contrastLevel,UNUSED,UNUSED,UNUSED, regionX, regionY, regionRX, regionRY)
    * Unity: contrastLevel = 1
    */
   SMOOTH_CONTRAST  ( EffectTypes.FRAGMENT,   new float[] {1.0f}           );
