commit b5cc7760b2fbb956217a827a0f2b9e11f699d1da
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Fri Jun 17 01:05:00 2016 +0100

    New API fully ported; not tested yet but stuff compiles.

diff --git a/src/main/java/org/distorted/examples/bean/BeanRenderer.java b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
index 63b13ff..4517e26 100644
--- a/src/main/java/org/distorted/examples/bean/BeanRenderer.java
+++ b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
@@ -31,6 +31,7 @@ import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic2D;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedBitmap;
+import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static2D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
@@ -47,7 +48,7 @@ class BeanRenderer implements GLSurfaceView.Renderer
    private GLSurfaceView mView;
    private DistortedBitmap mBean;
    private Static2D pLeft, pRight;
-   private Dynamic2D iLeft, iRight;
+   private Dynamic3D dLeft, dRight;
    private Static4D rLeft, rRight;
    private int bmpHeight, bmpWidth;
     
@@ -63,30 +64,30 @@ class BeanRenderer implements GLSurfaceView.Renderer
       rLeft = new Static4D(-9,-31,35,35);
       rRight= new Static4D(-9,-31,35,35);
      
-      iLeft = new Dynamic2D();
-      iRight= new Dynamic2D();
+      dLeft = new Dynamic3D();
+      dRight= new Dynamic3D();
      
-      iLeft.setCount(0.0f);
-      iRight.setCount(0.0f);
-      iLeft.setDuration(1500);
-      iRight.setDuration(1500);
+      dLeft.setCount(0.0f);
+      dRight.setCount(0.0f);
+      dLeft.setDuration(1500);
+      dRight.setDuration(1500);
       
-      Static2D p1 = new Static2D(0,0);
-      Static2D p2 = new Static2D(-10,-34);
+      Static3D p1 = new Static3D(  0,  0, 0);
+      Static3D p2 = new Static3D(-10,-34, 0);
       
-      iLeft.add(p1);
-      iLeft.add(p1);
-      iLeft.add(p1);
-      iLeft.add(p1);
-      iLeft.add(p2);
-      iLeft.add(p2);
+      dLeft.add(p1);
+      dLeft.add(p1);
+      dLeft.add(p1);
+      dLeft.add(p1);
+      dLeft.add(p2);
+      dLeft.add(p2);
       
-      iRight.add(p1);
-      iRight.add(p2);
-      iRight.add(p2);
-      iRight.add(p1);
-      iRight.add(p1);
-      iRight.add(p1);
+      dRight.add(p1);
+      dRight.add(p2);
+      dRight.add(p2);
+      dRight.add(p1);
+      dRight.add(p1);
+      dRight.add(p1);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -149,8 +150,8 @@ class BeanRenderer implements GLSurfaceView.Renderer
       bmpWidth  = bitmap.getWidth();
       
       mBean = new DistortedBitmap(bitmap, 10);     
-      mBean.distort(iLeft , rLeft , pLeft );
-      mBean.distort(iRight, rRight, pRight);
+      mBean.distort(dLeft , pLeft , rLeft );
+      mBean.distort(dRight, pRight, rRight);
       
       try
         {
diff --git a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
index 05d6da0..0ee5b69 100644
--- a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
+++ b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
@@ -31,6 +31,8 @@ import org.distorted.library.Distorted;
 import org.distorted.library.DistortedBitmap;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic2D;
+import org.distorted.library.type.Dynamic3D;
+import org.distorted.library.type.Static1D;
 import org.distorted.library.type.Static2D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
@@ -49,8 +51,8 @@ class DifferentBitmapsRenderer implements GLSurfaceView.Renderer
    private GLSurfaceView mView;
    private DistortedBitmap[] bmp;
    private Static2D point;
-   private Dynamic2D di;
-   private Static2D[] vec;
+   private Dynamic3D dDistort;
+   private Static3D[] vec;
    private int bmpHeight, bmpWidth;
     
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -60,14 +62,14 @@ class DifferentBitmapsRenderer implements GLSurfaceView.Renderer
       mView = v;
      
       // create shared effects - enlarge the nose and keep moving the whole bitmap left and right.
-      di = new Dynamic2D();
-      di.setCount(0.0f);
-      di.setDuration(3000);
-      vec = new Static2D[2];
-      vec[0] = new Static2D( 25,0);
-      vec[1] = new Static2D(-25,0);
-      di.add(vec[0]);
-      di.add(vec[1]);
+      dDistort = new Dynamic3D();
+      dDistort.setCount(0.0f);
+      dDistort.setDuration(3000);
+      vec = new Static3D[2];
+      vec[0] = new Static3D( 25,0,0);
+      vec[1] = new Static3D(-25,0,0);
+      dDistort.add(vec[0]);
+      dDistort.add(vec[1]);
       point = new Static2D(305, 380);
       }
 
@@ -165,8 +167,8 @@ class DifferentBitmapsRenderer implements GLSurfaceView.Renderer
       bmp[1].setBitmap(bitmap1);
       bmp[2].setBitmap(bitmap2);
          
