commit 2a261997913ffb5882c47415b268f5392d3e8263
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Fri Jun 16 16:30:59 2017 +0100

    Simplify Effect classes.

diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
index a1c19af..10498e3 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
@@ -100,28 +100,28 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
 
     switch(mName)
       {
-      case ROTATE           : effect = new MatrixEffectRotate(mDyn4, mCenterDyn); break;
-      case QUATERNION       : effect = new MatrixEffectQuaternion(mDyn4, mCenterDyn); break;
-      case MOVE             : effect = new MatrixEffectMove(mDyn3)            ; break;
-      case SCALE            : effect = new MatrixEffectScale(mDyn3)            ; break;
-      case SHEAR            : effect = new MatrixEffectShear(mDyn3, mCenterDyn); break;
-
-      case DISTORT          : effect = new VertexEffectDistort(mDyn3, mCenterDyn, mRegionDyn); break;
-      case DEFORM           : effect = new VertexEffectDeform(mDyn3, mCenterDyn, mRegionDyn); break;
-      case SINK             : effect = new VertexEffectSink(mDyn1, mCenterDyn, mRegionDyn); break;
-      case PINCH            : effect = new VertexEffectPinch(mDyn2, mCenterDyn, mRegionDyn); break;
-      case SWIRL            : effect = new VertexEffectSwirl(mDyn1, mCenterDyn, mRegionDyn); break;
-      case WAVE             : effect = new VertexEffectWave(mDyn5, mCenterDyn, mRegionDyn); break;
-
-      case ALPHA            : effect = new FragmentEffectAlpha(mDyn1,        mRegionDyn, false); break;
+      case ROTATE           : effect = new MatrixEffectRotate      (mDyn1, mDyn3, mCenterDyn); break;
+      case QUATERNION       : effect = new MatrixEffectQuaternion  (mDyn4, mCenterDyn); break;
+      case MOVE             : effect = new MatrixEffectMove        (mDyn3)            ; break;
+      case SCALE            : effect = new MatrixEffectScale       (mDyn3)            ; break;
+      case SHEAR            : effect = new MatrixEffectShear       (mDyn3, mCenterDyn); break;
+
+      case DISTORT          : effect = new VertexEffectDistort     (mDyn3, mCenterDyn, mRegionDyn); break;
+      case DEFORM           : effect = new VertexEffectDeform      (mDyn3, mCenterDyn, mRegionDyn); break;
+      case SINK             : effect = new VertexEffectSink        (mDyn1, mCenterDyn, mRegionDyn); break;
+      case PINCH            : effect = new VertexEffectPinch       (mDyn2, mCenterDyn, mRegionDyn); break;
+      case SWIRL            : effect = new VertexEffectSwirl       (mDyn1, mCenterDyn, mRegionDyn); break;
+      case WAVE             : effect = new VertexEffectWave        (mDyn5, mCenterDyn, mRegionDyn); break;
+
+      case ALPHA            : effect = new FragmentEffectAlpha     (mDyn1,        mRegionDyn, false); break;
       case SMOOTH_ALPHA     : effect = new FragmentEffectAlpha     (mDyn1,        mRegionDyn, true ); break;
-      case CHROMA           : effect = new FragmentEffectChroma(mDyn1, mDyn3, mRegionDyn, false); break;
+      case CHROMA           : effect = new FragmentEffectChroma    (mDyn1, mDyn3, mRegionDyn, false); break;
       case SMOOTH_CHROMA    : effect = new FragmentEffectChroma    (mDyn1, mDyn3, mRegionDyn, true ); break;
       case BRIGHTNESS       : effect = new FragmentEffectBrightness(mDyn1,        mRegionDyn, false); break;
       case SMOOTH_BRIGHTNESS: effect = new FragmentEffectBrightness(mDyn1,        mRegionDyn, true ); break;
       case SATURATION       : effect = new FragmentEffectSaturation(mDyn1,        mRegionDyn, false); break;
       case SMOOTH_SATURATION: effect = new FragmentEffectSaturation(mDyn1,        mRegionDyn, true ); break;
-      case CONTRAST         : effect = new FragmentEffectContrast(mDyn1,        mRegionDyn, false); break;
+      case CONTRAST         : effect = new FragmentEffectContrast  (mDyn1,        mRegionDyn, false); break;
       case SMOOTH_CONTRAST  : effect = new FragmentEffectContrast  (mDyn1,        mRegionDyn, true ); break;
       }
 
