commit 4d27a99bcbdb26abc5ebba083185347e93816e88
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Wed Sep 15 13:48:00 2021 +0200

    Make Ivy standard size (cube size=2, i.e. equal to numLayers so that DIST2D and DIST3D are standard)

diff --git a/src/main/java/org/distorted/objects/MovementIvy.java b/src/main/java/org/distorted/objects/MovementIvy.java
index 914f5ad3..dd72cc40 100644
--- a/src/main/java/org/distorted/objects/MovementIvy.java
+++ b/src/main/java/org/distorted/objects/MovementIvy.java
@@ -25,8 +25,8 @@ import org.distorted.library.type.Static3D;
 
 class MovementIvy extends Movement
 {
-  static final float DIST3D = 0.25f;
-  static final float DIST2D = 0.25f;
+  static final float DIST3D = 0.5f;
+  static final float DIST2D = 0.5f;
 
   static final Static3D[] FACE_AXIS = new Static3D[]
          {
diff --git a/src/main/java/org/distorted/objects/TwistyIvy.java b/src/main/java/org/distorted/objects/TwistyIvy.java
index a38cf5f9..7a8e17ae 100644
--- a/src/main/java/org/distorted/objects/TwistyIvy.java
+++ b/src/main/java/org/distorted/objects/TwistyIvy.java
@@ -52,7 +52,7 @@ public class TwistyIvy extends TwistyObject
          };
 
   private static final int NUM_STICKERS = 2;
-  public static final float IVY_D = 0.003f;
+  public static final float IVY_D = 0.006f;
   private static final int  IVY_N = 8;
   private static final int FACES_PER_CUBIT =6;
 
@@ -129,7 +129,7 @@ public class TwistyIvy extends TwistyObject
 
   float getScreenRatio()
     {
-    return 1.0f;
+    return 0.5f;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -187,8 +187,8 @@ public class TwistyIvy extends TwistyObject
 
   float[][] getCubitPositions(int numLayers)
     {
-    final float DIST_CORNER = (numLayers-1)*0.50f;
-    final float DIST_CENTER = (numLayers-1)*0.50f;
+    final float DIST_CORNER = numLayers-1;
+    final float DIST_CENTER = numLayers-1;
 
     final float[][] CENTERS = new float[10][];
 
@@ -217,8 +217,8 @@ public class TwistyIvy extends TwistyObject
       final float angle = (float)Math.PI/(2*IVY_N);
       final float CORR  = 1.0f - 2*IVY_D;
 
-      float[][] centers= new float[][] { {-0.5f,-0.5f,-0.5f} };
-      float[][] corners= new float[][] { {0.03f,0.10f}, {0.02f,0.10f} };
+      float[][] centers= new float[][] { {-1.0f,-1.0f,-1.0f} };
+      float[][] corners= new float[][] { {0.05f,0.20f}, {0.04f,0.20f} };
       int[] cornerIndices= new int[3*(IVY_N+1)+4];
       int[] centerIndices= new int[3*(IVY_N+1)+4];
       double[][] vertices= new double[3*(IVY_N+1)+4][3];
@@ -250,15 +250,15 @@ public class TwistyIvy extends TwistyObject
       vertices[0][0] = 0.0;
       vertices[0][1] = 0.0;
       vertices[0][2] = 0.0;
-      vertices[1][0] =-1.0;
+      vertices[1][0] =-2.0;
       vertices[1][1] = 0.0;
       vertices[1][2] = 0.0;
       vertices[2][0] = 0.0;
-      vertices[2][1] =-1.0;
+      vertices[2][1] =-2.0;
       vertices[2][2] = 0.0;
       vertices[3][0] = 0.0;
       vertices[3][1] = 0.0;
-      vertices[3][2] =-1.0;
+      vertices[3][2] =-2.0;
 
       vertIndices[0][0] = 2;
       vertIndices[0][1] = 0;
@@ -292,17 +292,17 @@ public class TwistyIvy extends TwistyObject
         double cos2 = Math.cos((      i)*angle);
         double sin2 = Math.sin((      i)*angle);
 
-        vertices[N1+i][0] = CORR*(cos1-0.5) - 0.5;
-        vertices[N1+i][1] = CORR*(sin1-0.5) - 0.5;
+        vertices[N1+i][0] = CORR*(2*cos1-1.0) - 1.0;
+        vertices[N1+i][1] = CORR*(2*sin1-1.0) - 1.0;
         vertices[N1+i][2] = 0.0;
 
         vertices[N2+i][0] = 0.0;
-        vertices[N2+i][1] = CORR*(sin2-0.5) - 0.5;
-        vertices[N2+i][2] = CORR*(cos2-0.5) - 0.5;
+        vertices[N2+i][1] = CORR*(2*sin2-1.0) - 1.0;
+        vertices[N2+i][2] = CORR*(2*cos2-1.0) - 1.0;
 
-        vertices[N3+i][0] = CORR*(cos2-0.5) - 0.5;
+        vertices[N3+i][0] = CORR*(2*cos2-1.0) - 1.0;
         vertices[N3+i][1] = 0.0;
-        vertices[N3+i][2] = CORR*(sin2-0.5) - 0.5;
+        vertices[N3+i][2] = CORR*(2*sin2-1.0) - 1.0;
 
         vertIndices[0][i+3] = N1 + i;
         vertIndices[1][i+3] = N2 + i;
@@ -312,7 +312,7 @@ public class TwistyIvy extends TwistyObject
         vertIndices[5][i+3] = N3 + i;
         }
 
-      float C = 0.5f - SQ2/4;
+      float C = 1.0f - SQ2/2;
       float[] convexCenter = new float[] {-C,-C,-C};
       return new ObjectShape(vertices,vertIndices,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), convexCenter);
       }
@@ -325,19 +325,19 @@ public class TwistyIvy extends TwistyObject
 
       int[] bandIndices= new int[] { 0,1 };
       int[] indexes    = new int[2*IVY_N];
-      float[][] corners= new float[][] { {0.03f,0.10f} };
-      float[][] centers= new float[][] { {-0.0f,-0.0f,-0.5f} };
+      float[][] corners= new float[][] { {0.05f,0.20f} };
+      float[][] centers= new float[][] { {-0.0f,-0.0f,-1.0f} };
 
       for(int i=0; i<IVY_N; i++)
         {
         double sin = Math.sin(i*angle);
         double cos = Math.cos(i*angle);
 
-        vertices[i      ][0] = CORR*(0.5f-cos);
-        vertices[i      ][1] = CORR*(0.5f-sin);
+        vertices[i      ][0] = CORR*(1.0f-2*cos);
+        vertices[i      ][1] = CORR*(1.0f-2*sin);
         vertices[i      ][2] = 0;
-        vertices[i+IVY_N][0] = CORR*(cos-0.5f);
-        vertices[i+IVY_N][1] = CORR*(sin-0.5f);
+        vertices[i+IVY_N][0] = CORR*(2*cos-1.0f);
+        vertices[i+IVY_N][1] = CORR*(2*sin-1.0f);
         vertices[i+IVY_N][2] = 0;
         }
 
diff --git a/src/main/res/raw/ivy.dmesh b/src/main/res/raw/ivy.dmesh
index ce1e1eb6..831b7d3c 100644
Binary files a/src/main/res/raw/ivy.dmesh and b/src/main/res/raw/ivy.dmesh differ