-      bmp[0].sink(8.0f, new Static4D(0,0,80,80), point, 0, 0.5f);
-      bmp[0].distort(di,point); 
+      bmp[0].sink( new Static1D(8), point, new Static4D(0,0,80,80));
+      bmp[0].distort(dDistort,point);
       
       try
         {
diff --git a/src/main/java/org/distorted/examples/girl/GirlRenderer.java b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
index dc5ab43..2690909 100644
--- a/src/main/java/org/distorted/examples/girl/GirlRenderer.java
+++ b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
@@ -214,13 +214,13 @@ class GirlRenderer implements GLSurfaceView.Renderer
       
       mGirl = new DistortedBitmap(bitmap, 30);
 
-      mGirl.sink( diSink, sinkRegion, pLeft );
-      mGirl.sink( diSink, sinkRegion, pRight);
+      mGirl.sink( diSink, pLeft, sinkRegion );
+      mGirl.sink( diSink, pRight,sinkRegion );
 
-      mGirl.distort(diL, Region, pLeft );
-      mGirl.distort(diR, Region, pRight);
+      mGirl.distort(diL, pLeft , Region);
+      mGirl.distort(diR, pRight, Region);
          
-      mGirl.swirl(diHips, HipsRegion, pHips);
+      mGirl.swirl(diHips, pHips, HipsRegion );
       
       try
         {
diff --git a/src/main/java/org/distorted/examples/scratchpad/ScratchpadSurfaceView.java b/src/main/java/org/distorted/examples/scratchpad/ScratchpadSurfaceView.java
index 2ba8fc4..e2682d7 100644
--- a/src/main/java/org/distorted/examples/scratchpad/ScratchpadSurfaceView.java
+++ b/src/main/java/org/distorted/examples/scratchpad/ScratchpadSurfaceView.java
@@ -46,7 +46,7 @@ public class ScratchpadSurfaceView extends GLSurfaceView
   private static Static2D point;
 
   private static Static4D mRegion;
-  private static Dynamic1D mInterA, mInterM, mInterB;
+  private static Dynamic1D mInterA, mInterM, mInterB, mInterS;
 
   private static Dynamic3D mInterD;
   private static Static3D v0, v1, v2, v3;
@@ -83,6 +83,12 @@ public class ScratchpadSurfaceView extends GLSurfaceView
     mInterA.add(new Static1D(1));
     mInterA.add(new Static1D(0));
 
+    mInterS = new Dynamic1D();
+    mInterS.setDuration(mDuration);
+    mInterS.setCount(mCount);
+    mInterS.add(new Static1D(1.0f));
+    mInterS.add(new Static1D(0.3f));
+
     mInterB = new Dynamic1D();
     mInterB.setDuration(mDuration);
     mInterB.setCount(mCount);
@@ -149,6 +155,7 @@ public class ScratchpadSurfaceView extends GLSurfaceView
     mInterA.setDuration(duration);
     mInterB.setDuration(duration);
     mInterM.setDuration(duration);
+    mInterS.setDuration(duration);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -160,6 +167,7 @@ public class ScratchpadSurfaceView extends GLSurfaceView
     mInterA.setCount(count);
     mInterB.setCount(count);
     mInterM.setCount(count);
+    mInterS.setCount(count);
     }
   
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -178,9 +186,9 @@ public class ScratchpadSurfaceView extends GLSurfaceView
 
                                     switch(mCurrentEffect)
                                       {
-                                      case 0: ScratchpadRenderer.mBackground.distort(mInterD, region, point);
+                                      case 0: ScratchpadRenderer.mBackground.distort(mInterD, point, region);
                                            break;
-                                      case 1: ScratchpadRenderer.mBackground.sink(0.3f, region, point, mDuration, mCount); 
+                                      case 1: ScratchpadRenderer.mBackground.sink(mInterS, point, region);
                                            break;
                                       case 2: ScratchpadRenderer.mBackground.alpha(mInterA, mRegion, false);
                                            break;  
diff --git a/src/main/java/org/distorted/examples/sink/SinkRenderer.java b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
index b269005..6032c45 100644
--- a/src/main/java/org/distorted/examples/sink/SinkRenderer.java
+++ b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
@@ -30,6 +30,8 @@ import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedBitmap;
 import org.distorted.library.EffectTypes;
+import org.distorted.library.type.Dynamic1D;
+import org.distorted.library.type.Static1D;
 import org.distorted.library.type.Static2D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
@@ -118,10 +120,16 @@ class SinkRenderer implements GLSurfaceView.Renderer
       
     bmpHeight = bitmap.getHeight();
     bmpWidth  = bitmap.getWidth();
-      
+
+    Dynamic1D dSink = new Dynamic1D();
+    dSink.setDuration(2000);
+    dSink.setCount(0);
+    dSink.add(new Static1D( 1));
+    dSink.add(new Static1D(10));
+
     sinkBmp = new DistortedBitmap(bitmap, 30);
-    sinkBmp.sink( 10.0f, Region, pLeft, 2000, 0.0f);
-    sinkBmp.sink(10.0f, Region, pRight,2000, 0.0f);
+    sinkBmp.sink( dSink, pLeft, Region);
+    sinkBmp.sink( dSink, pRight,Region);
       
     try
       {
