commit 508f22b5ac6ccff2be919ef906a2de7e04e8688b
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Wed Nov 2 13:21:59 2016 +0000

    Improvements to the Dynamic app.

diff --git a/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java b/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
index 3d38742..7430392 100644
--- a/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
+++ b/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
@@ -83,6 +83,7 @@ class DynamicRenderer implements GLSurfaceView.Renderer
      mCanvas = new Canvas(mBitmap);
 
      Distorted.onSurfaceChanged(texW,texH);
+     DynamicSurfaceView.onSurfaceChanged(texW,texH);
      }
    
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/dynamic/DynamicSurfaceView.java b/src/main/java/org/distorted/examples/dynamic/DynamicSurfaceView.java
index 03c886a..8c87612 100644
--- a/src/main/java/org/distorted/examples/dynamic/DynamicSurfaceView.java
+++ b/src/main/java/org/distorted/examples/dynamic/DynamicSurfaceView.java
@@ -44,8 +44,8 @@ public class DynamicSurfaceView extends GLSurfaceView
     public static final int DIM_3DXY = 2; 
     public static final int DIM_3DXZ = 3; 
 
-    private static final int NUM_POINTS = 400;
-    private static final int MAX_VECTORS=   6;
+    private static final int NUM_POINTS = 250;
+    private static final int MAX_POINTS =   6;
 
     private static final Object lock = new Object();
 
@@ -58,8 +58,10 @@ public class DynamicSurfaceView extends GLSurfaceView
     private static int mDuration;
     private static int mPosition;
     private static float mNoise0, mNoise1, mNoise2;
-    
-    private static int currentDim;
+
+    private static int mSize1, mSize2, mSizeT, mAvg;
+
+    private static int currentDim= DIM_2D;
     
     private static Static1D p1D;
     private static Static2D p2D;
@@ -81,7 +83,6 @@ public class DynamicSurfaceView extends GLSurfaceView
       mPaint.setStyle(Style.FILL);
       mPaint.setAntiAlias(true);
 
-      currentDim= DIM_2D;
       moving    = -1;
       mDuration = 10000;
       mPosition = 0;
@@ -113,6 +114,21 @@ public class DynamicSurfaceView extends GLSurfaceView
         }
       }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public static void onSurfaceChanged(int width,int height)
+      {
+      mAvg = (width+height)/2;
+
+      mSize1 = mAvg/150;
+      mSize2 = mAvg/60;
+      mSizeT = mAvg/30;
+
+      mPaint.setTextSize(mSizeT);
+
+      clearPoints();
+      }
+
 ///////////////////////////////////////////////////////////////////
 
     public static void setMode(int mode)
@@ -164,10 +180,7 @@ public class DynamicSurfaceView extends GLSurfaceView
             di2D.removeAll();
             di3D.removeAll();
 
-            for(int i=0; i<3*NUM_POINTS; i++)
-              {
-              mPoints[i] = -10.0f;
-              }
+            clearPoints();
             }
           }
       
@@ -193,17 +206,24 @@ public class DynamicSurfaceView extends GLSurfaceView
       }
 
 ///////////////////////////////////////////////////////////////////
-      
+
+    private static void clearPoints()
+      {
+      for(int i=0; i<3*NUM_POINTS; i++)
+         {
+         mPoints[i] = -10.0f;
+         }
+      }
+
+///////////////////////////////////////////////////////////////////
+
     private static void drawCurve1D(Canvas c, long time)
       {
       int len = di1D.getNumPoints();   
-      int size1 = DynamicRenderer.texH/200;
-      int size2 = DynamicRenderer.texH/80;
-
       mPaint.setColor(0xff000000);
       
       c.drawLine(0, DynamicRenderer.texH/2, DynamicRenderer.texW, DynamicRenderer.texH/2, mPaint);
-      c.drawText("x", 0.95f* DynamicRenderer.texW, 0.55f* DynamicRenderer.texH , mPaint);
+      c.drawText("x", 0.95f*DynamicRenderer.texW, DynamicRenderer.texH /2 + mSizeT , mPaint);
 
       if( len>=2 )
         {
@@ -215,7 +235,7 @@ public class DynamicSurfaceView extends GLSurfaceView
                                    : 0xff - (mPosition+NUM_POINTS-i)*0xff/(NUM_POINTS-1);
          
           mPaint.setColor( 0xffffff + ((color&0xff)<<24) ); 
-          c.drawCircle(mPoints[3*i], DynamicRenderer.texH/2 , size1, mPaint );
+          c.drawCircle(mPoints[3*i], DynamicRenderer.texH/2 , mSize1, mPaint );
           }
         }
      
