commit 2f20ae3adb66da8cc7d1efd41bb2440f0b6ce539
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Sun Nov 13 00:02:45 2016 +0000

    Around the World: setRace

diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldActivity.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldActivity.java
index c28a84b..d96ea1b 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldActivity.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldActivity.java
@@ -36,6 +36,11 @@ public class AroundTheWorldActivity extends Activity
       {
       super.onCreate(icicle);
       setContentView(R.layout.aroundtheworldlayout);
+
+      AroundTheWorldSurfaceView       view = (AroundTheWorldSurfaceView)       this.findViewById(R.id.aroundTheWorldSurfaceView);
+      AroundTheWorldSurfaceViewPicker pick = (AroundTheWorldSurfaceViewPicker) this.findViewById(R.id.aroundTheWorldSurfaceViewPicker);
+
+      pick.setEffectsManager(view.getManager());
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java
index 7930426..dbca660 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java
@@ -32,97 +32,43 @@ import org.distorted.library.type.Static5D;
 class AroundTheWorldEffectsManager
   {
   private int mHeight, mWidth;
-
-  private Static3D  shearFactor;
-  private Dynamic3D shearDynamic;
-  private Static3D  scaleFactor;
-  private Dynamic3D scaleDynamic;
-  private Static3D  deformForce;
-  private Static5D  windFactor11, windFactor12;
-  private Dynamic5D windDynamic1;
-  private Static5D  windFactor21, windFactor22;
-  private Dynamic5D windDynamic2;
-  private Static5D  windFactor31, windFactor32;
-  private Dynamic5D windDynamic3;
+  private float mBlackness, mAsianness;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  AroundTheWorldEffectsManager(DistortedObject obj)
+  AroundTheWorldEffectsManager()
     {
-    mHeight = obj.getHeight();
-    mWidth  = obj.getWidth();
-
-    shearFactor = new Static3D(0,0,0);
-    shearDynamic= new Dynamic3D();
-    shearDynamic.add(shearFactor);
-
-    scaleFactor = new Static3D(1,1,1);
-    scaleDynamic= new Dynamic3D();
-    scaleDynamic.add(scaleFactor);
-
-    deformForce = new Static3D(mWidth/3,0,0);
-
-    windFactor11 = new Static5D(mHeight/10,mHeight/5, 180, 0, 90);
-    windFactor12 = new Static5D(mHeight/10,mHeight/5,-180, 0, 90);
-    windDynamic1 = new Dynamic5D(1000,0.0f);
-    windDynamic1.add(windFactor11);
-    windDynamic1.add(windFactor12);
-    windDynamic1.setMode(Dynamic.MODE_JUMP);
-    windDynamic1.setAccessMode(Dynamic.ACCESS_SEQUENTIAL);
+    mHeight    = 0;
+    mWidth     = 0;
+    mBlackness = 0;
+    mAsianness = 0;
+    }
 
-    windFactor21 = new Static5D(mHeight/10,mHeight/5,-180, 90, 10);
-    windFactor22 = new Static5D(mHeight/10,mHeight/5,+180, 90, 10);
-    windDynamic2 = new Dynamic5D(1000,0.0f);
-    windDynamic2.add(windFactor21);
-    windDynamic2.add(windFactor22);
-    windDynamic2.setMode(Dynamic.MODE_JUMP);
-    windDynamic2.setAccessMode(Dynamic.ACCESS_SEQUENTIAL);
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    windFactor31 = new Static5D(mHeight/10,mHeight/10,-180, 90, 90);
-    windFactor32 = new Static5D(mHeight/10,mHeight/10,+180, 90, 90);
-    windDynamic3 = new Dynamic5D(1000,0.0f);
-    windDynamic3.add(windFactor31);
-    windDynamic3.add(windFactor32);
-    windDynamic3.setMode(Dynamic.MODE_JUMP);
-    windDynamic3.setAccessMode(Dynamic.ACCESS_SEQUENTIAL);
+  void setSize(int width, int height)
+    {
+    mWidth = width;
+    mHeight= height;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  synchronized void apply(DistortedObject obj, int wind)
+  synchronized void apply(DistortedObject obj)
     {
-    Static3D midLeft = new Static3D(0,mHeight/2,0);
-    Static3D midRight = new Static3D(mWidth,mHeight/2,0);
-    Static4D windRegion = new Static4D(0,0,mWidth,mHeight);
-
-    setWind(wind);
+    setRace(mBlackness, mAsianness);
 
-    obj.shear(shearDynamic,midLeft);
-    obj.scale(scaleDynamic);
-    obj.deform(deformForce,midRight);
-    obj.wave(windDynamic1, midRight, windRegion);
-    obj.wave(windDynamic2, midRight, windRegion);
-    obj.wave(windDynamic3, midRight, windRegion);
+    // TODO
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  synchronized void setWind(int wind)
+  synchronized void setRace(float blackness, float asianness)
     {
-    float tanAngle = (wind-50)/50.0f;
-
-    shearFactor.set2(tanAngle);
-    scaleFactor.set1(1/(float)Math.sqrt(1+tanAngle*tanAngle));
-    windDynamic1.setDuration( wind > 0 ? 100000/wind : Long.MAX_VALUE);
-    windDynamic2.setDuration( wind > 0 ?  80000/wind : Long.MAX_VALUE);
-    windDynamic3.setDuration( wind > 0 ? 100000/wind : Long.MAX_VALUE);
-
-    float waveA = (mHeight/(20.0f-0.15f*wind));
-    windFactor21.set1(waveA);
-    windFactor22.set1(waveA);
+    mBlackness = blackness;
+    mAsianness = asianness;
 
-    float waveB = (mHeight/(wind+5.0f));
-    windFactor31.set1(waveB);
-    windFactor32.set1(waveB);
+    android.util.Log.e("manager", "blackness="+blackness+" asianness="+asianness);
+    // TODO
     }
   }
diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
index bb25498..ede288a 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
@@ -51,10 +51,18 @@ class AroundTheWorldRenderer implements GLSurfaceView.Renderer
    AroundTheWorldRenderer(GLSurfaceView view)
       {
       mView = view;
+      mEffects = new AroundTheWorldEffectsManager();
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-   
+
+   public AroundTheWorldEffectsManager getManager()
+     {
+     return mEffects;
+     }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
    public void onDrawFrame(GL10 glUnused) 
       {
       GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
@@ -108,12 +116,14 @@ class AroundTheWorldRenderer implements GLSurfaceView.Renderer
         }
 
       mObject = new DistortedBitmap(bitmap.getWidth(),bitmap.getHeight(),30);
-      mEffects = new AroundTheWorldEffectsManager(mObject);
 
       mObjWidth = mObject.getWidth();
       mObjHeight= mObject.getHeight();
 
+      mEffects.setSize(mObjWidth,mObjHeight);
+
       mObject.setBitmap(bitmap);
+      mEffects.apply(mObject);
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceView.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceView.java
index 75a4f44..9a90744 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceView.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceView.java
@@ -49,6 +49,13 @@ class AroundTheWorldSurfaceView extends GLSurfaceView
         setRenderer(mRenderer);
         }
       }
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public AroundTheWorldEffectsManager getManager()
+      {
+      return mRenderer.getManager();
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public AroundTheWorldRenderer getRenderer()
diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceViewPicker.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceViewPicker.java
index 213a558..18760e4 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceViewPicker.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceViewPicker.java
@@ -30,6 +30,7 @@ import android.view.MotionEvent;
 class AroundTheWorldSurfaceViewPicker extends GLSurfaceView
 {
     private AroundTheWorldRendererPicker mRenderer;
+    private AroundTheWorldEffectsManager mManager;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -50,6 +51,7 @@ class AroundTheWorldSurfaceViewPicker extends GLSurfaceView
         setRenderer(mRenderer);
         }
       }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public AroundTheWorldRendererPicker getRenderer()
@@ -57,6 +59,13 @@ class AroundTheWorldSurfaceViewPicker extends GLSurfaceView
       return mRenderer;
       }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public void setEffectsManager(AroundTheWorldEffectsManager manager)
+      {
+      mManager = manager;
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     @Override public boolean onTouchEvent(MotionEvent event)
@@ -91,6 +100,7 @@ class AroundTheWorldSurfaceViewPicker extends GLSurfaceView
           }
 
         mRenderer.move(xf,yf);
+        mManager.setRace( 1.0f - (yf+1.5f)/3.0f, (xf+0.865f)/(3*0.865f) );
         }
 
       return true;
diff --git a/src/main/java/org/distorted/examples/fov/FOVSurfaceView.java b/src/main/java/org/distorted/examples/fov/FOVSurfaceView.java
index 20d9cb4..f053761 100644
--- a/src/main/java/org/distorted/examples/fov/FOVSurfaceView.java
+++ b/src/main/java/org/distorted/examples/fov/FOVSurfaceView.java
@@ -47,7 +47,5 @@ class FOVSurfaceView extends GLSurfaceView
         setRenderer(renderer);
         }
       }
-
 }
-///////////////////////////////////////////////////////////////////////////////////////////////////
 
