commit 387b63262d1bdab539d2776adeeb236f7d6984b1
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Sep 17 12:01:51 2021 +0200

    Make the Kilo and Megaminxes standard size (dodecahedron size=3,5, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

diff --git a/src/main/java/org/distorted/objects/MovementMinx.java b/src/main/java/org/distorted/objects/MovementMinx.java
index ecee642e..3456cd51 100644
--- a/src/main/java/org/distorted/objects/MovementMinx.java
+++ b/src/main/java/org/distorted/objects/MovementMinx.java
@@ -30,8 +30,8 @@ import static org.distorted.objects.TwistyObject.SQ5;
 
 class MovementMinx extends Movement
 {
-  static final float DIST3D = (float)Math.sqrt(0.625f+0.275f*SQ5)/3;
-  static final float DIST2D = (0.5f*SIN54/COS54)/3;
+  static final float DIST3D = (float)Math.sqrt(0.625f+0.275f*SQ5);
+  static final float DIST2D = (SIN54/COS54)/2;
 
   static final Static3D[] FACE_AXIS = new Static3D[]
          {
diff --git a/src/main/java/org/distorted/objects/TwistyKilominx.java b/src/main/java/org/distorted/objects/TwistyKilominx.java
index f645b816..a05fd9e7 100644
--- a/src/main/java/org/distorted/objects/TwistyKilominx.java
+++ b/src/main/java/org/distorted/objects/TwistyKilominx.java
@@ -90,7 +90,7 @@ public class TwistyKilominx extends TwistyMinx
 
   float getScreenRatio()
     {
-    return 1.00f;
+    return 0.33f;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -333,9 +333,8 @@ public class TwistyKilominx extends TwistyMinx
       int numCubitsPerCenter = 5;
       int face = cubit/numCubitsPerCenter;
       int index= cubit%numCubitsPerCenter;
-      int corner=mCenterMap[face][index];
-
-      return mQuatCornerIndices[corner];
+      int center=mCenterMap[face][index];
+      return mQuatCornerIndices[center];
       }
     }
 
@@ -348,7 +347,7 @@ public class TwistyKilominx extends TwistyMinx
 
     if( variant==0 )
       {
-      float width = (numLayers/3.0f)/(numLayers-1);
+      float width = numLayers/(numLayers-1.0f);
       float A = (2*SQ3/3)*SIN54;
       float B = 0.4f;
       double X = width*COS18*SIN_HALFD;
@@ -396,7 +395,7 @@ public class TwistyKilominx extends TwistyMinx
       int numCubitsPerCorner = numCubitsPerCorner(numLayers);
       int numCubitsPerEdge   = numCubitsPerEdge(numLayers);
       int type = computeEdgeType(cubit,numCubitsPerCorner,numCubitsPerEdge);
-      float tmpVal= (numLayers/3.0f)/(numLayers-1);
+      float tmpVal= numLayers/(numLayers-1.0f);
       float height= tmpVal*COS18;
       float width = tmpVal + (type/2)*tmpVal*SIN18;
       boolean left = (type%2)==0;
@@ -463,7 +462,7 @@ public class TwistyKilominx extends TwistyMinx
       }
     else
       {
-      float width = (1+0.5f*(numLayers-3)*SIN18)*(numLayers/3.0f)/(numLayers-1);
+      float width = (1+0.5f*(numLayers-3)*SIN18)*numLayers/(numLayers-1);
 
       double X = width*COS18*SIN_HALFD;
       double Y = width*SIN18;
diff --git a/src/main/java/org/distorted/objects/TwistyMegaminx.java b/src/main/java/org/distorted/objects/TwistyMegaminx.java
index 81f0ca82..fcd7160e 100644
--- a/src/main/java/org/distorted/objects/TwistyMegaminx.java
+++ b/src/main/java/org/distorted/objects/TwistyMegaminx.java
@@ -70,7 +70,7 @@ public class TwistyMegaminx extends TwistyMinx
 
   float getScreenRatio()
     {
-    return 1.07f;
+    return 0.356f;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -121,7 +121,7 @@ public class TwistyMegaminx extends TwistyMinx
     {
     if( mCenterCoords==null ) initializeCenterCoords();
     float[] coords = mCenterCoords[center];
-    float A = numLayers/3.0f;
+    float A = 0.33f*numLayers;
 
     return new float[] { A*coords[0], A*coords[1], A*coords[2] };
     }
@@ -215,7 +215,7 @@ public class TwistyMegaminx extends TwistyMinx
       float vY = D*center[1] - y;
       float vZ = D*center[2] - z;
 
-      float A = mult*D*(0.5f-MEGA_D)*COS18/((numLayers-1)*0.5f);
+      float A = 3*mult*D*(0.5f-MEGA_D)*COS18/((numLayers-1)*0.5f);
       A /= (float)Math.sqrt(vX*vX+vY*vY+vZ*vZ);
 
       return new float[] { x+A*vX, y+A*vY, z+A*vZ };
@@ -291,7 +291,7 @@ public class TwistyMegaminx extends TwistyMinx
 
     if( variant==0 )
       {
-      float width = (numLayers/3.0f)*(0.5f-MEGA_D)/(0.5f*(numLayers-1));
+      float width = numLayers*(0.5f-MEGA_D)/(0.5f*(numLayers-1));
       float A = (2*SQ3/3)*SIN54;
       float B = 0.4f;
       double X = width*COS18*SIN_HALFD;
@@ -340,8 +340,8 @@ public class TwistyMegaminx extends TwistyMinx
       int numCubitsPerCorner = numCubitsPerCorner(numLayers);
       int numCubitsPerEdge   = numCubitsPerEdge(numLayers);
       int type = computeEdgeType(cubit,numCubitsPerCorner,numCubitsPerEdge);
-      float height= (numLayers/3.0f)*(0.5f-MEGA_D)*COS18/((numLayers-1)*0.5f);
-      float width = (numLayers/3.0f)*2*MEGA_D + 2*type*height*SIN18/COS18;
+      float height= numLayers*(0.5f-MEGA_D)*COS18/((numLayers-1)*0.5f);
+      float width = numLayers*2*MEGA_D + 2*type*height*SIN18/COS18;
 
       double W = width/2;
       double X = height*SIN_HALFD;
@@ -387,7 +387,7 @@ public class TwistyMegaminx extends TwistyMinx
       }
     else
       {
-      float width = 2 * (numLayers/3.0f) * (MEGA_D+(0.5f-MEGA_D)*SIN18);
+      float width = 2*numLayers*(MEGA_D+(0.5f-MEGA_D)*SIN18);
       final double V = 0.83;   // ??
       final double ANGLE = V*Math.PI;
       final double cosA  = Math.cos(ANGLE);
diff --git a/src/main/java/org/distorted/objects/TwistyMinx.java b/src/main/java/org/distorted/objects/TwistyMinx.java
index bb626cc3..5072ccac 100644
--- a/src/main/java/org/distorted/objects/TwistyMinx.java
+++ b/src/main/java/org/distorted/objects/TwistyMinx.java
@@ -121,9 +121,9 @@ abstract class TwistyMinx extends TwistyObject
     mBasicCornerV = new Static4D[3];
     mCurrCornerV  = new Static4D[3];
 
-    mBasicCornerV[0] = new Static4D( (SQ5+1)*0.125f, (SQ5-1)*0.125f, -0.250f, 0.0f );
-    mBasicCornerV[1] = new Static4D(-(SQ5+1)*0.125f, (SQ5-1)*0.125f, -0.250f, 0.0f );
-    mBasicCornerV[2] = new Static4D(              0,        -0.500f,    0.0f, 0.0f );
+    mBasicCornerV[0] = new Static4D( (SQ5+1)*0.375f, (SQ5-1)*0.375f, -0.750f, 0.0f );
+    mBasicCornerV[1] = new Static4D(-(SQ5+1)*0.375f, (SQ5-1)*0.375f, -0.750f, 0.0f );
+    mBasicCornerV[2] = new Static4D(              0,        -1.500f,    0.0f, 0.0f );
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -316,28 +316,32 @@ abstract class TwistyMinx extends TwistyObject
 
   void initializeCorners()
     {
+    float cA = 1.5f;
+    float cB = 3*C2;
+    float cC = 3*SIN54;
+
     mCorners = new float[][]
          {
-             {  0.0f,  0.5f,    C2},
-             {  0.0f,  0.5f,   -C2},
-             {  0.0f, -0.5f,    C2},
-             {  0.0f, -0.5f,   -C2},
-             {    C2,  0.0f,  0.5f},
-             {    C2,  0.0f, -0.5f},
-             {   -C2,  0.0f,  0.5f},
-             {   -C2,  0.0f, -0.5f},
-             {  0.5f,    C2,  0.0f},
-             {  0.5f,   -C2,  0.0f},
-             { -0.5f,    C2,  0.0f},
-             { -0.5f,   -C2,  0.0f},
-             { SIN54, SIN54, SIN54},
-             { SIN54, SIN54,-SIN54},
-             { SIN54,-SIN54, SIN54},
-             { SIN54,-SIN54,-SIN54},
-             {-SIN54, SIN54, SIN54},
-             {-SIN54, SIN54,-SIN54},
-             {-SIN54,-SIN54, SIN54},
-             {-SIN54,-SIN54,-SIN54},
+             {  0, cA, cB},
+             {  0, cA,-cB},
+             {  0,-cA, cB},
+             {  0,-cA,-cB},
+             { cB,  0, cA},
+             { cB,  0,-cA},
+             {-cB,  0, cA},
+             {-cB,  0,-cA},
+             { cA, cB,  0},
+             { cA,-cB,  0},
+             {-cA, cB,  0},
+             {-cA,-cB,  0},
+             { cC, cC, cC},
+             { cC, cC,-cC},
+             { cC,-cC, cC},
+             { cC,-cC,-cC},
+             {-cC, cC, cC},
+             {-cC, cC,-cC},
+             {-cC,-cC, cC},
+             {-cC,-cC,-cC},
          };
     }
 
diff --git a/src/main/res/raw/kilo3.dmesh b/src/main/res/raw/kilo3.dmesh
index 9208be34..89c96732 100644
Binary files a/src/main/res/raw/kilo3.dmesh and b/src/main/res/raw/kilo3.dmesh differ
diff --git a/src/main/res/raw/kilo5.dmesh b/src/main/res/raw/kilo5.dmesh
index 71b1c9e2..f936b1e3 100644
Binary files a/src/main/res/raw/kilo5.dmesh and b/src/main/res/raw/kilo5.dmesh differ
diff --git a/src/main/res/raw/mega3.dmesh b/src/main/res/raw/mega3.dmesh
index 8f9930d7..e50f88c7 100644
Binary files a/src/main/res/raw/mega3.dmesh and b/src/main/res/raw/mega3.dmesh differ
diff --git a/src/main/res/raw/mega5.dmesh b/src/main/res/raw/mega5.dmesh
index b34fbba5..f346507f 100644
Binary files a/src/main/res/raw/mega5.dmesh and b/src/main/res/raw/mega5.dmesh differ