@@ -224,7 +244,7 @@ public class DynamicSurfaceView extends GLSurfaceView
       for(int curr=0; curr<len; curr++)
         {      
         p1D = di1D.getPoint(curr);
-        c.drawCircle(p1D.getX(), DynamicRenderer.texH/2 , size2, mPaint);
+        c.drawCircle(p1D.getX(), DynamicRenderer.texH/2 , mSize2, mPaint);
         }   
       }
     
@@ -233,30 +253,25 @@ public class DynamicSurfaceView extends GLSurfaceView
     private static void drawCurve2D(Canvas c, long time)
       {
       int len = di2D.getNumPoints();   
-      int size1 = DynamicRenderer.texH/200;
-      int size2 = DynamicRenderer.texH/80;
-
       mPaint.setColor(0xff000000);
       
       c.drawLine(0, DynamicRenderer.texH/2, DynamicRenderer.texW, DynamicRenderer.texH/2, mPaint);
       c.drawLine(DynamicRenderer.texW/2, 0, DynamicRenderer.texW/2, DynamicRenderer.texH, mPaint);
       
-      c.drawText("x", 0.95f* DynamicRenderer.texW, 0.55f* DynamicRenderer.texH , mPaint);
-      c.drawText("y", 0.55f* DynamicRenderer.texW, 0.05f* DynamicRenderer.texH , mPaint);
+      c.drawText("x", 0.95f* DynamicRenderer.texW    , DynamicRenderer.texH/2+mSizeT , mPaint);
+      c.drawText("y", DynamicRenderer.texW/2 + mSizeT,                        mSizeT , mPaint);
       
       if( len>=2 )
         {
         di2D.interpolateMain(mPoints,3*mPosition, time);
 
-//android.util.Log.e("surface", "pos="+mPosition+" x="+mPoints[3*mPosition]+" y="+mPoints[3*mPosition+1]+" time="+time);
-
         for(int i=0; i<NUM_POINTS; i++)
           {
           int color = i<=mPosition ? 0xff - (mPosition           -i)*0xff/(NUM_POINTS-1)
                                    : 0xff - (mPosition+NUM_POINTS-i)*0xff/(NUM_POINTS-1);
          
           mPaint.setColor( 0xffffff + ((color&0xff)<<24) );
-          c.drawCircle(mPoints[3*i], mPoints[3*i+1], size1, mPaint );
+          c.drawCircle(mPoints[3*i], mPoints[3*i+1], mSize1, mPaint );
           }
         }
      
@@ -265,7 +280,7 @@ public class DynamicSurfaceView extends GLSurfaceView
       for(int curr=0; curr<len; curr++)
         {      
         p2D = di2D.getPoint(curr);
-        c.drawCircle(p2D.getX(),p2D.getY(), size2, mPaint);
+        c.drawCircle(p2D.getX(),p2D.getY(), mSize2, mPaint);
         }
       }
 
@@ -274,16 +289,13 @@ public class DynamicSurfaceView extends GLSurfaceView
     private static void drawCurve3D(Canvas c, long time)
       {
       int len = di3D.getNumPoints();   
-      int size1 = DynamicRenderer.texH/200;
-      int size2 = DynamicRenderer.texH/80;
-
       mPaint.setColor(0xff000000);
       
       c.drawLine(0, DynamicRenderer.texH/2, DynamicRenderer.texW  , DynamicRenderer.texH/2, mPaint);
       c.drawLine(DynamicRenderer.texW/2, 0, DynamicRenderer.texW/2, DynamicRenderer.texH  , mPaint);
       
-      c.drawText("x", 0.95f* DynamicRenderer.texW, 0.55f* DynamicRenderer.texH , mPaint);
-      c.drawText( currentDim==DIM_3DXY ? "y" : "z", 0.55f* DynamicRenderer.texW, 0.05f* DynamicRenderer.texH , mPaint);
+      c.drawText( "x"                             , 0.95f* DynamicRenderer.texW    , DynamicRenderer.texH/2 + mSizeT , mPaint);
+      c.drawText( currentDim==DIM_3DXY ? "y" : "z", DynamicRenderer.texW/2 + mSizeT,                          mSizeT , mPaint);
       
       if( len>=2 )
         {
@@ -295,7 +307,7 @@ public class DynamicSurfaceView extends GLSurfaceView
                                    : 0xff - (mPosition+NUM_POINTS-i)*0xff/(NUM_POINTS-1);
          
           mPaint.setColor( 0xffffff + ((color&0xff)<<24) ); 
-          c.drawCircle(mPoints[3*i], mPoints[3*i + (currentDim==DIM_3DXY ? 1:2) ], size1, mPaint );
+          c.drawCircle(mPoints[3*i], mPoints[3*i + (currentDim==DIM_3DXY ? 1:2) ], mSize1, mPaint );
           }
         }
      
