commit cdc515b9d519bbe5be63d88a33959e40b72d6f0c
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Tue Nov 15 13:09:45 2016 +0000

    Correct Bean

diff --git a/src/main/java/org/distorted/examples/bean/BeanRenderer.java b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
index 8883917..29ceb20 100644
--- a/src/main/java/org/distorted/examples/bean/BeanRenderer.java
+++ b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
@@ -57,17 +57,17 @@ class BeanRenderer implements GLSurfaceView.Renderer
       {
       mView = v;
      
-      pLeft = new Static3D(106, 192, 0);
-      pRight= new Static3D(230, 150, 0);
+      pLeft = new Static3D( 98, 183, 0);
+      pRight= new Static3D(233, 140, 0);
       
-      rLeft = new Static4D(-9,-31,35,35);
-      rRight= new Static4D(-9,-31,35,35);
+      rLeft = new Static4D( -3,-33,47,47);
+      rRight= new Static4D(-14,-33,47,47);
      
       dLeft = new Dynamic3D(2000,0.0f);
       dRight= new Dynamic3D(2000,0.0f);
 
       Static3D p1 = new Static3D(  0,  0, 0);
-      Static3D p2 = new Static3D(-10,-30, 0);
+      Static3D p2 = new Static3D(-15,-30, 0);
       
       dLeft.add(p1);
       dLeft.add(p1);
@@ -143,7 +143,7 @@ class BeanRenderer implements GLSurfaceView.Renderer
       bmpHeight = bitmap.getHeight();
       bmpWidth  = bitmap.getWidth();
       
-      mBean = new DistortedBitmap(bitmap, 30);
+      mBean = new DistortedBitmap(bitmap, 25);
       mBean.distort(dLeft , pLeft , rLeft );
       mBean.distort(dRight, pRight, rRight);
       
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
index 993d061..0a7d981 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
@@ -67,7 +67,8 @@ public class Effects3DActivity extends Activity
   private boolean[] mShape;
   private DistortedObject mObject;
   private int mObjectType;
-  private int mBitmap;
+  private int mBitmapID;
+  private Bitmap mBitmap;
 
   private ArrayList<Effects3DEffect> mEffects;
   private int mEffectAdd;
@@ -134,7 +135,7 @@ public class Effects3DActivity extends Activity
     Spinner bitmapSpinner  = (Spinner)findViewById(R.id.objectpicker_spinnerBitmap);
     bitmapSpinner.setOnItemSelectedListener(this);
 
-    String[] objectBitmap = new String[] { "Grid", "Girl", "Dog", "Cat", "Squares"};
+    String[] objectBitmap = new String[] { "Grid", "Girl", "Dog", "Cat", "Squares", "Bean", "Lisa"};
 
     ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectBitmap);
     adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
@@ -251,49 +252,50 @@ public class Effects3DActivity extends Activity
 
   public Bitmap getBitmap()
     {
-    Bitmap bmp;
-
-    if( mBitmap!=-1)
+    if( mBitmap==null )
       {
-      InputStream is = getResources().openRawResource(mBitmap);
-
-      try
-        {
-        bmp = BitmapFactory.decodeStream(is);
-        }
-      finally
+      if( mBitmapID!=-1)
         {
+        InputStream is = getResources().openRawResource(mBitmapID);
+
         try
           {
-          is.close();
+          mBitmap = BitmapFactory.decodeStream(is);
+          }
+        finally
+          {
+          try
+            {
+            is.close();
+            }
+          catch(IOException e) { }
           }
-        catch(IOException e) { }
         }
-      }
-    else
-      {
-      final int W = 640;
-      final int H = 640;
+      else
+        {
+        final int W = 640;
+        final int H = 640;
 
-      Paint paint = new Paint();
-      bmp = Bitmap.createBitmap(W,H, Bitmap.Config.ARGB_8888);
-      Canvas canvas = new Canvas(bmp);
+        Paint paint = new Paint();
+        mBitmap = Bitmap.createBitmap(W,H, Bitmap.Config.ARGB_8888);
+        Canvas canvas = new Canvas(mBitmap);
 
-      paint.setAntiAlias(true);
-      paint.setTextAlign(Paint.Align.CENTER);
-      paint.setColor(0xff008800);
-      paint.setStyle(Paint.Style.FILL);
-      canvas.drawRect(0, 0, W, H, paint);
-      paint.setColor(0xffffffff);
+        paint.setAntiAlias(true);
+        paint.setTextAlign(Paint.Align.CENTER);
+        paint.setColor(0xff008800);
+        paint.setStyle(Paint.Style.FILL);
+        canvas.drawRect(0, 0, W, H, paint);
+        paint.setColor(0xffffffff);
 
-      for(int i=0; i<=mNumCols ; i++ )
-        {
-        canvas.drawRect(W*i/mNumCols - 1,                0,  W*i/mNumCols + 1,  H               , paint);
-        canvas.drawRect(               0, H *i/mNumCols -1,  W               ,  H*i/mNumCols + 1, paint);
+        for(int i=0; i<=mNumCols ; i++ )
+          {
+          canvas.drawRect(W*i/mNumCols - 1,                0,  W*i/mNumCols + 1,  H               , paint);
+          canvas.drawRect(               0, H *i/mNumCols -1,  W               ,  H*i/mNumCols + 1, paint);
+          }
         }
       }
 
-    return bmp;
+    return mBitmap;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -381,11 +383,12 @@ public class Effects3DActivity extends Activity
     firstScreen = false;
 
     Distorted.setMaxVertex(20);    // those have to be called before
-    Distorted.setMaxFragment(10);  // any DistortedObject gets created!
+    Distorted.setMaxFragment(3);   // any DistortedObject gets created!
 
     if( mObjectType==1 )
       {
-      mObject = new DistortedBitmap(100,100,mNumCols);
+      getBitmap();
+      mObject = new DistortedBitmap(mBitmap.getWidth(),mBitmap.getHeight(),mNumCols);
       setEffectView();
       }
     else
@@ -429,11 +432,13 @@ public class Effects3DActivity extends Activity
                                             break;
       case R.id.objectpicker_spinnerBitmap: switch(pos)
                                               {
-                                              case 0: mBitmap = -1        ; break;
-                                              case 1: mBitmap = R.raw.face; break;
-                                              case 2: mBitmap = R.raw.dog;  break;
-                                              case 3: mBitmap = R.raw.cat;  break;
-                                              case 4: mBitmap = R.raw.grid; break;
+                                              case 0: mBitmapID = -1        ; break;
+                                              case 1: mBitmapID = R.raw.face; break;
+                                              case 2: mBitmapID = R.raw.dog ; break;
+                                              case 3: mBitmapID = R.raw.cat ; break;
+                                              case 4: mBitmapID = R.raw.grid; break;
+                                              case 5: mBitmapID = R.raw.bean; break;
+                                              case 6: mBitmapID = R.raw.monalisa; break;
                                               }
                                             break;
       case R.id.effects3dspinner          : mEffectAdd = pos;