@@ -143,7 +143,8 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
                               float rx = (mInter[1]-50)/ 50.0f;
                               float ry = (mInter[2]-50)/ 50.0f;
                               float rz = (mInter[3]-50)/ 50.0f;
-                              mSta4.set(an,rx,ry,rz);
+                              mSta1.set(an);
+                              mSta3.set(rx,ry,rz);
                               break;
       case QUATERNION       : float qx = (mInter[0]-50)/ 50.0f;
                               float qy = (mInter[1]-50)/ 50.0f;
@@ -388,7 +389,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
                mSta3 = new Static3D(0,0,0);
                mDyn3.add(mSta3);
                break;
-      case 4 : if( mName == EffectName.ROTATE || mName == EffectName.QUATERNION )
+      case 4 : if( mName == EffectName.QUATERNION )
                  {
                  mDyn4 = new Dynamic4D();
                  mSta4 = new Static4D(0,0,0,0);
diff --git a/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java b/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java
index 5eca2c7..039c04d 100644
--- a/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java
+++ b/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java
@@ -100,11 +100,11 @@ class Matrix3DEffect implements SeekBar.OnSeekBarChangeListener
 
     switch(mName)
       {
-      case ROTATE           : effect = new MatrixEffectRotate      (mDyn4, mCenterDyn); break;
-      case QUATERNION       : effect = new MatrixEffectQuaternion  (mDyn4, mCenterDyn); break;
-      case MOVE             : effect = new MatrixEffectMove        (mDyn3)            ; break;
-      case SCALE            : effect = new MatrixEffectScale       (mDyn3)            ; break;
-      case SHEAR            : effect = new MatrixEffectShear       (mDyn3, mCenterDyn); break;
+      case ROTATE           : effect = new MatrixEffectRotate      (mDyn1, mDyn3, mCenterDyn); break;
+      case QUATERNION       : effect = new MatrixEffectQuaternion  (mDyn4,        mCenterDyn); break;
+      case MOVE             : effect = new MatrixEffectMove        (mDyn3                   ); break;
+      case SCALE            : effect = new MatrixEffectScale       (mDyn3                   ); break;
+      case SHEAR            : effect = new MatrixEffectShear       (mDyn3,        mCenterDyn); break;
 
       case DISTORT          : effect = new VertexEffectDistort     (mDyn3, mCenterDyn, mRegionDyn); break;
       case DEFORM           : effect = new VertexEffectDeform      (mDyn3, mCenterDyn, mRegionDyn); break;
@@ -143,7 +143,8 @@ class Matrix3DEffect implements SeekBar.OnSeekBarChangeListener
                               float rx = (mInter[1]-50)/ 50.0f;
                               float ry = (mInter[2]-50)/ 50.0f;
                               float rz = (mInter[3]-50)/ 50.0f;
-                              mSta4.set(an,rx,ry,rz);
+                              mSta1.set(an);
+                              mSta3.set(rx,ry,rz);
                               break;
       case QUATERNION       : float qx = (mInter[0]-50)/ 50.0f;
                               float qy = (mInter[1]-50)/ 50.0f;
@@ -397,7 +398,7 @@ class Matrix3DEffect implements SeekBar.OnSeekBarChangeListener
                mSta3 = new Static3D(0,0,0);
                mDyn3.add(mSta3);
                break;
-      case 4 : if( mName == EffectName.ROTATE || mName == EffectName.QUATERNION )
+      case 4 : if( mName == EffectName.QUATERNION )
                  {
                  mDyn4 = new Dynamic4D();
                  mSta4 = new Static4D(0,0,0,0);