@@ -304,7 +316,7 @@ public class DynamicSurfaceView extends GLSurfaceView
       for(int curr=0; curr<len; curr++)
         {      
         p3D = di3D.getPoint(curr);
-        c.drawCircle(p3D.getX(), currentDim==DIM_3DXY ? p3D.getY():p3D.getZ(), size2, mPaint);
+        c.drawCircle(p3D.getX(), currentDim==DIM_3DXY ? p3D.getY():p3D.getZ(), mSize2, mPaint);
         }   
       }
     
@@ -324,7 +336,7 @@ public class DynamicSurfaceView extends GLSurfaceView
                        p1D = di1D.getPoint(g);  
                        gx = p1D.getX();
                                     
-                       if( (x-gx)*(x-gx) < (DynamicRenderer.texH)*(DynamicRenderer.texH)/100 )
+                       if( (x-gx)*(x-gx) < (mAvg*mAvg/100) )
                          {
                          moving = g;
                          break;
@@ -334,7 +346,11 @@ public class DynamicSurfaceView extends GLSurfaceView
                        {
                        synchronized(lock)
                          {
-                         if( len>=MAX_VECTORS ) di1D.removeAll();
+                         if( len>=MAX_POINTS )
+                           {
+                           di1D.removeAll();
+                           clearPoints();
+                           }
                          di1D.add(new Static1D(x));
                          }
                        }
@@ -347,7 +363,7 @@ public class DynamicSurfaceView extends GLSurfaceView
                        gx = p2D.getX();
                        gy = p2D.getY();
                                     
-                       if( (x-gx)*(x-gx) + (y-gy)*(y-gy) < (DynamicRenderer.texH)*(DynamicRenderer.texH)/100 )
+                       if( (x-gx)*(x-gx) + (y-gy)*(y-gy) < (mAvg*mAvg/100) )
                          {
                          moving = g;
                          break;
@@ -357,7 +373,11 @@ public class DynamicSurfaceView extends GLSurfaceView
                        {
                        synchronized(lock)
                          {
-                         if( len>=MAX_VECTORS ) di2D.removeAll();
+                         if( len>=MAX_POINTS )
+                           {
+                           di2D.removeAll();
+                           clearPoints();
+                           }
                          di2D.add(new Static2D(x,y));
                          }
                        }
@@ -373,7 +393,7 @@ public class DynamicSurfaceView extends GLSurfaceView
                                
                      if( currentDim==DIM_3DXY )
                        {
-                       if( (x-gx)*(x-gx) + (y-gy)*(y-gy) < (DynamicRenderer.texH)*(DynamicRenderer.texH)/100 )
+                       if( (x-gx)*(x-gx) + (y-gy)*(y-gy) < (mAvg*mAvg/100) )
                          {
                          moving = g;
                          break;
@@ -381,7 +401,7 @@ public class DynamicSurfaceView extends GLSurfaceView
                        }
                      if( currentDim==DIM_3DXZ )
                        {
-                       if( (x-gx)*(x-gx) + (y-gz)*(y-gz) < (DynamicRenderer.texH)*(DynamicRenderer.texH)/100 )
+                       if( (x-gx)*(x-gx) + (y-gz)*(y-gz) < (mAvg*mAvg/100) )
                          {
                          moving = g;
                          break;
@@ -392,7 +412,11 @@ public class DynamicSurfaceView extends GLSurfaceView
                      { 
                      synchronized(lock)
                        {
-                       if( len>=MAX_VECTORS ) di3D.removeAll();
+                       if( len>=MAX_POINTS )
+                         {
+                         di3D.removeAll();
+                         clearPoints();
+                         }
                     
                        if( currentDim==DIM_3DXY )
                          {
diff --git a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
index e6762fe..c94a586 100644
--- a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
+++ b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
@@ -34,7 +34,6 @@ import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static1D;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedBitmap;
-import org.distorted.library.type.Static4D;
 
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -57,7 +56,7 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
     
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-   public OlimpicRenderer(GLSurfaceView v) 
+   OlimpicRenderer(GLSurfaceView v)
       {     
       mView = v;
     
