commit c11a3a1503133797d770d14081cd8b919c125339
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Mon Nov 14 14:40:58 2016 +0000

    Encode more info in the EfectNames enum.

diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceViewPicker.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceViewPicker.java
index 69584b8..1f87f1f 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceViewPicker.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceViewPicker.java
@@ -95,7 +95,6 @@ class AroundTheWorldSurfaceViewPicker extends GLSurfaceView
           }
         else if( xf< -0.865f )
           {
-          yf *= (-0.865f/xf);
           xf  =  -0.865f;
           }
 
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
index 0b8fb44..f364586 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
@@ -57,9 +57,11 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
   private TextView mText,mTextRegion,mTextCenter;
 
   private Dynamic1D mDyn1;
+  private Dynamic2D mDyn2;
   private Dynamic3D mDyn3;
   private Dynamic5D mDyn5;
   private Static1D  mSta1;
+  private Static2D  mSta2;
   private Static3D  mSta3;
   private Static5D  mSta5;
   private Dynamic4D mRegionDyn;
@@ -70,25 +72,6 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
   private View mButton, mEffect, mCenter, mRegion;
   private long mId;
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// requires knowledge about effect nature
-
-  private int getDimension()
-    {
-    switch(mName)
-      {
-      case DISTORT      :
-      case DEFORM       : return 3;
-
-      case CHROMA       :
-      case SMOOTH_CHROMA: return 4;
-
-      case WAVE         : return 5;
-
-      default           : return 1;
-      }
-    }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // requires knowledge about effect nature
 
@@ -117,14 +100,6 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
       }
     }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// requires knowledge about effect nature
-
-  private boolean supportsRegion()
-    {
-    return mName != EffectNames.DEFORM;
-    }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // requires knowledge about effect nature
 
@@ -147,14 +122,12 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
                               float v2 = (mInter[4]-50)*180 / 50;
                               mSta5.set(x2,y2,z2,w2,v2);
                               break;
-      case SINK             : mSta1.set(mInter[0] > 50 ? 50.0f/(100.01f-mInter[0]) : mInter[0] / 50.0f);
-                              break;
       case SWIRL            : mSta1.set( 3.6f*(mInter[0]-50) );
                               break;
-
       case ALPHA            :
       case SMOOTH_ALPHA     : mSta1.set(mInter[0]/100.0f);
                               break;
+      case SINK             :
       case SATURATION       :
       case SMOOTH_SATURATION:
       case CONTRAST         :
@@ -172,43 +145,16 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-// requires knowledge about effect nature
 
   private void setDefaultInter()
     {
-    switch(mName)
+    switch(mDimension)
       {
-      case DISTORT          :
-      case DEFORM           : mInter[0] = 50;
-                              mInter[1] = 50;
-                              mInter[2] = 50;
-                              break;
-      case WAVE             : mInter[0] = 50;
-                              mInter[1] = 50;
-                              mInter[2] = 50;
-                              mInter[3] = 50;
-                              mInter[4] = 50;
-                              break;
-      case SINK             :
-      case SWIRL            : mInter[0] = 50;
-                              break;
-
-      case ALPHA            :
-      case SMOOTH_ALPHA     :
-      case BRIGHTNESS       :
-      case SMOOTH_BRIGHTNESS:
-      case SATURATION       :
-      case SMOOTH_SATURATION:
-      case CONTRAST         :
-      case SMOOTH_CONTRAST  : mInter[0] = 50;
-                              break;
-
-      case CHROMA           :
-      case SMOOTH_CHROMA    : mInter[0] = 50;
-                              mInter[1] =  0;
-                              mInter[2] =  0;
-                              mInter[3] =  0;
-                              break;
+      case 5: mInter[4] = 50;
+      case 4: mInter[3] = 50;
+      case 3: mInter[2] = 50;
+      case 2: mInter[1] = 50;
+      case 1: mInter[0] = 50;
       }
     }
 
@@ -224,6 +170,13 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
       text += " "+f1;
       }
 
+    if( mSta2 !=null )
+      {
+      float f1 = ((int)(mSta2.getX()*100))/100.0f;
+      float f2 = ((int)(mSta2.getY()*100))/100.0f;
+      text += " ("+f1+","+f2+")";
+      }
+
     if( mSta3 !=null )
       {
       float f1 = ((int)(mSta3.getX()*100))/100.0f;
@@ -323,13 +276,15 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
     mName = name;
 
     mDyn1 = null;
+    mDyn2 = null;
     mDyn3 = null;
     mDyn5 = null;
     mSta1 = null;
+    mSta2 = null;
     mSta3 = null;
     mSta5 = null;
 
-    mDimension = getDimension();
+    mDimension = mName.getDimension();
 
     switch(mDimension)
       {
@@ -337,6 +292,10 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
                mSta1 = new Static1D(0);
                mDyn1.add(mSta1);
                break;
+      case 2 : mDyn2 = new Dynamic2D();
+               mSta2 = new Static2D(0,0);
+               mDyn2.add(mSta2);
+               break;
       case 3 : mDyn3 = new Dynamic3D();
                mSta3 = new Static3D(0,0,0);
                mDyn3.add(mSta3);
@@ -448,7 +407,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
       seek[i].setProgress( mInter[i] );
       }
 
-    Effects3DActivity.setSupportsRegion(supportsRegion());
+    Effects3DActivity.setSupportsRegion(mName.supportsRegion());
     Effects3DActivity.setTypeVertex(mName.getType() == EffectTypes.VERTEX);
 
     return mEffect;
@@ -595,7 +554,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
 
     if( fromUser )
       {
-      Effects3DActivity.setSupportsRegion(supportsRegion());
+      Effects3DActivity.setSupportsRegion(mName.supportsRegion());
       Effects3DActivity.setTypeVertex(mName.getType() == EffectTypes.VERTEX);
 
       Effects3DActivity act = mAct.get();
diff --git a/src/main/res/layout/effects3dlayout.xml b/src/main/res/layout/effects3dlayout.xml
index eb722aa..c17e08d 100644
--- a/src/main/res/layout/effects3dlayout.xml
+++ b/src/main/res/layout/effects3dlayout.xml
@@ -40,7 +40,7 @@
         <Button
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/RemoveAll"
+            android:text="@string/reset"
             android:id="@+id/buttonRemove"
             android:onClick="removeAll"
             />
