commit 10b7e588e665e44bb95c37f020cf163177e8e21f
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Mon Dec 12 21:14:07 2016 +0000

    Rename various classes; fix a bug in Around the World.

diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
index 63e66f6..ec6edad 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
@@ -26,7 +26,7 @@ import android.opengl.GLSurfaceView;
 
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Static3D;
@@ -43,7 +43,7 @@ class AroundTheWorldRenderer implements GLSurfaceView.Renderer
 {
    private GLSurfaceView mView;
    private DistortedObject mObject;
-   private DistortedBitmapGrid mGrid;
+   private GridFlat mGrid;
    private AroundTheWorldEffectsManager mEffects;
    private int mObjWidth, mObjHeight;
 
@@ -119,15 +119,14 @@ class AroundTheWorldRenderer implements GLSurfaceView.Renderer
         catch(IOException e) { }
         }
 
-
-      mObjWidth = mObject.getWidth();
-      mObjHeight= mObject.getHeight();
+      mObjWidth = bitmap.getWidth();
+      mObjHeight= bitmap.getHeight();
 
       mObject = new DistortedObject(mObjWidth,mObjHeight,1);
       mObject.setTexture(bitmap);
       mEffects.apply(mObject);
 
-      mGrid = new DistortedBitmapGrid(30,30*mObjHeight/mObjWidth);
+      mGrid = new GridFlat(30,30*mObjHeight/mObjWidth);
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/bean/BeanRenderer.java b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
index 6577e90..683be70 100644
--- a/src/main/java/org/distorted/examples/bean/BeanRenderer.java
+++ b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
@@ -30,7 +30,7 @@ import org.distorted.examples.R;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
@@ -46,7 +46,7 @@ class BeanRenderer implements GLSurfaceView.Renderer
 {
    private GLSurfaceView mView;
    private DistortedObject mBean;
-   private DistortedBitmapGrid mGrid;
+   private GridFlat mGrid;
    private Static3D pLeft, pRight;
    private Dynamic3D dLeft, dRight;
    private Static4D rLeft, rRight;
@@ -149,7 +149,7 @@ class BeanRenderer implements GLSurfaceView.Renderer
       mBean.distort(dLeft , pLeft , rLeft );
       mBean.distort(dRight, pRight, rRight);
 
-      mGrid = new DistortedBitmapGrid(25,25*bmpHeight/bmpWidth);
+      mGrid = new GridFlat(25,25*bmpHeight/bmpWidth);
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java b/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
index 5475650..d03b663 100644
--- a/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
+++ b/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
@@ -28,7 +28,7 @@ import javax.microedition.khronos.opengles.GL10;
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic1D;
 import org.distorted.library.type.Dynamic3D;
@@ -47,7 +47,7 @@ class CatAndDogRenderer implements GLSurfaceView.Renderer
 {
     private GLSurfaceView mView;
     private DistortedObject mObject;
-    private DistortedBitmapGrid mGrid;
+    private GridFlat mGrid;
     private Static4D chromaRegion, alphaRegion;
     private int bmpHeight, bmpWidth;
 
@@ -94,7 +94,7 @@ class CatAndDogRenderer implements GLSurfaceView.Renderer
       bmpHeight = bitmap.getHeight();
       bmpWidth  = bitmap.getWidth();
 
-      mGrid = new DistortedBitmapGrid(1,1);  // no vertex effects, grid can be a (1x1) quad.
+      mGrid = new GridFlat(1,1);  // no vertex effects, grid can be a (1x1) quad.
 
       mObject = new DistortedObject(bmpWidth,bmpHeight,1);
       mObject.setTexture(bitmap);
diff --git a/src/main/java/org/distorted/examples/check/CheckRenderer.java b/src/main/java/org/distorted/examples/check/CheckRenderer.java
index e8809f4..e404ff0 100644
--- a/src/main/java/org/distorted/examples/check/CheckRenderer.java
+++ b/src/main/java/org/distorted/examples/check/CheckRenderer.java
@@ -29,7 +29,7 @@ import org.distorted.examples.R;
 
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static1D;
@@ -55,7 +55,7 @@ class CheckRenderer implements GLSurfaceView.Renderer
 
     private GLSurfaceView mView;
     private DistortedObject mSuccess;
-    private DistortedBitmapGrid mGrid;
+    private GridFlat mGrid;
     private int bmpHeight, bmpWidth;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -131,7 +131,7 @@ class CheckRenderer implements GLSurfaceView.Renderer
 
       mSuccess = new DistortedObject(bmpWidth,bmpHeight,1);
       mSuccess.setTexture(bitmap);
-      mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
+      mGrid = new GridFlat(30,30*bmpHeight/bmpWidth);
 
       // Try adding 2 Vertex Effects to the Bitmap.
       // This will fail if we have set maxVertexEffects to something < 2.
diff --git a/src/main/java/org/distorted/examples/cubes/CubesActivity.java b/src/main/java/org/distorted/examples/cubes/CubesActivity.java
index baf64a0..81fc12d 100644
--- a/src/main/java/org/distorted/examples/cubes/CubesActivity.java
+++ b/src/main/java/org/distorted/examples/cubes/CubesActivity.java
@@ -22,8 +22,8 @@ package org.distorted.examples.cubes;
 import org.distorted.library.Distorted;
 import org.distorted.examples.R;
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedObjectGrid;
-import org.distorted.library.DistortedCubesGrid;
+import org.distorted.library.GridObject;
+import org.distorted.library.GridCubes;
 
 import android.app.Activity;
 import android.opengl.GLSurfaceView;
@@ -49,7 +49,7 @@ public class CubesActivity extends Activity implements View.OnClickListener
     private LinearLayout mLay;
     private boolean[] mShape;
     private DistortedObject mObject;
-    private DistortedObjectGrid mGrid;
+    private GridObject mGrid;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
     
@@ -199,7 +199,7 @@ public class CubesActivity extends Activity implements View.OnClickListener
       for(int i=0; i<mNumRows*mNumCols; i++)
         str += mShape[i] ? "1" : "0";
 
-      mGrid = new DistortedCubesGrid(mNumCols, str, false);
+      mGrid = new GridCubes(mNumCols, str, false);
       mObject = new DistortedObject(mNumCols,mNumRows,1);
 
       setContentView(R.layout.cubeslayout);
@@ -214,7 +214,7 @@ public class CubesActivity extends Activity implements View.OnClickListener
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    public DistortedObjectGrid getGrid()
+    public GridObject getGrid()
       {
       return mGrid;
       }
diff --git a/src/main/java/org/distorted/examples/cubes/CubesRenderer.java b/src/main/java/org/distorted/examples/cubes/CubesRenderer.java
index abc5331..82e6271 100644
--- a/src/main/java/org/distorted/examples/cubes/CubesRenderer.java
+++ b/src/main/java/org/distorted/examples/cubes/CubesRenderer.java
@@ -28,7 +28,7 @@ import javax.microedition.khronos.opengles.GL10;
 import org.distorted.examples.R;
 
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedObjectGrid;
+import org.distorted.library.GridObject;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.DynamicQuat;
 import org.distorted.library.type.Static4D;
@@ -46,7 +46,7 @@ class CubesRenderer implements GLSurfaceView.Renderer
 {
     private GLSurfaceView mView;
     private DistortedObject mObject;
-    private DistortedObjectGrid mGrid;
+    private GridObject mGrid;
     private int mObjWidth, mObjHeight;
 
     private DynamicQuat mQuatInt1, mQuatInt2;
diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index fb58274..7068b13 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -24,8 +24,8 @@ import javax.microedition.khronos.opengles.GL10;
 
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedObjectGrid;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridObject;
+import org.distorted.library.GridFlat;
 
 import org.distorted.library.EffectNames;
 import org.distorted.library.EffectTypes;
@@ -50,7 +50,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
 
    private GLSurfaceView mView;
    private DistortedObject fps, stretch;
-   private DistortedObjectGrid fpsGrid, stretchGrid;
+   private GridObject fpsGrid, stretchGrid;
    private Static3D touchPoint;
 
    private Dynamic3D mReleasedDistortDynamic;
@@ -235,7 +235,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
       
       mPaint = new Paint();
       stretch = new DistortedObject(w,h,1);
-      stretchGrid = new DistortedBitmapGrid(50,50*h/w);
+      stretchGrid = new GridFlat(50,50*h/w);
       Bitmap stretchBitmap = Bitmap.createBitmap(w,h, Bitmap.Config.ARGB_8888);
       stretchCanvas = new Canvas(stretchBitmap);
       
@@ -259,7 +259,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
       touchPoint= new Static3D(0,0,0);
         
       fps = new DistortedObject( fpsW, fpsH, 1);
-      fpsGrid = new DistortedBitmapGrid(1,1);
+      fpsGrid = new GridFlat(1,1);
 
       fpsBitmap = Bitmap.createBitmap(fpsW,fpsH, Bitmap.Config.ARGB_8888);
       fpsCanvas = new Canvas(fpsBitmap);
diff --git a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
index 0bb0f35..26ccfed 100644
--- a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
+++ b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
@@ -29,7 +29,7 @@ import org.distorted.examples.R;
 
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static1D;
@@ -49,7 +49,7 @@ class DifferentBitmapsRenderer implements GLSurfaceView.Renderer
    
    private GLSurfaceView mView;
    private DistortedObject[] mObj;
-   private DistortedBitmapGrid mGrid;
+   private GridFlat mGrid;
    private Static3D mPoint;
    private Dynamic3D dDistort;
    private int bmpHeight, bmpWidth;
@@ -163,7 +163,7 @@ class DifferentBitmapsRenderer implements GLSurfaceView.Renderer
       mObj[0].sink( new Static1D(8), mPoint, new Static4D(0,0,80,80));
       mObj[0].distort(dDistort,mPoint);
 
-      mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
+      mGrid = new GridFlat(30,30*bmpHeight/bmpWidth);
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
index 3af2563..a4d8c7c 100644
--- a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
@@ -28,7 +28,7 @@ import javax.microedition.khronos.opengles.GL10;
 import org.distorted.examples.R;
 
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic1D;
@@ -50,7 +50,7 @@ class DifferentEffectsRenderer implements GLSurfaceView.Renderer
    
    private GLSurfaceView mView;
    private DistortedObject[] mObj;
-   private DistortedBitmapGrid mGrid;
+   private GridFlat mGrid;
    private Static3D pLeft, pRight, pNose1;
    private Static4D RegionEye;
    private Dynamic3D mDI;
@@ -148,7 +148,7 @@ class DifferentEffectsRenderer implements GLSurfaceView.Renderer
      bmpHeight = bitmap.getHeight();
      bmpWidth  = bitmap.getWidth();
 
-     mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
+     mGrid = new GridFlat(30,30*bmpHeight/bmpWidth);
 
      mObj = new DistortedObject[NUM];
      mObj[0] = new DistortedObject(bmpWidth, bmpHeight, 1);
diff --git a/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java b/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
index d9b1d65..ba1c707 100644
--- a/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
+++ b/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
@@ -29,7 +29,7 @@ import android.graphics.Paint.Style;
 import android.opengl.GLES20;
 import android.opengl.GLSurfaceView;
 
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.Distorted;
 
@@ -39,7 +39,7 @@ class DynamicRenderer implements GLSurfaceView.Renderer
    {  
    private DynamicSurfaceView mView;
    private DistortedObject mBackground;
-   private DistortedBitmapGrid mGrid;
+   private GridFlat mGrid;
    private Canvas mCanvas;
    private Bitmap mBitmap;
    private Paint mPaint;
@@ -80,7 +80,7 @@ class DynamicRenderer implements GLSurfaceView.Renderer
      texW = width;
      texH = height;
 
-     mGrid       = new DistortedBitmapGrid(1,1);
+     mGrid       = new GridFlat(1,1);
      mBackground = new DistortedObject(texW,texH,1);
      mBitmap     = Bitmap.createBitmap(texW,texH, Bitmap.Config.ARGB_8888);
      mCanvas     = new Canvas(mBitmap);
diff --git a/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java b/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
index 5c3789d..0e59b57 100644
--- a/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
+++ b/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
@@ -29,7 +29,7 @@ import android.graphics.Paint.Style;
 import android.opengl.GLES20;
 import android.opengl.GLSurfaceView;
 
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.Distorted;
 import org.distorted.library.EffectNames;
@@ -51,7 +51,7 @@ public class EffectQueueRenderer implements GLSurfaceView.Renderer, EffectListen
   private int texWidth, texHeight;
 
   DistortedObject mBackground;
-  DistortedBitmapGrid mGrid;
+  GridFlat mGrid;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -67,7 +67,7 @@ public class EffectQueueRenderer implements GLSurfaceView.Renderer, EffectListen
     texWidth = BWID;
     texHeight= BHEI;
 
-    mGrid      = new DistortedBitmapGrid(80,80*texHeight/texWidth);
+    mGrid      = new GridFlat(80,80*texHeight/texWidth);
     mBackground= new DistortedObject(texWidth,texHeight,1);
 
     mBackground.addEventListener(this);
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
index dc912fe..69a6b34 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
@@ -38,9 +38,9 @@ import android.widget.TableRow;
 
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
-import org.distorted.library.DistortedCubesGrid;
-import org.distorted.library.DistortedObjectGrid;
+import org.distorted.library.GridFlat;
+import org.distorted.library.GridCubes;
+import org.distorted.library.GridObject;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectNames;
 import org.distorted.library.EffectTypes;
@@ -67,7 +67,7 @@ public class Effects3DActivity extends Activity
   private NumberPicker mColsPicker, mRowsPicker;
   private boolean[] mShape;
   private DistortedObject mObject;
-  private DistortedObjectGrid mGrid;
+  private GridObject mGrid;
   private int mObjectType;
   private int mBitmapID;
   private Bitmap mBitmap;
@@ -224,7 +224,7 @@ public class Effects3DActivity extends Activity
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public DistortedObjectGrid getGrid()
+  public GridObject getGrid()
     {
     return mGrid;
     }
@@ -402,7 +402,7 @@ public class Effects3DActivity extends Activity
       int h = mBitmap.getHeight();
 
       mObject = new DistortedObject(w,h,1);
-      mGrid   = new DistortedBitmapGrid(mNumCols,mNumCols*h/w);
+      mGrid   = new GridFlat(mNumCols,mNumCols*h/w);
       setEffectView();
       }
     else
@@ -432,7 +432,7 @@ public class Effects3DActivity extends Activity
       str += mShape[i] ? "1" : "0";
 
     mObject = new DistortedObject(mNumCols,mNumRows,1);
-    mGrid   = new DistortedCubesGrid(mNumCols, str, false);
+    mGrid   = new GridCubes(mNumCols, str, false);
 
     setEffectView();
     }
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
index eb7d3e7..caf7679 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
@@ -26,9 +26,9 @@ import android.opengl.GLSurfaceView;
 
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedObjectGrid;
+import org.distorted.library.GridObject;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.DynamicQuat;
@@ -50,8 +50,8 @@ class Effects3DRenderer implements GLSurfaceView.Renderer
     private DistortedObject mBackground;
     private DistortedObject mCenter;
     private DistortedObject mRegion;
-    private DistortedBitmapGrid mQuad;
-    private DistortedObjectGrid mGrid;
+    private GridFlat mQuad;
+    private GridObject mGrid;
     private int mObjWidth, mObjHeight, mObjDepth;
     private DynamicQuat mQuatInt1, mQuatInt2;
 
@@ -78,7 +78,7 @@ class Effects3DRenderer implements GLSurfaceView.Renderer
       mBackground = new DistortedObject(100, 100, 1);
       mCenter     = new DistortedObject(100, 100, 1);
       mRegion     = new DistortedObject(100, 100, 1);
-      mQuad       = new DistortedBitmapGrid(1,1);
+      mQuad       = new GridFlat(1,1);
 
       mObjWidth = mObject.getWidth();
       mObjHeight= mObject.getHeight();
diff --git a/src/main/java/org/distorted/examples/fbo/FBORenderer.java b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
index 24e5d51..3f1c8e5 100644
--- a/src/main/java/org/distorted/examples/fbo/FBORenderer.java
+++ b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
@@ -27,9 +27,9 @@ import javax.microedition.khronos.opengles.GL10;
 
 import org.distorted.examples.R;
 
-import org.distorted.library.DistortedNode;
+import org.distorted.library.DistortedObjectTree;
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic1D;
@@ -49,7 +49,7 @@ class FBORenderer implements GLSurfaceView.Renderer
    private DistortedObject mLisa;
    private int lisaHeight, lisaWidth;
     
-   private DistortedNode mRoot;
+   private DistortedObjectTree mRoot;
     
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -126,8 +126,8 @@ class FBORenderer implements GLSurfaceView.Renderer
       DistortedObject text = new DistortedObject(bitmap2.getWidth(),bitmap2.getHeight(),1);
       text.setTexture(bitmap2);
 
-      mRoot = new DistortedNode(mLisa,new DistortedBitmapGrid(1,1));
-      mRoot.attach(text,new DistortedBitmapGrid(20,5));
+      mRoot = new DistortedObjectTree(mLisa,new GridFlat(1,1));
+      mRoot.attach(text,new GridFlat(20,5));
      
       int textWidth  = text.getWidth();
       int textHeight = text.getHeight();
diff --git a/src/main/java/org/distorted/examples/flag/FlagRenderer.java b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
index ffc490d..59c00ef 100644
--- a/src/main/java/org/distorted/examples/flag/FlagRenderer.java
+++ b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
@@ -26,7 +26,7 @@ import android.opengl.GLSurfaceView;
 
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedCubesGrid;
+import org.distorted.library.GridCubes;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic;
@@ -48,7 +48,7 @@ class FlagRenderer implements GLSurfaceView.Renderer
 {
     private GLSurfaceView mView;
     private DistortedObject mObject;
-    private DistortedCubesGrid mGrid;
+    private GridCubes mGrid;
     private int mObjWidth, mObjHeight;
     private DynamicQuat mQuatInt1, mQuatInt2;
     private Dynamic5D mWaveDyn;
@@ -63,7 +63,7 @@ class FlagRenderer implements GLSurfaceView.Renderer
       {
       mView = v;
 
-      mGrid = new DistortedCubesGrid(50,30,false);
+      mGrid = new GridCubes(50,30,false);
       mObject = new DistortedObject(500,300,10);
 
       mObjWidth = mObject.getWidth();
diff --git a/src/main/java/org/distorted/examples/girl/GirlRenderer.java b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
index 6dfcc59..5d5bfda 100644
--- a/src/main/java/org/distorted/examples/girl/GirlRenderer.java
+++ b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
@@ -28,7 +28,7 @@ import javax.microedition.khronos.opengles.GL10;
 import org.distorted.examples.R;
 
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic1D;
@@ -48,7 +48,7 @@ class GirlRenderer implements GLSurfaceView.Renderer
 {
     private GLSurfaceView mView;
     private DistortedObject mGirl;
-    private DistortedBitmapGrid mGrid;
+    private GridFlat mGrid;
     private Static3D pLeft, pRight, pHips;
     private Static4D Region, sinkRegion, HipsRegion;
     private Dynamic3D diL, diR;
@@ -207,7 +207,7 @@ class GirlRenderer implements GLSurfaceView.Renderer
       bmpHeight = bitmap.getHeight();
       bmpWidth  = bitmap.getWidth();
 
-      mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
+      mGrid = new GridFlat(30,30*bmpHeight/bmpWidth);
       mGirl = new DistortedObject(bmpWidth,bmpHeight,1);
       mGirl.setTexture(bitmap);
 
diff --git a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
index 26d1e3b..7ce32cb 100644
--- a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
+++ b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
@@ -29,7 +29,7 @@ import javax.microedition.khronos.opengles.GL10;
 import org.distorted.examples.R;
 
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectNames;
 import org.distorted.library.EffectTypes;
@@ -52,7 +52,7 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
 
    private GLSurfaceView mView;
    private DistortedObject mWater;
-   private DistortedBitmapGrid mGrid;
+   private GridFlat mGrid;
    private int bmpHeight, bmpWidth;
    private Random mRnd;
 
@@ -154,7 +154,7 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
       bmpHeight = bitmap.getHeight();
       bmpWidth  = bitmap.getWidth();
 
-      mGrid  = new DistortedBitmapGrid(50,50*bmpHeight/bmpWidth);
+      mGrid  = new GridFlat(50,50*bmpHeight/bmpWidth);
       mWater = new DistortedObject(bmpWidth,bmpHeight,1);
       mWater.setTexture(bitmap);
       mWater.addEventListener(this);
diff --git a/src/main/java/org/distorted/examples/matrix3d/Matrix3DActivity.java b/src/main/java/org/distorted/examples/matrix3d/Matrix3DActivity.java
index c214f4a..aa45a35 100644
--- a/src/main/java/org/distorted/examples/matrix3d/Matrix3DActivity.java
+++ b/src/main/java/org/distorted/examples/matrix3d/Matrix3DActivity.java
@@ -32,8 +32,8 @@ import android.widget.Spinner;
 
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedObjectGrid;
-import org.distorted.library.DistortedCubesGrid;
+import org.distorted.library.GridObject;
+import org.distorted.library.GridCubes;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectNames;
 import org.distorted.library.EffectTypes;
@@ -47,7 +47,7 @@ import java.util.ArrayList;
 public class Matrix3DActivity extends Activity implements AdapterView.OnItemSelectedListener
   {
   private DistortedObject mObject;
-  private DistortedObjectGrid mGrid;
+  private GridObject mGrid;
 
   private ArrayList<Matrix3DEffect> mEffects;
   private int mEffectAdd;
@@ -67,7 +67,7 @@ public class Matrix3DActivity extends Activity implements AdapterView.OnItemSele
 
     createEffectNames();
 
-    mGrid   = new DistortedCubesGrid(1,1,false);
+    mGrid   = new GridCubes(1,1,false);
     mObject = new DistortedObject(100,100,100);
 
     setEffectView();
@@ -106,7 +106,7 @@ public class Matrix3DActivity extends Activity implements AdapterView.OnItemSele
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public DistortedObjectGrid getGrid()
+  public GridObject getGrid()
     {
     return mGrid;
     }
diff --git a/src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java b/src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java
index 473de6d..d0bca10 100644
--- a/src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java
+++ b/src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java
@@ -23,7 +23,7 @@ import android.opengl.GLES20;
 import android.opengl.GLSurfaceView;
 
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedObjectGrid;
+import org.distorted.library.GridObject;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectTypes;
 
@@ -36,7 +36,7 @@ class Matrix3DRenderer implements GLSurfaceView.Renderer
 {
     private GLSurfaceView mView;
     private DistortedObject mObject;
-    private DistortedObjectGrid mGrid;
+    private GridObject mGrid;
 
     private int mWidth, mHeight;
 
diff --git a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
index f74b124..189021e 100644
--- a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
+++ b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
@@ -28,7 +28,7 @@ import javax.microedition.khronos.opengles.GL10;
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static3D;
@@ -45,7 +45,7 @@ class MonaLisaRenderer implements GLSurfaceView.Renderer
 {
     private GLSurfaceView mView;
     private DistortedObject mObject;
-    private DistortedBitmapGrid mGrid;
+    private GridFlat mGrid;
     private Static3D pLeft, pRight;
     private Static4D rLeft, rRight;
     private Dynamic3D dLeft, dRight;
@@ -128,7 +128,7 @@ class MonaLisaRenderer implements GLSurfaceView.Renderer
       bmpHeight = bitmap.getHeight();
       bmpWidth  = bitmap.getWidth();
 
-      mGrid = new DistortedBitmapGrid(9,9*bmpHeight/bmpWidth);
+      mGrid = new GridFlat(9,9*bmpHeight/bmpWidth);
       mObject = new DistortedObject(bmpWidth,bmpHeight,1);
       mObject.setTexture(bitmap);
       mObject.distort( dLeft, pLeft , rLeft );
diff --git a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
index debe2be..5743708 100644
--- a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
@@ -30,7 +30,7 @@ import android.opengl.GLES20;
 import android.opengl.GLSurfaceView;
 
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.Distorted;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -43,7 +43,7 @@ class MovingEffectsRenderer implements GLSurfaceView.Renderer
    private Paint mPaint;
    private int texW, texH;
 
-   private DistortedBitmapGrid mGrid;
+   private GridFlat mGrid;
 
    static DistortedObject mBackground;
 
@@ -105,7 +105,7 @@ class MovingEffectsRenderer implements GLSurfaceView.Renderer
      texW = width;
      texH = height;
 
-     mGrid = new DistortedBitmapGrid(80,80*height/width);
+     mGrid = new GridFlat(80,80*height/width);
      mBackground = new DistortedObject(texW,texH,1);
      mBitmap = Bitmap.createBitmap(texW,texH, Bitmap.Config.ARGB_8888);
      mCanvas = new Canvas(mBitmap);
diff --git a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
index bf3d229..009ef2d 100644
--- a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
+++ b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
@@ -27,13 +27,13 @@ import javax.microedition.khronos.opengles.GL10;
 
 import org.distorted.examples.R;
 
+import org.distorted.library.DistortedObjectTree;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic1D;
-import org.distorted.library.DistortedNode;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static1D;
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 
 import android.graphics.Bitmap;
@@ -50,7 +50,7 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
    private static final int NUM_LEAVES  = 8;
    
    private GLSurfaceView mView;
-   private DistortedNode mScreen;
+   private DistortedObjectTree mScreen;
    private DistortedObject mLeaf;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -60,16 +60,16 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
       mView = v;
 
       mLeaf = new DistortedObject(LEAF_SIZE,LEAF_SIZE,1);
-      DistortedBitmapGrid grid = new DistortedBitmapGrid(1,1);
+      GridFlat grid = new GridFlat(1,1);
 
-      mScreen = new DistortedNode(new DistortedObject(9*LEAF_SIZE,9*LEAF_SIZE,1), grid);
+      mScreen = new DistortedObjectTree(new DistortedObject(9*LEAF_SIZE,9*LEAF_SIZE,1), grid);
      
       Dynamic1D rot = new Dynamic1D(5000,0.0f);
       rot.setMode(Dynamic1D.MODE_JUMP);
       rot.add(new Static1D(  0));
       rot.add(new Static1D(360));
       
-      DistortedNode[] mCircleNode = new DistortedNode[NUM_CIRCLES];
+      DistortedObjectTree[] mCircleNode = new DistortedObjectTree[NUM_CIRCLES];
     
       int[] colors    = new int[] {0,0,1,  0,0,0,  1,0,0,  1,1,0,  0,1,0}; // blue, black, red, yellow, green  
       int[] positions = new int[] {0*LEAF_SIZE,2*LEAF_SIZE,  3*LEAF_SIZE,2*LEAF_SIZE,  6*LEAF_SIZE,2*LEAF_SIZE,  3*LEAF_SIZE/2,9*LEAF_SIZE/2,  9*LEAF_SIZE/2,9*LEAF_SIZE/2};
@@ -83,7 +83,7 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
         {
         if( i==0 )
           {
-          mCircleNode[i] = new DistortedNode(new DistortedObject(3*LEAF_SIZE,3*LEAF_SIZE,1), grid);
+          mCircleNode[i] = new DistortedObjectTree(new DistortedObject(3*LEAF_SIZE,3*LEAF_SIZE,1), grid);
         
           for(int j=0; j<NUM_LEAVES; j++)
             {
@@ -95,7 +95,7 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
           }
         else
           {
-          mCircleNode[i] = new DistortedNode(mCircleNode[0], Distorted.CLONE_BITMAP|Distorted.CLONE_CHILDREN); 
+          mCircleNode[i] = new DistortedObjectTree(mCircleNode[0], Distorted.CLONE_BITMAP|Distorted.CLONE_CHILDREN);
           }
       
         mScreen.attach(mCircleNode[i]);
diff --git a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
index c05d84f..11c1b4e 100644
--- a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
+++ b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
@@ -31,7 +31,7 @@ import android.view.SurfaceHolder;
 import android.view.SurfaceView;
 
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic3D;
@@ -61,7 +61,7 @@ public class RenderThread extends Thread
   private EGLSurface eglSurface;
 
   private DistortedObject monaLisa;
-  private DistortedBitmapGrid mGrid;
+  private GridFlat mGrid;
   private int bmpHeight, bmpWidth;
 
   private Static3D pLeft, pRight;
@@ -198,7 +198,7 @@ public class RenderThread extends Thread
     monaLisa.distort(dRight, pRight, rRight);
     monaLisa.setTexture(bmp);
 
-    mGrid= new DistortedBitmapGrid(9,9*bmpHeight/bmpWidth);  // more-or-less square Grid with 9 columns.
+    mGrid= new GridFlat(9,9*bmpHeight/bmpWidth);  // more-or-less square Grid with 9 columns.
 
     try
       {
diff --git a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
index 50f50b0..f11a88c 100644
--- a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
+++ b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
@@ -23,7 +23,7 @@ import javax.microedition.khronos.egl.EGLConfig;
 import javax.microedition.khronos.opengles.GL10;
 
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
@@ -41,7 +41,7 @@ class ProjectionRenderer implements GLSurfaceView.Renderer
 {
    private GLSurfaceView mView;
    private DistortedObject mProjection;
-   private DistortedBitmapGrid mGrid;
+   private GridFlat mGrid;
 
    private static float mF, mX, mY;
    private static int mWidth, mHeight;
@@ -121,7 +121,7 @@ class ProjectionRenderer implements GLSurfaceView.Renderer
       {
       Paint paint = new Paint();
       mProjection = new DistortedObject(w,h,1);
-      mGrid       = new DistortedBitmapGrid(50,50*h/w);
+      mGrid       = new GridFlat(50,50*h/w);
       Bitmap bmp = Bitmap.createBitmap(w,h, Bitmap.Config.ARGB_8888);
       Canvas bmpCanvas = new Canvas(bmp);
 
diff --git a/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java b/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java
index ab8b2ca..181f933 100644
--- a/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java
+++ b/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java
@@ -31,7 +31,7 @@ import org.distorted.examples.R;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic;
 import org.distorted.library.type.DynamicQuat;
-import org.distorted.library.DistortedCubesGrid;
+import org.distorted.library.GridCubes;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.type.Static4D;
 import org.distorted.library.type.Static3D;
@@ -50,7 +50,7 @@ class QuaternionRenderer implements GLSurfaceView.Renderer
 
   private GLSurfaceView mView;
   private DistortedObject mCube;
-  private DistortedCubesGrid mGrid;
+  private GridCubes mGrid;
 
   private DynamicQuat mRot;
     
@@ -59,7 +59,7 @@ class QuaternionRenderer implements GLSurfaceView.Renderer
   QuaternionRenderer(GLSurfaceView v)
     {
     mView = v;
-    mGrid = new DistortedCubesGrid(1,1,false);
+    mGrid = new GridCubes(1,1,false);
     mCube = new DistortedObject(1,1,1);
 
     mRot = new DynamicQuat();
diff --git a/src/main/java/org/distorted/examples/save/SaveRenderer.java b/src/main/java/org/distorted/examples/save/SaveRenderer.java
index 54ec182..cbd792e 100644
--- a/src/main/java/org/distorted/examples/save/SaveRenderer.java
+++ b/src/main/java/org/distorted/examples/save/SaveRenderer.java
@@ -32,7 +32,7 @@ import org.distorted.examples.R;
 
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedObject;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedFramebuffer;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic1D;
@@ -53,7 +53,7 @@ class SaveRenderer implements GLSurfaceView.Renderer
   {
   private GLSurfaceView mView;
   private DistortedObject mGirl;
-  private DistortedBitmapGrid mGrid;
+  private GridFlat mGrid;
   private DistortedFramebuffer mOffscreen;
   private Static3D pLeft, pRight;
   private Static4D sinkRegion;
@@ -228,7 +228,7 @@ class SaveRenderer implements GLSurfaceView.Renderer
     bmpHeight = bitmap.getHeight();
     bmpWidth  = bitmap.getWidth();
 
-    mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
+    mGrid = new GridFlat(30,30*bmpHeight/bmpWidth);
     mGirl = new DistortedObject(bmpWidth,bmpHeight,1);
     mGirl.setTexture(bitmap);
 
diff --git a/src/main/java/org/distorted/examples/sink/SinkRenderer.java b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
index a6fccb0..7df8f4b 100644
--- a/src/main/java/org/distorted/examples/sink/SinkRenderer.java
+++ b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
@@ -28,7 +28,7 @@ import javax.microedition.khronos.opengles.GL10;
 import org.distorted.examples.R;
 
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic1D;
@@ -47,7 +47,7 @@ class SinkRenderer implements GLSurfaceView.Renderer
   {
   private GLSurfaceView mView;
   private DistortedObject mObject;
-  private DistortedBitmapGrid mGrid;
+  private GridFlat mGrid;
   private Static3D pLeft, pRight;
   private Static4D Region;
   private int bmpHeight, bmpWidth;
@@ -126,7 +126,7 @@ class SinkRenderer implements GLSurfaceView.Renderer
     dSink.add(new Static1D( 1));
     dSink.add(new Static1D(10));
 
-    mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
+    mGrid = new GridFlat(30,30*bmpHeight/bmpWidth);
     mObject = new DistortedObject(bmpWidth,bmpHeight,1);
     mObject.setTexture(bitmap);
     
diff --git a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
index 1b696e2..d4a8331 100644
--- a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
+++ b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
@@ -28,11 +28,11 @@ import javax.microedition.khronos.opengles.GL10;
 
 import org.distorted.examples.R;
 
-import org.distorted.library.DistortedBitmapGrid;
+import org.distorted.library.GridFlat;
 import org.distorted.library.EffectNames;
 import org.distorted.library.type.Dynamic1D;
 import org.distorted.library.type.Dynamic3D;
-import org.distorted.library.DistortedNode;
+import org.distorted.library.DistortedObjectTree;
 import org.distorted.library.type.Static1D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
@@ -106,8 +106,8 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
   private long gffaID, logoID, crawlID;
     
   private Random mRnd = new Random(0);
-  private DistortedNode mRoot, mBackground;
-  private DistortedBitmapGrid mQuad;
+  private DistortedObjectTree mRoot, mBackground;
+  private GridFlat mQuad;
 
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -116,7 +116,7 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
     {
     mView = v;
 
-    mQuad = new DistortedBitmapGrid(1,1);
+    mQuad = new GridFlat(1,1);
     Distorted.setProjection(60.0f, 0.0f, 0.0f);
     }
 
@@ -159,7 +159,7 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
   private void setupScreen(int w, int h)
     {
     mScreen = new DistortedObject(w,h,1);
-    mRoot = new DistortedNode(mScreen,mQuad);
+    mRoot = new DistortedObjectTree(mScreen,mQuad);
       
     mCrawlBackground = new DistortedObject(w,(int)(Math.sqrt(3.0)*h),1);
        
diff --git a/src/main/java/org/distorted/examples/wind/WindRenderer.java b/src/main/java/org/distorted/examples/wind/WindRenderer.java
index f01de39..914a4ca 100644
--- a/src/main/java/org/distorted/examples/wind/WindRenderer.java
+++ b/src/main/java/org/distorted/examples/wind/WindRenderer.java
@@ -26,7 +26,7 @@ import android.opengl.GLSurfaceView;
 
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
-import org.distorted.library.DistortedCubesGrid;
+import org.distorted.library.GridCubes;
 import org.distorted.library.DistortedObject;
 import org.distorted.library.type.Static1D;
 import org.distorted.library.type.Static3D;
@@ -43,7 +43,7 @@ class WindRenderer implements GLSurfaceView.Renderer
 {
    private GLSurfaceView mView;
    private DistortedObject mObject;
-   private DistortedCubesGrid mGrid;
+   private GridCubes mGrid;
    private WindEffectsManager mEffects;
    private int mObjWidth, mObjHeight;
    private int mWind;
@@ -54,7 +54,7 @@ class WindRenderer implements GLSurfaceView.Renderer
       { 
       mView = view;
 
-      mGrid    = new DistortedCubesGrid(50,30,false);
+      mGrid    = new GridCubes(50,30,false);
       mObject  = new DistortedObject(50,30,1);
       mEffects = new WindEffectsManager(mObject);
 
