commit 9e7b6dbd8188c339b3f92e4cdb8bddfe3fd9d87e
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Dec 30 01:37:34 2018 +0000

    Redefine the Vertex Region from (x,y,r,unused) to (x,y,z,r). This takes into account the 'Z', which makes it possible to warp only one side of a 3D Mesh like Sphere.
    
    Also corresponding changes in applications.

diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java
index 560b875..64a483b 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java
@@ -145,7 +145,7 @@ class AroundTheWorldEffectsManager
 
     // WHITENESS
     // Vertex Effects
-    wLipsRegion = new Static4D(0,0,100,100);
+    wLipsRegion = new Static4D(0,0,0,100);
     wLipsCenter = new Static3D(300,500,0);
     wLipsFactor = new Static1D(0.7f);
     wLipsDyn    = new Dynamic1D();
@@ -153,25 +153,25 @@ class AroundTheWorldEffectsManager
 
     // ASIANNESS
     // Vertex Effects
-    aLipsNoseRegion    = new Static4D(0,0,267,267);
+    aLipsNoseRegion    = new Static4D(0,0,0,267);
     aLipsNoseCenter    = new Static3D(300,560,0);
     aLipsNoseDyn       = new Dynamic3D();
     aLipsNoseFactor    = new Static3D(0,0,0);
     aLipsNoseDyn.add(aLipsNoseFactor);
 
-    aNoseBroaderRegion = new Static4D(0,0,130,130);
+    aNoseBroaderRegion = new Static4D(0,0,0,130);
     aNoseBroaderCenter = new Static3D(300,307,0);
     aNoseBroaderDyn    = new Dynamic2D();
     aNoseBroaderFactor = new Static2D(0,90);
     aNoseBroaderDyn.add(aNoseBroaderFactor);
 
-    aNostrilsRegion    = new Static4D(0,0,60,60);
+    aNostrilsRegion    = new Static4D(0,0,0,60);
     aNostrilsCenter    = new Static3D(300,336,0);
     aNostrilsDyn       = new Dynamic3D();
     aNostrilsFactor    = new Static3D(0,0,0);
     aNostrilsDyn.add(aNostrilsFactor);
 
-    aEyesRegion        = new Static4D(0,0,83,83);
+    aEyesRegion        = new Static4D(0,0,0,83);
     aLEyeCenter        = new Static3D(176,230,0);
     aREyeCenter        = new Static3D(420,230,0);
     aLEyeDyn           = new Dynamic1D();
@@ -181,7 +181,7 @@ class AroundTheWorldEffectsManager
     aLEyeDyn.add(aLEyeFactor);
     aREyeDyn.add(aREyeFactor);
 
-    aEyebrowsRegion    = new Static4D(0,0,142,142);
+    aEyebrowsRegion    = new Static4D(0,0,0,142);
     aEyebrowsCenter    = new Static3D(300,100,0);
     aEyebrowsDyn       = new Dynamic3D();
     aEyebrowsFactor    = new Static3D(0,0,0);
@@ -204,31 +204,31 @@ class AroundTheWorldEffectsManager
 
     // BLACKNESS
     // Vertex Effects
-    bFaceRegion        = new Static4D(0,0,600,600);
+    bFaceRegion        = new Static4D(0,0,0,600);
     bFaceCenter        = new Static3D(300,300,0);
     bFaceFactor        = new Static2D(1.0f,90.0f);
     bFaceDyn           = new Dynamic2D();
     bFaceDyn.add(bFaceFactor);
 
-    bTipLowerRegion    = new Static4D(0,0,41,41);
+    bTipLowerRegion    = new Static4D(0,0,0,41);
     bTipLowerCenter    = new Static3D(300,393,0);
     bTipLowerFactor    = new Static3D(0,0,0);
     bTipLowerDyn       = new Dynamic3D();
     bTipLowerDyn.add(bTipLowerFactor);
 
-    bWholeNoseRegion   = new Static4D(0,0,130,130);
+    bWholeNoseRegion   = new Static4D(0,0,0,130);
     bWholeNoseCenter   = new Static3D(300,357,0);
     bWholeNoseFactor   = new Static2D(1.0f,90.0f);
     bWholeNoseDyn      = new Dynamic2D();
     bWholeNoseDyn.add(bWholeNoseFactor);
 
