commit f803121801406b99dfaa7ffd8f025842ad7ae01d
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Aug 19 22:52:31 2021 +0200

    Make the Kilominx cubit creation a bit more standard.

diff --git a/src/main/java/org/distorted/objects/TwistyKilominx.java b/src/main/java/org/distorted/objects/TwistyKilominx.java
index df72d84f..a86a9b22 100644
--- a/src/main/java/org/distorted/objects/TwistyKilominx.java
+++ b/src/main/java/org/distorted/objects/TwistyKilominx.java
@@ -37,8 +37,7 @@ import org.distorted.main.R;
 
 public class TwistyKilominx extends TwistyMinx
 {
-  private static MeshBase[] mCenterMeshes, mCornerMeshes;
-  private static MeshBase[][] mEdgeMeshes;
+  private static MeshBase[][] mMeshes;
 
   private static final int[] mCenterFaceMap = new int[]
       {
@@ -65,17 +64,11 @@ public class TwistyKilominx extends TwistyMinx
         { -0.3249197f, -0.39442718f, 0.3249197f, -0.39442718f, 0.3249197f, 0.5f, -0.3249197f, 0.2888544f }
       };
 
-  private static final int mNumCornerEdgeVariants;
-
   static
     {
     final float C = 1.14f; // make the 'center' sticker artificially larger, so that we paint
                            // over the area in the center of the face.
 
-    int[] sizes = ObjectList.KILO.getSizes();
-    int variants = sizes.length;
-    mNumCornerEdgeVariants = sizes[0]==3 ? variants-1 : variants;
-
     STICKERS[0][0] *= C;
     STICKERS[0][1] *= C;
     STICKERS[0][2] *= C;
@@ -377,7 +370,7 @@ public class TwistyKilominx extends TwistyMinx
     double H = width*(SIN54/COS54);
     double H3= H/COS_HALFD;
     double X3= H*SIN_HALFD;
-    double Z3= H*COS_HALFD;;
+    double Z3= H*COS_HALFD;
     double C = 1/(COS54*Math.sqrt(2-2*SIN18));
 
     double[][] vertices = new double[][]
@@ -512,49 +505,43 @@ public class TwistyKilominx extends TwistyMinx
     int indexCornerEdge = (numLayers-lowestSize)/2 - (lowestSize==3 ? 1:0);
     MeshBase mesh;
 
-    if( mNumCornerEdgeVariants>0 )
-      {
-      if( mCornerMeshes==null ) mCornerMeshes = new MeshBase[mNumCornerEdgeVariants];
-      if( mEdgeMeshes  ==null ) mEdgeMeshes   = new MeshBase[mNumCornerEdgeVariants][highestSize-3];
-      }
-
-    if( mCenterMeshes==null ) mCenterMeshes = new MeshBase[variants];
+    if( mMeshes==null ) mMeshes = new MeshBase[variants][highestSize-1];
 
     if( cubit < NUM_CORNERS*numCubitsPerCorner )
       {
-      if( mCornerMeshes[indexCornerEdge]==null )
+      if( mMeshes[indexCornerEdge][0]==null )
         {
         float width = (numLayers/3.0f)/(numLayers-1);
-        mCornerMeshes[indexCornerEdge] = createCornerMesh(numLayers,width);
+        mMeshes[indexCornerEdge][0] = createCornerMesh(numLayers,width);
         }
-      mesh = mCornerMeshes[indexCornerEdge].copy(true);
+      mesh = mMeshes[indexCornerEdge][0].copy(true);
       }
     else if( cubit<NUM_CORNERS*numCubitsPerCorner + NUM_EDGES*numCubitsPerEdge )
       {
       int type = computeEdgeType(cubit,numCubitsPerCorner,numCubitsPerEdge);  // left-top, right-top, left-second, right-second, left-third...
 
-      if( mEdgeMeshes[indexCornerEdge][type]==null )
+      if( mMeshes[indexCornerEdge][1+type]==null )
         {
         float tmp   = (numLayers/3.0f)/(numLayers-1);
         float height= tmp*COS18;
         float width = tmp + (type/2)*tmp*SIN18;
 
-        mEdgeMeshes[indexCornerEdge][type] = createEdgeMesh(numLayers,width,height, (type%2)==0 );
+        mMeshes[indexCornerEdge][1+type] = createEdgeMesh(numLayers,width,height, (type%2)==0 );
         }
 
-      mesh = mEdgeMeshes[indexCornerEdge][type].copy(true);
+      mesh = mMeshes[indexCornerEdge][1+type].copy(true);
       }
     else
       {
       int indexCenter = (numLayers-3)/2;
 
-      if( mCenterMeshes[indexCenter]==null )
+      if( mMeshes[indexCenter][highestSize-2]==null )
         {
         float width = (1+0.5f*(numLayers-3)*SIN18)*(numLayers/3.0f)/(numLayers-1);
-        mCenterMeshes[indexCenter] = createCenterMesh(width);
+        mMeshes[indexCenter][highestSize-2] = createCenterMesh(width);
         }
 
-      mesh = mCenterMeshes[indexCenter].copy(true);
+      mesh = mMeshes[indexCenter][highestSize-2].copy(true);
       }
 
     Static4D q = QUATS[getQuat(cubit,numCubitsPerCorner,numCubitsPerEdge)];
