commit 7e8b98528298f5d0b8d9a8ad524c71c537af20be
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Mon Jun 8 11:30:23 2020 +0100

    Correct RubikCube for the new library.

diff --git a/src/main/java/org/distorted/objects/RubikCube.java b/src/main/java/org/distorted/objects/RubikCube.java
index 21845bc9..36ed4c24 100644
--- a/src/main/java/org/distorted/objects/RubikCube.java
+++ b/src/main/java/org/distorted/objects/RubikCube.java
@@ -150,13 +150,13 @@ class RubikCube extends RubikObject
       int association = 1;
       MeshBase[] meshes = new MeshRectangles[MESHES];
       meshes[0] = new MeshRectangles(14,14);
-      meshes[0].setEffectAssociation(0,association);
+      meshes[0].setEffectAssociation(0,association,0);
 
       for(int i=1; i<MESHES; i++)
         {
         association <<=1;
         meshes[i] = meshes[0].copy(true);
-        meshes[i].setEffectAssociation(0,association);
+        meshes[i].setEffectAssociation(0,association,0);
         }
 
       mMesh = new MeshJoined(meshes);
@@ -194,17 +194,17 @@ class RubikCube extends RubikObject
       Static1D dRad  = new Static1D(1);
 
       VertexEffectMove   effect0 = new VertexEffectMove(new Static3D(0,0,+0.5f));
-      effect0.setMeshAssociation(-1,63);  // all 6 sides
+      effect0.setMeshAssociation(63,-1);  // all 6 sides
       VertexEffectRotate effect1 = new VertexEffectRotate( angle180, axisX, center );
-      effect1.setMeshAssociation(-1,32);  // back
+      effect1.setMeshAssociation(32,-1);  // back
       VertexEffectRotate effect2 = new VertexEffectRotate( angle90 , axisX, center );
-      effect2.setMeshAssociation(-1, 8);  // bottom
+      effect2.setMeshAssociation( 8,-1);  // bottom
       VertexEffectRotate effect3 = new VertexEffectRotate( angle270, axisX, center );
-      effect3.setMeshAssociation(-1, 4);  // top
+      effect3.setMeshAssociation( 4,-1);  // top
       VertexEffectRotate effect4 = new VertexEffectRotate( angle270, axisY, center );
-      effect4.setMeshAssociation(-1, 2);  // left
+      effect4.setMeshAssociation( 2,-1);  // left
       VertexEffectRotate effect5 = new VertexEffectRotate( angle90 , axisY, center );
-      effect5.setMeshAssociation(-1, 1);  // right
+      effect5.setMeshAssociation( 1,-1);  // right
 
       VertexEffectDeform effect6 = new VertexEffectDeform(dVec0, dRad, dCen0, dReg);
       VertexEffectDeform effect7 = new VertexEffectDeform(dVec1, dRad, dCen1, dReg);
diff --git a/src/main/java/org/distorted/objects/RubikObject.java b/src/main/java/org/distorted/objects/RubikObject.java
index 7c59e44d..746e1758 100644
--- a/src/main/java/org/distorted/objects/RubikObject.java
+++ b/src/main/java/org/distorted/objects/RubikObject.java
@@ -147,7 +147,7 @@ public abstract class RubikObject extends DistortedNode
         }
       }
 