-    bNoseBroaderRegion = new Static4D(0,0,95,95);
+    bNoseBroaderRegion = new Static4D(0,0,0,95);
     bNoseBroaderCenter = new Static3D(300,408,0);
     bNoseBroaderFactor = new Static2D(1.0f,90.0f);
     bNoseBroaderDyn    = new Dynamic2D();
     bNoseBroaderDyn.add(bNoseBroaderFactor);
 
-    bLipsRegion        = new Static4D(0,96,118,118);
+    bLipsRegion        = new Static4D(0,96,0,118);
     bLipsCenter        = new Static3D(300,458,0);
     bLipsFactor        = new Static2D(1.0f,0.0f);
     bLipsDyn           = new Dynamic2D();
diff --git a/src/main/java/org/distorted/examples/bean/BeanRenderer.java b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
index 41180f8..1e22270 100644
--- a/src/main/java/org/distorted/examples/bean/BeanRenderer.java
+++ b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
@@ -63,8 +63,8 @@ class BeanRenderer implements GLSurfaceView.Renderer
      
       Static3D pointLeft  = new Static3D( 98, 183, 0);
       Static3D pointRight = new Static3D(233, 140, 0);
-      Static4D regionLeft = new Static4D( -3,-33,47,47);
-      Static4D regionRight= new Static4D(-14,-33,47,47);
+      Static4D regionLeft = new Static4D( -3,-33, 0,47);
+      Static4D regionRight= new Static4D(-14,-33, 0,47);
       Dynamic3D dynLeft   = new Dynamic3D(2000,0.0f);
       Dynamic3D dynRight  = new Dynamic3D(2000,0.0f);
 
diff --git a/src/main/java/org/distorted/examples/check/CheckRenderer.java b/src/main/java/org/distorted/examples/check/CheckRenderer.java
index 7b9d90d..1b1de10 100644
--- a/src/main/java/org/distorted/examples/check/CheckRenderer.java
+++ b/src/main/java/org/distorted/examples/check/CheckRenderer.java
@@ -105,7 +105,7 @@ class CheckRenderer implements GLSurfaceView.Renderer
       dSwirl.add(mSwirl1);
       dSwirl.add(mSwirl2);
 
-      if( !mEffects.apply( new VertexEffectSwirl(new Static1D(30), dSwirl, new Static4D( 0,0,40,40)) ) )
+      if( !mEffects.apply( new VertexEffectSwirl(new Static1D(30), dSwirl, new Static4D( 0,0,0,40)) ) )
         {
         Log.e("Check", "Failed to add Swirl effect!");
         }
diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index 6137687..33cdb4b 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -158,7 +158,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
    void setRegionRadius(int r)
       {
       mRadius = ( r==100 ? 100.0f : r/100.0f);
-      mRegion.set3(mRadius*scrWidth);
+      mRegion.set4(mRadius*scrWidth);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -175,7 +175,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
      scrHeight = height;
      scrWidth  = width;
 
-     mRegion.set3(mRadius*scrWidth);
+     mRegion.set4(mRadius*scrWidth);
 
      Canvas stretchCanvas;
      int w=width/2;
@@ -223,7 +223,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
        }
      catch(Exception ex)
        {
-       android.util.Log.e("DeformRenderer", ex.toString() );
+       android.util.Log.e("Deform", ex.toString() );
        }
      }
 
diff --git a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
index de1ac1a..6c66cbb 100644
--- a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
@@ -71,7 +71,7 @@ class DifferentEffectsRenderer implements GLSurfaceView.Renderer
       // mEffects[0] effects
       Static3D pLeft = new Static3D(214, 206, 0);
       Static3D pRight= new Static3D(390, 212, 0);
-      Static4D RegionEye = new Static4D(0,0,60,60);
+      Static4D RegionEye = new Static4D(0,0,0,60);
       
       // mEffects[1] effects
       Dynamic3D dyn = new Dynamic3D(1000,0.0f);
diff --git a/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java b/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java
index da86bf6..2db443c 100644
--- a/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java
+++ b/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java
@@ -96,7 +96,7 @@ public class EffectQueueSurfaceView extends GLSurfaceView
       final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
       setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       setRenderer(mRenderer);
