commit 6142093455cda92de15142d3209fc8e58062e653
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri May 8 02:07:46 2020 +0100

    Prepare Generic for the stretchless API.

diff --git a/src/main/java/org/distorted/examples/generic/GenericActivity.java b/src/main/java/org/distorted/examples/generic/GenericActivity.java
index 0ae1fc8..f25d1a5 100644
--- a/src/main/java/org/distorted/examples/generic/GenericActivity.java
+++ b/src/main/java/org/distorted/examples/generic/GenericActivity.java
@@ -216,43 +216,16 @@ public class GenericActivity extends Activity
 
   public void Create(View v)
     {
-    Intent mainInt = new Intent( getApplicationContext(), GenericActivity2.class);
+     Intent mainInt = new Intent( getApplicationContext(), GenericActivity2.class);
     Bundle b = new Bundle();
 
-    int rows,cols;
-
-    switch( GenericMeshList.getDimension(mObjectType) )
-      {
-      case 0: rows = 1;          // a quad
-              cols = 1;
-              break;
-      case 1: rows = mNumRows;   // Triangles, Sphere
-              cols = mNumRows;
-              break;
-      default:rows = mNumRows;
-              cols = mNumCols;
-              break;
-      }
-
-    b.putInt("type", mObjectType);
-    b.putInt("cols", cols);
-    b.putInt("rows", rows);
-    b.putInt("slices", mNumSlic);
+    b.putInt("type"  , mObjectType);
+    b.putInt("cols"  , GenericMeshList.getCols(mObjectType, mNumCols, mNumRows, mNumSlic) );
+    b.putInt("rows"  , GenericMeshList.getRows(mObjectType, mNumCols, mNumRows, mNumSlic) );
+    b.putInt("slices", GenericMeshList.getSlic(mObjectType, mNumCols, mNumRows, mNumSlic) );
     b.putInt("bitmap", mBitmapID);
 
-    if( mObjectType==0 )   // cubes
-      {
-      String str = "";
-
-      for(int i=0; i<mNumRows*mNumCols; i++)
-        str += mShape[i] ? "1" : "0";
-
-      b.putString("string", str);
-      }
-    else
-      {
-      b.putString("string", "");
-      }
+    b.putString("string", GenericMeshList.getString(mObjectType, mNumCols, mNumRows, mShape));
 
     mainInt.putExtras(b);
     startActivity(mainInt);
diff --git a/src/main/java/org/distorted/examples/generic/GenericActivity2.java b/src/main/java/org/distorted/examples/generic/GenericActivity2.java
index 88f8dcd..ce5ae8f 100644
--- a/src/main/java/org/distorted/examples/generic/GenericActivity2.java
+++ b/src/main/java/org/distorted/examples/generic/GenericActivity2.java
@@ -76,9 +76,10 @@ public class GenericActivity2 extends AppCompatActivity
     mShowNormal = false;
     mUseOIT     = false;
 
-    int maxsize = numCols > numRows ? (numCols>numSlic ? numCols:numSlic) : (numRows>numSlic ? numRows:numSlic);
+    int maxsize = numCols > numRows ? (Math.max(numCols, numSlic)) : (Math.max(numRows, numSlic));
     createBitmap(maxsize, bitmapID);
     mMesh =  GenericMeshList.createMesh(objectType, numCols, numRows, numSlic, bitmapID, str);
+    mMesh.setStretch(numCols, numRows, numSlic);
 
     mMesh.setShowNormals(mShowNormal);
     mTexture= new DistortedTexture();
diff --git a/src/main/java/org/distorted/examples/generic/GenericMeshList.java b/src/main/java/org/distorted/examples/generic/GenericMeshList.java
index c8fb76f..aef2b8d 100644
--- a/src/main/java/org/distorted/examples/generic/GenericMeshList.java
+++ b/src/main/java/org/distorted/examples/generic/GenericMeshList.java
@@ -74,13 +74,78 @@ public enum GenericMeshList
     return  meshes[ordinal].mDimension;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  static int getRows(int ordinal, int cols, int rows, int slic)
+    {
+    switch(ordinal)
+      {
+      case 0: return rows;  // cubes
+      case 1: return rows;  // rectangles
+      case 2: return rows;  // sphere
+      case 3: return 1;     // quad
+      case 4: return rows;  // triangles
+      }
+
+    return 0;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  static int getCols(int ordinal, int cols, int rows, int slic)
+    {
+    switch(ordinal)
+      {
+      case 0: return cols;  // cubes
+      case 1: return cols;  // rectangles
+      case 2: return rows;  // sphere
+      case 3: return 1;     // quad
+      case 4: return rows;  // triangles
+      }
+
+    return 0;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  static int getSlic(int ordinal, int cols, int rows, int slic)
+    {
+    switch(ordinal)
+      {
+      case 0: return slic;  // cubes
+      case 1: return 0;     // rectangles
+      case 2: return rows;  // sphere
+      case 3: return 0;     // quad
+      case 4: return 0;     // triangles
+      }
+
+    return 0;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  static String getString(int ordinal, int cols, int rows, boolean[] shape)
+    {
+    if( ordinal==0 )
+      {
+      String str = "";
+
+      for(int i=0; i<rows*cols; i++)
+        str += shape[i] ? "1" : "0";
+
+      return str;
+      }
+
+    return "";
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   static MeshBase createMesh(int ordinal, int cols, int rows, int slic, int bitmapID, String str)
     {
     MeshBase mesh;
 
-    int maxsize = cols > rows ? (cols>slic ? cols:slic) : (rows>slic ? rows:slic) ;
+    int maxsize = cols > rows ? (Math.max(cols, slic)) : (Math.max(rows, slic)) ;
 
     switch( meshes[ordinal] )
       {
@@ -96,19 +161,14 @@ public enum GenericMeshList
 
                          mesh = new MeshCubes(cols, str, slic, mapFB, mapFB, mapLR, mapLR, mapTB, mapTB);
                          }
-                       mesh.setStretch(cols,rows,slic);
                        break;
       case Rectangles: mesh = new MeshRectangles(cols,rows);
-                       mesh.setStretch(cols,rows,0);
                        break;
       case Sphere    : mesh = new MeshSphere(rows);
-                       mesh.setStretch(rows,rows,rows);
                        break;
       case Quad      : mesh = new MeshQuad();
-                       mesh.setStretch(1,1,0);
                        break;
       case Triangles : mesh = new MeshTriangles(rows);
-                       mesh.setStretch(rows,rows,0);
                        break;
       default:         mesh = null;
                        android.util.Log.e("Meshes", "Error: unimplemented Mesh!");
diff --git a/src/main/java/org/distorted/examples/inflate/InflateMeshList.java b/src/main/java/org/distorted/examples/inflate/InflateMeshList.java
index c2d6c72..fd3d9f3 100644
--- a/src/main/java/org/distorted/examples/inflate/InflateMeshList.java
+++ b/src/main/java/org/distorted/examples/inflate/InflateMeshList.java
@@ -113,10 +113,10 @@ public enum InflateMeshList
     switch(ordinal)
       {
       case 0: return slic;  // cubes
-      case 1: return rows;  // rectangles
+      case 1: return 0;     // rectangles
       case 2: return rows;  // sphere
-      case 3: return 1;     // quad
-      case 4: return rows;  // triangles
+      case 3: return 0;     // quad
+      case 4: return 0;     // triangles
       }
 
     return 0;
