commit 91786be2165267c6e0e669dd86024869f20ed83f
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Thu Nov 24 00:58:09 2016 +0000

    DEFORM: add support for Regions

diff --git a/src/main/java/org/distorted/examples/deform/DeformActivity.java b/src/main/java/org/distorted/examples/deform/DeformActivity.java
index 306db2b..cfbf020 100644
--- a/src/main/java/org/distorted/examples/deform/DeformActivity.java
+++ b/src/main/java/org/distorted/examples/deform/DeformActivity.java
@@ -127,7 +127,7 @@ public class DeformActivity extends Activity implements OnSeekBarChangeListener
         {
         case R.id.deformSeekRadius: DeformSurfaceView view = (DeformSurfaceView) this.findViewById(R.id.deformSurfaceView);
                                     view.getRenderer().setRegionRadius(progress);
-                                    textR.setText("Radius: "+progress);
+                                    textR.setText("Radius: "+(progress<100 ? progress: "Infinity"));
                                     break;
         }
       }
diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index 15b4952..6bb8930 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -151,7 +151,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
 
    void setRegionRadius(int r)
       {
-      dr.set(0,0,r); 
+      dr.set3( r==100 ? 100*scrWidth : r*scrWidth/100.0f);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -280,7 +280,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
                       mLastEffect = stretch.distort( mMovingDistortDynamic, touchPoint, dr);
                       break;
         case DEFORM : vDeform[0].set(0,0,0);
-                      mLastEffect = stretch.deform( mMovingDeformDynamic, touchPoint);
+                      mLastEffect = stretch.deform( mMovingDeformDynamic, touchPoint, dr);
                       break;
         case SHEAR  : vShear[0].set(0,0,0);
                       mLastEffect = stretch.shear(mMovingShearDynamic, touchPoint);
@@ -325,7 +325,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
                         vDeform[i].set( vDeform[i-1].getX()*damp, vDeform[i-1].getY()*damp );
                         }
                       vDeform[NUM_VECTORS-1].set(0,0);
-                      stretch.deform( mReleasedDeformDynamic, touchPoint);
+                      stretch.deform( mReleasedDeformDynamic, touchPoint, dr);
                       break;
         case SHEAR  : for(int i=1; i<NUM_VECTORS-1; i++)
                         {
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
index 63de511..ab1755d 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
@@ -88,7 +88,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
       case SHEAR            : mId = object.shear     (mDyn3, mCenterDyn); break;
 
       case DISTORT          : mId = object.distort   (mDyn3, mCenterDyn, mRegionDyn); break;
-      case DEFORM           : mId = object.deform    (mDyn3, mCenterDyn            ); break;
+      case DEFORM           : mId = object.deform    (mDyn3, mCenterDyn, mRegionDyn); break;
       case SINK             : mId = object.sink      (mDyn1, mCenterDyn, mRegionDyn); break;
       case PINCH            : mId = object.pinch     (mDyn2, mCenterDyn, mRegionDyn); break;
       case SWIRL            : mId = object.swirl     (mDyn1, mCenterDyn, mRegionDyn); break;
diff --git a/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java b/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java
index 9a23d68..ecdbd64 100644
--- a/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java
+++ b/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java
@@ -88,7 +88,7 @@ class Matrix3DEffect implements SeekBar.OnSeekBarChangeListener
       case SHEAR            : mId = object.shear     (mDyn3, mCenterDyn); break;
 
       case DISTORT          : mId = object.distort   (mDyn3, mCenterDyn, mRegionDyn); break;
-      case DEFORM           : mId = object.deform    (mDyn3, mCenterDyn            ); break;
+      case DEFORM           : mId = object.deform    (mDyn3, mCenterDyn, mRegionDyn); break;
       case SINK             : mId = object.sink      (mDyn1, mCenterDyn, mRegionDyn); break;
       case PINCH            : mId = object.pinch     (mDyn2, mCenterDyn, mRegionDyn); break;
       case SWIRL            : mId = object.swirl     (mDyn1, mCenterDyn, mRegionDyn); break;