-      mRegionV= new Static4D(0,0,RADIUS,RADIUS);
+      mRegionV= new Static4D(0,0,0,RADIUS);
       setEffect(0);  
       }
     }
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity2.java b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity2.java
index 927ef19..1c28a10 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity2.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity2.java
@@ -63,7 +63,7 @@ public class Effects3DActivity2 extends AppCompatActivity
   private Bitmap mBitmap;
 
   private float mCenterX, mCenterY, mCenterZ;
-  private float mRegionX, mRegionY, mRegionR;
+  private float mRegionX, mRegionY, mRegionZ, mRegionR;
   private DistortedEffects mEffects;
   private ViewPager mViewPager;
   private Effects3DTabViewPager mPager;
@@ -196,14 +196,15 @@ public class Effects3DActivity2 extends AppCompatActivity
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public void setRegion(float x, float y, float r)
+  public void setRegion(float x, float y, float z, float r)
     {
     mRegionX = x;
     mRegionY =-y;
+    mRegionZ = z;
     mRegionR = r;
 
     Effects3DSurfaceView view = findViewById(R.id.effects3dSurfaceView);
-    view.getRenderer().setRegion(mRegionX, mRegionY, mRegionR);
+    view.getRenderer().setRegion(mRegionX, mRegionY, mRegionZ, mRegionR);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -246,6 +247,13 @@ public class Effects3DActivity2 extends AppCompatActivity
     return mRegionY;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public float getRegionZ()
+    {
+    return mRegionZ;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public float getRegionR()
@@ -290,13 +298,14 @@ public class Effects3DActivity2 extends AppCompatActivity
     mCenterY = 0.5f*getHeight();
     mRegionX = 0;
     mRegionY = 0;
+    mRegionZ = 0;
     mRegionR = getWidth()/2;
 
     Effects3DSurfaceView view = findViewById(R.id.effects3dSurfaceView);
     Effects3DRenderer renderer= view.getRenderer();
 
     renderer.setCenter( mCenterX, mCenterY, mCenterZ );
-    renderer.setRegion( mRegionX, mRegionY, mRegionR );
+    renderer.setRegion( mRegionX, mRegionY, mRegionZ, mRegionR );
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
index 90c3a1d..99c083c 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
@@ -392,15 +392,16 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
 
     float factorX = act.getWidth() / 100.0f;
     float factorY = act.getHeight()/ 100.0f;
+   // float factorZ = act.getDepth() / 100.0f;
 
     int deduct = (mName.getType() == EffectType.VERTEX ? 50:0);
 
-    float  x = (mInterRegion[0]-deduct)*factorX;
-    float  y = (mInterRegion[1]-deduct)*factorY;
-    float rx =  mInterRegion[2]        *factorX;
-    float ry =  mInterRegion[3]        *factorY;
+    float x = (mInterRegion[0]-deduct)*factorX;
+    float y = (mInterRegion[1]-deduct)*factorY;
+    float z = (mInterRegion[2]-deduct)*factorX;   // ??
+    float r =  mInterRegion[3]        *(factorX+factorY)/2;
 
-    mRegionSta.set(x,y,rx,ry);
+    mRegionSta.set(x,y,z,r);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -634,7 +635,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
       seek[i].setProgress( mInterRegion[i] );
       }
 
-    act.setRegion(mRegionSta.get1(),mRegionSta.get2(),mRegionSta.get3());
+    act.setRegion(mRegionSta.get1(),mRegionSta.get2(),mRegionSta.get3(), mRegionSta.get4() );
 
     return mRegion;
     }
@@ -764,7 +765,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
       view.getRenderer().showRegionAndCenter( showR,showC );
 
       act.setCenter(mCenterSta.get1(),mCenterSta.get2(),mCenterSta.get3());
