commit 23c35a5da9aa41650a22daa2495c99b98bb3ca76
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Mar 5 00:39:51 2020 +0000

    Make MeshBase.setTextureMap() work.

diff --git a/src/main/java/org/distorted/examples/meshjoin/MeshJoinRenderer.java b/src/main/java/org/distorted/examples/meshjoin/MeshJoinRenderer.java
index e248584..c493648 100644
--- a/src/main/java/org/distorted/examples/meshjoin/MeshJoinRenderer.java
+++ b/src/main/java/org/distorted/examples/meshjoin/MeshJoinRenderer.java
@@ -110,7 +110,7 @@ class MeshJoinRenderer implements GLSurfaceView.Renderer
     
     public void onSurfaceCreated(GL10 glUnused, EGLConfig config) 
       {
-      InputStream is = mView.getContext().getResources().openRawResource(R.raw.girl);
+      InputStream is = mView.getContext().getResources().openRawResource(R.raw.grid);
       Bitmap bitmap;
 
       try
@@ -131,7 +131,7 @@ class MeshJoinRenderer implements GLSurfaceView.Renderer
 
       if( mMesh==null ) mMesh = createJoinedMesh();
 
-      mMesh.setShowNormals(true);
+     // mMesh.setShowNormals(true);
 
       mScreen.detachAll();
       mScreen.attach(mTexture,mEffects,mMesh);
@@ -150,6 +150,22 @@ class MeshJoinRenderer implements GLSurfaceView.Renderer
 
     private MeshBase createJoinedMesh()
       {
+      /*
+      MeshBase[] meshes = new MeshBase[2];
+      meshes[0] = new MeshQuad();
+      meshes[1] = new MeshQuad();
+
+      MatrixEffect[] effects0 = new MatrixEffect[1];
+      effects0[0] = new MatrixEffectMove( new Static3D(0,+0.6f,0));
+
+      meshes[0].apply(effects0);
+
+      MatrixEffect[] effects1 = new MatrixEffect[1];
+      effects1[0] = new MatrixEffectMove( new Static3D(0,-0.6f,0));
+
+      meshes[1].apply(effects1);
+      */
+      /*
       MeshBase[] meshes = new MeshBase[2];
       meshes[0] = new MeshSphere(5);
       meshes[1] = new MeshTriangles(5);
@@ -165,7 +181,7 @@ class MeshJoinRenderer implements GLSurfaceView.Renderer
       effects1[1] = new MatrixEffectMove( new Static3D(-0.25f,0,0));
 
       meshes[1].apply(effects1);
-      /*
+      */
       final int MESHES=6;
 
       Static3D axisY  = new Static3D(0,1,0);
@@ -197,7 +213,28 @@ class MeshJoinRenderer implements GLSurfaceView.Renderer
       meshes[4].apply(effectsX);
       angle.set(-90);
       meshes[5].apply(effectsX);
-*/
-      return new MeshJoined(meshes);
+
+      MeshJoined result = new MeshJoined(meshes);
+
+      float[][] maps = new float[MESHES][4];
+
+      maps[0][0] = 3.0f/8; maps[0][1] = 3.0f/8; maps[0][2] = 1.0f/8; maps[0][3] = 2.0f/8;
+      maps[1][0] = 5.0f/8; maps[1][1] = 3.0f/8; maps[1][2] = 1.0f/8; maps[1][3] = 2.0f/8;
+      maps[2][0] = 3.0f/8; maps[2][1] = 5.0f/8; maps[2][2] = 1.0f/8; maps[2][3] = 2.0f/8;
+      maps[3][0] = 1.0f/8; maps[3][1] = 5.0f/8; maps[3][2] = 1.0f/8; maps[3][3] = 2.0f/8;
+      maps[4][0] = 5.0f/8; maps[4][1] = 1.0f/8; maps[4][2] = 1.0f/8; maps[4][3] = 2.0f/8;
+      maps[5][0] = 5.0f/8; maps[5][1] = 5.0f/8; maps[5][2] = 1.0f/8; maps[5][3] = 2.0f/8;
+
+      result.setTextureMap(maps);
+
+      maps[0][0] = 3.0f/8; maps[0][1] = 3.0f/8; maps[0][2] = 2.0f/8; maps[0][3] = 2.0f/8;
+      maps[1][0] = 5.0f/8; maps[1][1] = 1.0f/8; maps[1][2] = 2.0f/8; maps[1][3] = 2.0f/8;
+      maps[2][0] = 1.0f/8; maps[2][1] = 5.0f/8; maps[2][2] = 2.0f/8; maps[2][3] = 2.0f/8;
+      maps[3][0] = 1.0f/8; maps[3][1] = 3.0f/8; maps[3][2] = 2.0f/8; maps[3][3] = 2.0f/8;
+      maps[4][0] = 3.0f/8; maps[4][1] = 1.0f/8; maps[4][2] = 2.0f/8; maps[4][3] = 2.0f/8;
+      maps[5][0] = 1.0f/8; maps[5][1] = 1.0f/8; maps[5][2] = 2.0f/8; maps[5][3] = 2.0f/8;
+
+      result.setTextureMap(maps);
+      return result;
       }
 }
diff --git a/src/main/res/raw/grid.png b/src/main/res/raw/grid.png
index c7c171e..8aad8df 100644
Binary files a/src/main/res/raw/grid.png and b/src/main/res/raw/grid.png differ
