commit 41d39cea86c5eb30dcc15e6be6473b987cc3c205
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Thu Nov 3 10:34:25 2016 +0000

    Flag app finished

diff --git a/src/main/java/org/distorted/examples/flag/FlagActivity.java b/src/main/java/org/distorted/examples/flag/FlagActivity.java
index 4237102..193905d 100644
--- a/src/main/java/org/distorted/examples/flag/FlagActivity.java
+++ b/src/main/java/org/distorted/examples/flag/FlagActivity.java
@@ -142,37 +142,43 @@ public class FlagActivity extends Activity implements SeekBar.OnSeekBarChangeLis
 
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
       {
+      FlagSurfaceView mView = (FlagSurfaceView) this.findViewById(R.id.flagSurfaceView);
+      FlagRenderer renderer = mView.getRenderer();
+
       switch (bar.getId())
         {
-        case R.id.flagSeekAmplitude     : FlagRenderer.setAmplitude(progress);
+        case R.id.flagSeekAmplitude     : renderer.setAmplitude(progress);
                                           textAmplitude.setText("Amplitude "+progress);
                                           break;
-        case R.id.flagSeekNoiseAmplitude: noise.set( (float)progress, noise.getY(), noise.getZ(), noise.getW(), noise.getV() );
-                                          FlagRenderer.setNoise(noise);
+        case R.id.flagSeekNoiseAmplitude: noise.set1((float)progress/100);
+                                          renderer.setNoise(noise);
                                           convert(progress);
                                           textNoiseAmplitude.setText("Noise "+mStr );
                                           break;
-        case R.id.flagSeekLength        : FlagRenderer.setLength(progress);
-                                          textLength.setText("Length "+(progress*2));
+        case R.id.flagSeekLength        : progress = progress*2;
+                                          renderer.setLength(progress);
+                                          textLength.setText("Length "+progress);
                                           break;
-        case R.id.flagSeekNoiseLength   : noise.set( noise.getX(), (float)progress, noise.getZ(), noise.getW(), noise.getV() );
-                                          FlagRenderer.setNoise(noise);
+        case R.id.flagSeekNoiseLength   : noise.set2((float)progress/100);
+                                          renderer.setNoise(noise);
                                           convert(progress);
                                           textNoiseLength.setText("Noise "+mStr );
                                           break;
-        case R.id.flagSeekAngleA        : FlagRenderer.setAngleA(progress);
-                                          textAngleA.setText("Alpha "+((360*progress)/100));
+        case R.id.flagSeekAngleA        : progress = (360*progress)/100;
+                                          renderer.setAngleA(progress);
+                                          textAngleA.setText("Alpha "+progress);
                                           break;
-        case R.id.flagSeekNoiseAngleA   : noise.set( noise.getX(), noise.getY(), noise.getZ() ,(float)progress, noise.getV() );
-                                          FlagRenderer.setNoise(noise);
+        case R.id.flagSeekNoiseAngleA   : noise.set4((float)progress/100);
+                                          renderer.setNoise(noise);
                                           convert(progress);
                                           textNoiseAngleA.setText("Noise "+mStr );
                                           break;
-        case R.id.flagSeekAngleB        : FlagRenderer.setAngleB(progress);
-                                          textAngleB.setText("Beta "+((360*progress)/100));
+        case R.id.flagSeekAngleB        : progress = ((360*progress)/100);
+                                          renderer.setAngleB(progress);
+                                          textAngleB.setText("Beta "+progress);
                                           break;
-        case R.id.flagSeekNoiseAngleB   : noise.set( noise.getX(), noise.getY(), noise.getZ(), noise.getW(), (float)progress );
-                                          FlagRenderer.setNoise(noise);
+        case R.id.flagSeekNoiseAngleB   : noise.set5((float)progress/100);
+                                          renderer.setNoise(noise);
                                           convert(progress);
                                           textNoiseAngleB.setText("Noise "+mStr );
                                           break;
diff --git a/src/main/java/org/distorted/examples/flag/FlagRenderer.java b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
index 8894ff2..3a29163 100644
--- a/src/main/java/org/distorted/examples/flag/FlagRenderer.java
+++ b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
@@ -51,6 +51,8 @@ class FlagRenderer implements GLSurfaceView.Renderer
     private DistortedObject mObject;
     private int mObjWidth, mObjHeight;
     private DynamicQuat mQuatInt1, mQuatInt2;
+    private Dynamic5D mWaveDyn;
+    private Static5D mWaveSta1, mWaveSta2;
 
     Static4D mQuat1, mQuat2;
 
@@ -67,19 +69,14 @@ class FlagRenderer implements GLSurfaceView.Renderer
       mObjWidth = mObject.getWidth();
       mObjHeight= mObject.getHeight();
 
-      Static2D mWaveCenter = new Static2D(mObjWidth, mObjHeight/2);  // middle of the right edge
-      Static4D mWaveRegion = new Static4D(0,0,mObjWidth,mObjWidth);
-
-      Dynamic5D mWaveDyn = new Dynamic5D(1000,0.0f);
-      Static5D  mWaveSta1= new Static5D(50,100,-180,90,0);
-      Static5D  mWaveSta2= new Static5D(50,100,+180,90,0);
+      mWaveDyn = new Dynamic5D(1000,0.0f);
+      mWaveSta1= new Static5D(0,0,-180,0,0);  // all other values besides the
+      mWaveSta2= new Static5D(0,0,+180,0,0);  // fourth will be set from the UI
 
       mWaveDyn.add(mWaveSta1);
       mWaveDyn.add(mWaveSta2);
       mWaveDyn.setMode(Dynamic.MODE_JUMP);
 
-      //mWaveDyn.setNoise( new Static5D(0.1f, 0.1f, 0.1f, 0.1f, 0.1f) );
-
       mQuat1 = new Static4D(           0,         0,           0,          1);  // unity quaternion
       mQuat2 = new Static4D(-0.25189602f,0.3546389f,0.009657208f,0.90038127f);  // something semi-random that looks good
 
@@ -89,42 +86,49 @@ class FlagRenderer implements GLSurfaceView.Renderer
       mQuatInt1.add(mQuat1);
       mQuatInt2.add(mQuat2);
 
-      mObject.wave(mWaveDyn, mWaveCenter, mWaveRegion);
+      Static2D waveCenter = new Static2D(mObjWidth, mObjHeight/2);  // middle of the right edge
+      Static4D waveRegion = new Static4D(0,0,mObjWidth,mObjWidth);
+
+      mObject.wave(mWaveDyn, waveCenter, waveRegion);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    public static void setAmplitude(int a)
+    void setAmplitude(int a)
       {
-
+      mWaveSta1.set1(a);
+      mWaveSta2.set1(a);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    public static void setLength(int l)
+    void setLength(int l)
       {
-
+      mWaveSta1.set2(l);
+      mWaveSta2.set2(l);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    public static void setAngleA(int a)
+    void setAngleA(int a)
       {
-
+      mWaveSta1.set4(a);
+      mWaveSta2.set4(a);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    public static void setAngleB(int b)
+    void setAngleB(int b)
       {
-
+      mWaveSta1.set5(b);
+      mWaveSta2.set5(b);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    public static void setNoise(Static5D noise)
+    void setNoise(Static5D noise)
       {
-
+      mWaveDyn.setNoise(noise);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/flag/FlagSurfaceView.java b/src/main/java/org/distorted/examples/flag/FlagSurfaceView.java
index c0e90d0..6954f34 100644
--- a/src/main/java/org/distorted/examples/flag/FlagSurfaceView.java
+++ b/src/main/java/org/distorted/examples/flag/FlagSurfaceView.java
@@ -57,7 +57,14 @@ class FlagSurfaceView extends GLSurfaceView
       }
     
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-    
+
+    public FlagRenderer getRenderer()
+      {
+      return mRenderer;
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
     @Override public boolean onTouchEvent(MotionEvent event) 
       {
       int action = event.getAction();
