commit 68b5f9c506527a39495434f00461f362191f1883
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Mon Mar 29 14:28:41 2021 +0200

    Progress making the Diamond class support any size.

diff --git a/src/main/java/org/distorted/objects/TwistyDiamond.java b/src/main/java/org/distorted/objects/TwistyDiamond.java
index f0a69086..6cce7af5 100644
--- a/src/main/java/org/distorted/objects/TwistyDiamond.java
+++ b/src/main/java/org/distorted/objects/TwistyDiamond.java
@@ -90,6 +90,8 @@ public class TwistyDiamond extends TwistyObject
              {4, 8}
          };
 
+  private static final int[] mTetraToFaceMap = new int[] {1,2,3,0,5,6,7,4};
+
   private static MeshBase mOctaMesh, mTetraMesh;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -146,7 +148,7 @@ public class TwistyDiamond extends TwistyObject
     else
       {
       float[] cuts = new float[numLayers-1];
-      float dist = SQ6*0.666f;
+      float dist = SQ6*0.666f*DIST;
       float cut  = 0.5f*dist*(2-numLayers);
 
       for(int i=0; i<numLayers-1; i++)
@@ -306,22 +308,16 @@ public class TwistyDiamond extends TwistyObject
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-// TODO:
 
   private int retFaceTetraBelongsTo(int tetra, int numLayers)
     {
-    switch(tetra)
+    for(int i=numLayers-1; i>0; i--)
       {
-      case 0 : return 1;
-      case 1 : return 2;
-      case 2 : return 3;
-      case 3 : return 0;
-      case 4 : return 5;
-      case 5 : return 6;
-      case 6 : return 7;
-      case 7 : return 4;
-      default: return 8;
+      if( tetra < 8*i ) return mTetraToFaceMap[tetra/i];
+      tetra -= 8*i;
       }
+
+    return -1;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objects/TwistyObject.java b/src/main/java/org/distorted/objects/TwistyObject.java
index fd9fd0f7..26229d26 100644
--- a/src/main/java/org/distorted/objects/TwistyObject.java
+++ b/src/main/java/org/distorted/objects/TwistyObject.java
@@ -150,7 +150,7 @@ public abstract class TwistyObject extends DistortedNode
     NUM_CUBIT_FACES = getNumCubitFaces();
     NUM_TEXTURES = getNumStickerTypes(mNumLayers)*NUM_FACES;
     CUTS = getCuts(mNumLayers);
-    NUM_CUTS = CUTS.length;
+    NUM_CUTS = CUTS== null ? 0: CUTS.length;
 
     mQuatDebug = new int[NUM_CUBITS];
 