-      act.setRegion(mRegionSta.get1(),mRegionSta.get2(),mRegionSta.get3());
+      act.setRegion(mRegionSta.get1(),mRegionSta.get2(),mRegionSta.get3(), mRegionSta.get4());
       }
     }
 
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
index 4e598ae..e56d992 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
@@ -199,10 +199,10 @@ class Effects3DRenderer implements GLSurfaceView.Renderer
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    void setRegion(float x, float y, float r)
+    void setRegion(float x, float y, float z, float r)
       {
       mFactorReg = 2*mFactorObj*r/mRegionTexture.getWidth();
-      mRegionPoint.set(mFactorObj*x,-mFactorObj*y,0);
+      mRegionPoint.set(mFactorObj*x,-mFactorObj*y, mFactorObj*z);
       mRegionScalePoint.set(mFactorReg,mFactorReg,mFactorReg);
       }
 
diff --git a/src/main/java/org/distorted/examples/flag/FlagRenderer.java b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
index d68808b..ec2c72d 100644
--- a/src/main/java/org/distorted/examples/flag/FlagRenderer.java
+++ b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
@@ -85,7 +85,7 @@ class FlagRenderer implements GLSurfaceView.Renderer
       mQuat2 = new Static4D(-0.25189602f,0.3546389f,0.009657208f,0.90038127f);  // something semi-random that looks good
 
       Static3D waveCenter = new Static3D(mObjWidth, mObjHeight/2, 0);  // middle of the right edge
-      Static4D waveRegion = new Static4D(0,0,mObjWidth,mObjWidth);
+      Static4D waveRegion = new Static4D(0,0,0,mObjWidth);
 
       mEffects.apply( new VertexEffectWave(mWaveDyn, waveCenter, waveRegion) );
 
diff --git a/src/main/java/org/distorted/examples/girl/GirlRenderer.java b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
index 79554fc..313a4c0 100644
--- a/src/main/java/org/distorted/examples/girl/GirlRenderer.java
+++ b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
@@ -71,7 +71,7 @@ class GirlRenderer implements GLSurfaceView.Renderer
       Static3D pRight= new Static3D(247, 264, 0);
       
       // Size
-      Static4D sinkRegion = new Static4D(0,0,60,60);
+      Static4D sinkRegion = new Static4D(0,0,0,60);
       
       s0 = new Static1D(1.0f);
       
@@ -79,7 +79,7 @@ class GirlRenderer implements GLSurfaceView.Renderer
       diSink.add(s0);
       
       // Upper Movement
-      Static4D Region = new Static4D(0,0,45,45);
+      Static4D Region = new Static4D(0,0,0,45);
       
       Dynamic3D diL = new Dynamic3D(1000,0.0f);
       Dynamic3D diR = new Dynamic3D(1000,0.0f);
@@ -101,7 +101,7 @@ class GirlRenderer implements GLSurfaceView.Renderer
       
       // Lower Movement
       Static3D pHips = new Static3D(216,505,0);
-      Static4D HipsRegion = new Static4D(0,0,120,120);
+      Static4D HipsRegion = new Static4D(0,0,0,120);
       Dynamic1D diHips = new Dynamic1D(1500,0.0f);
       
       dBegin = new Static1D(0);
@@ -228,7 +228,7 @@ class GirlRenderer implements GLSurfaceView.Renderer
        }
      catch(Exception ex)
        {
-       android.util.Log.e("Renderer", ex.getMessage() );
+       android.util.Log.e("Girl", ex.getMessage() );
        }
      }
 }
diff --git a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
index 3f47793..63ae352 100644
--- a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
+++ b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
@@ -93,7 +93,7 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
       dDistort.add(new Static3D(0,0,     0));
       dDistort.add(new Static3D(0,0,height));
 
-      return mEffects.apply( new VertexEffectDistort(dDistort, new Static3D(pointx,pointy,0), new Static4D(0,0,radius,radius)) );
+      return mEffects.apply( new VertexEffectDistort(dDistort, new Static3D(pointx,pointy,0), new Static4D(0,0,0,radius)) );
       }
    
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -180,7 +180,7 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
        }
      catch(Exception ex)
        {
-       android.util.Log.e("Renderer", ex.getMessage() );
+       android.util.Log.e("Listener", ex.getMessage() );
        }
      }
 }
diff --git a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
index e9336d0..b59e458 100644
--- a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
+++ b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
@@ -63,8 +63,8 @@ class MonaLisaRenderer implements GLSurfaceView.Renderer
       Static3D pLeft = new Static3D( 90, 258, 0);
       Static3D pRight= new Static3D(176, 255, 0);
 