-    mesh.setTextureMap(maps);
+    mesh.setTextureMap(maps,0);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -415,7 +415,7 @@ public abstract class RubikObject extends DistortedNode
     try
       {
       maps[face] = new Static4D( newColor*ratio, 0.0f, ratio, 1.0f);
-      mCubits[cubit].getMesh().setTextureMap(maps);
+      mCubits[cubit].getMesh().setTextureMap(maps,0);
       }
     catch(ArrayIndexOutOfBoundsException ignored)
       {
diff --git a/src/main/java/org/distorted/objects/RubikPyraminx.java b/src/main/java/org/distorted/objects/RubikPyraminx.java
index 7cc9dbfd..e29c645a 100644
--- a/src/main/java/org/distorted/objects/RubikPyraminx.java
+++ b/src/main/java/org/distorted/objects/RubikPyraminx.java
@@ -216,19 +216,16 @@ public class RubikPyraminx extends RubikObject
     MeshBase[] meshes = new MeshTriangles[MESHES];
 
     meshes[0] = new MeshTriangles(5);
-    meshes[0].setEffectAssociation(0,association);
+    meshes[0].setEffectAssociation(0,association,0);
 
     for(int i=1; i<MESHES; i++)
       {
       association <<= 1;
       meshes[i] = meshes[0].copy(true);
-      meshes[i].setEffectAssociation(0,association);
+      meshes[i].setEffectAssociation(0,association,0);
       }
 
-    Static4D[] textureMaps = new Static4D[MESHES];
-    for(int i=0; i<MESHES; i++) textureMaps[i] = new Static4D(i*0.25f,0.0f,0.25f,1.0f);
     MeshBase result = new MeshJoined(meshes);
-    result.setTextureMap(textureMaps);
 
     Static3D a0 = new Static3D(         0,        1,       0 );
     Static3D a1 = new Static3D(         0,  -1.0f/3, 2*SQ2/3 );
@@ -263,13 +260,13 @@ public class RubikPyraminx extends RubikObject
     Static3D center = new Static3D(0,0,0);
     Static4D region = new Static4D(0,0,0,0.6f);
 
-    VertexEffectScale effect1 = new VertexEffectScale ( new Static3D(1,SQ3/2,1) );
-    VertexEffectRotate  effect2 = new VertexEffectRotate( new Static1D(90), new Static3D(1,0,0), new Static3D(0,0,0) );
-    VertexEffectMove effect3 = new VertexEffectMove  ( new Static3D(0,-SQ3*SQ2/12,SQ3/12) );
-    VertexEffectRotate  effect4 = new VertexEffectRotate( new Static1D(180), new Static3D(0,0,1), center1 );
-    VertexEffectRotate  effect5 = new VertexEffectRotate( angle, axis1, center1 );
-    VertexEffectRotate  effect6 = new VertexEffectRotate( angle, axis2, center2 );
-    VertexEffectRotate  effect7 = new VertexEffectRotate( angle, axis3, center2 );
+    VertexEffectScale  effect1 = new VertexEffectScale ( new Static3D(1,SQ3/2,1) );
+    VertexEffectRotate effect2 = new VertexEffectRotate( new Static1D(90), new Static3D(1,0,0), new Static3D(0,0,0) );
+    VertexEffectMove   effect3 = new VertexEffectMove  ( new Static3D(0,-SQ3*SQ2/12,SQ3/12) );
+    VertexEffectRotate effect4 = new VertexEffectRotate( new Static1D(180), new Static3D(0,0,1), center1 );
+    VertexEffectRotate effect5 = new VertexEffectRotate( angle, axis1, center1 );
+    VertexEffectRotate effect6 = new VertexEffectRotate( angle, axis2, center2 );
+    VertexEffectRotate effect7 = new VertexEffectRotate( angle, axis3, center2 );
 
     VertexEffectDeform effect8 = new VertexEffectDeform(dVec0, dRad, dCen0, dReg);
     VertexEffectDeform effect9 = new VertexEffectDeform(dVec1, dRad, dCen1, dReg);
@@ -278,10 +275,10 @@ public class RubikPyraminx extends RubikObject
 
     VertexEffectSink   effect12= new VertexEffectSink( new Static1D(1.3f), center, region );
 
-    effect4.setMeshAssociation(-1,14);  // apply to mesh[1], [2] and [3]
-    effect5.setMeshAssociation(-1, 2);  // apply only to mesh[1]
-    effect6.setMeshAssociation(-1, 4);  // apply only to mesh[2]
-    effect7.setMeshAssociation(-1, 8);  // apply only to mesh[3]
+    effect4.setMeshAssociation(14,-1);  // apply to mesh[1], [2] and [3]
+    effect5.setMeshAssociation( 2,-1);  // apply only to mesh[1]
+    effect6.setMeshAssociation( 4,-1);  // apply only to mesh[2]
+    effect7.setMeshAssociation( 8,-1);  // apply only to mesh[3]
 
     result.apply(effect1);
     result.apply(effect2);