-      Static4D rLeft = new Static4D(-10,-10,25,25);
-      Static4D rRight= new Static4D( 10, -5,25,25);
+      Static4D rLeft = new Static4D(-10,-10, 0,25);
+      Static4D rRight= new Static4D( 10, -5, 0,25);
       Dynamic3D dLeft = new Dynamic3D(1000,0.0f);
       Dynamic3D dRight= new Dynamic3D(1000,0.0f);
       dLeft.add ( new Static3D(  0,  0,0) );
diff --git a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
index 7b9fe0a..61c616f 100644
--- a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
@@ -125,7 +125,7 @@ class MovingEffectsRenderer implements GLSurfaceView.Renderer
        }
      catch(Exception ex)
        {
-       android.util.Log.e("Renderer", ex.getMessage() );
+       android.util.Log.e("MovingEffects", ex.getMessage() );
        }
      }
 
diff --git a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
index 7504f96..bb0af7e 100644
--- a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
+++ b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
@@ -123,7 +123,7 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
       mSize2 = max/80;
       mSizeR = max/6;
 
-      mRegionVertex.set(0,0, mSizeR,mSizeR);
+      mRegionVertex.set(0,0,0,mSizeR);
       mDistort.set3(max/10);
       }
 
diff --git a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
index ca61f43..4b057ca 100644
--- a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
+++ b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
@@ -83,8 +83,8 @@ class RenderThread extends Thread
     Static3D pLeft = new Static3D( 90, 258, 0);
     Static3D pRight= new Static3D(176, 255, 0);
 
-    Static4D rLeft = new Static4D(-10,-10,25,25);
-    Static4D rRight= new Static4D( 10, -5,25,25);
+    Static4D rLeft = new Static4D(-10,-10, 0,25);
+    Static4D rRight= new Static4D( 10, -5, 0,25);
 
     Dynamic3D dLeft = new Dynamic3D(1000,0.0f);
     Dynamic3D dRight= new Dynamic3D(1000,0.0f);
diff --git a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
index 4c0b195..ed87784 100644
--- a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
+++ b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
@@ -123,7 +123,7 @@ class ProjectionRenderer implements GLSurfaceView.Renderer
       int min = width<height ? width:height;
 
       mVector.set(0,0,min/5);
-      mRegion.set(0,0,min/5,min/5);
+      mRegion.set(0,0,0,min/5);
 
       mPoint1.set(  width/4,   height/4, 0);
       mPoint2.set(3*width/4,   height/4, 0);
diff --git a/src/main/java/org/distorted/examples/save/SaveRenderer.java b/src/main/java/org/distorted/examples/save/SaveRenderer.java
index a27e715..d1d91fa 100644
--- a/src/main/java/org/distorted/examples/save/SaveRenderer.java
+++ b/src/main/java/org/distorted/examples/save/SaveRenderer.java
@@ -81,7 +81,7 @@ class SaveRenderer implements GLSurfaceView.Renderer
     Static3D pLeft = new Static3D(132, 264, 0);
     Static3D pRight= new Static3D(247, 264, 0);
       
-    Static4D sinkRegion = new Static4D(0,0,60,60);
+    Static4D sinkRegion = new Static4D(0,0,0,60);
       
     s0 = new Static1D(boobsSink);
       
diff --git a/src/main/java/org/distorted/examples/wind/WindEffectsManager.java b/src/main/java/org/distorted/examples/wind/WindEffectsManager.java
index 67a25d5..b42e4e8 100644
--- a/src/main/java/org/distorted/examples/wind/WindEffectsManager.java
+++ b/src/main/java/org/distorted/examples/wind/WindEffectsManager.java
@@ -89,7 +89,7 @@ class WindEffectsManager
     {
     Static3D midLeft = new Static3D(0,mHeight/2,0);
     Static3D midRight = new Static3D(mWidth,mHeight/2,0);
-    Static4D windRegion = new Static4D(0,0,mWidth,mHeight);
+    Static4D windRegion = new Static4D(0,0,0,mHeight);
 
     setWind(wind);
 
