commit a7496a08e4ec864179d37e1923b9b3f122d3a60c
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Wed May 26 13:47:50 2021 +0200

    Skewb Ultimate (hopefully) finished.

diff --git a/src/main/java/org/distorted/objects/MovementUltimate.java b/src/main/java/org/distorted/objects/MovementUltimate.java
index a5375cad..1f0fc4d2 100644
--- a/src/main/java/org/distorted/objects/MovementUltimate.java
+++ b/src/main/java/org/distorted/objects/MovementUltimate.java
@@ -31,8 +31,8 @@ import static org.distorted.objects.TwistyObject.SQ5;
 
 class MovementUltimate 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)/2;
+  static final float DIST2D = (0.5f*SIN54/COS54)/2;
 
   static final Static3D[] FACE_AXIS = new Static3D[]
          {
@@ -61,21 +61,7 @@ class MovementUltimate extends Movement
 
   int computeRowFromOffset(int face, int size, float offset)
     {
-    if( size==3 )
-      {
-      return offset<DIST2D ? 0:2;
-      }
-    if( size==5 )
-      {
-      float quot = offset / DIST2D;
-
-      if( quot>0.00f && quot<=0.34f ) return 0;
-      if( quot>0.34f && quot<=1.00f ) return 1;
-      if( quot>1.00f && quot<=1.66f ) return 3;
-      if( quot>1.66f && quot<=2.00f ) return 4;
-      }
-
-    return 0;
+    return offset<DIST2D ? 0:1;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -131,12 +117,6 @@ class MovementUltimate extends Movement
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-// Return 1,2,3,4,5 - the vertex of the pentagon to which point 'point' is the closest, if the
-// 'point' is inside the pentagon - or 0 otherwise.
-// The 'first' vertex is the one we meet the first when we rotate clockwise starting from 12:00.
-// This vertex makes angle 'returnAngle()' with the line coming out upwards from the center of the
-// pentagon.
-// Distance from the center to a vertex of the pentagon = 1/(6*COS54)
 
   private int returnPartOfThePentagon(float[] point, int face)
     {
@@ -148,25 +128,7 @@ class MovementUltimate extends Movement
       if( isOnTheLeft(point, DIST2D, (9-2*i)*A-angle) ) return 0;
       }
 
-    if( isOnTheLeft(point, 0, 2.5f*A-angle) )
-      {
-      if( isOnTheLeft(point, 0, 3.5f*A-angle) )
-        {
-        return isOnTheLeft(point, 0, 5.5f*A-angle) ? 4 : 5;
-        }
-      else return 1;
-      }
-    else
-      {
-      if( isOnTheLeft(point, 0, 4.5f*A-angle) )
-        {
-        return 3;
-        }
-      else
-        {
-        return isOnTheLeft(point, 0, 6.5f*A-angle) ? 2 : 1;
-        }
-      }
+    return 1;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -180,138 +142,22 @@ class MovementUltimate extends Movement
 
   void computeEnabledAxis(int face, float[] touchPoint, int[] enabled)
     {
-    int part = returnPartOfThePentagon(touchPoint,face);
-
-    if( part>0 )
-      {
-      enabled[0] = 2;
-
-      switch(face)
-        {
-        case  0:  switch(part)
-                    {
-                    case 1: enabled[1]=2; enabled[2]=3; break;
-                    case 2: enabled[1]=3; enabled[2]=5; break;
-                    case 3: enabled[1]=5; enabled[2]=1; break;
-                    case 4: enabled[1]=1; enabled[2]=4; break;
-                    case 5: enabled[1]=4; enabled[2]=2; break;
-                    }
-                  break;
+    enabled[0] = 2;
 
-        case  1:  switch(part)
-                    {
-                    case 1: enabled[1]=0; enabled[2]=5; break;
-                    case 2: enabled[1]=5; enabled[2]=2; break;
-                    case 3: enabled[1]=2; enabled[2]=3; break;
-                    case 4: enabled[1]=3; enabled[2]=4; break;
-                    case 5: enabled[1]=4; enabled[2]=0; break;
-                    }
-                  break;
-
-        case  2:  switch(part)
-                    {
-                    case 1: enabled[1]=3; enabled[2]=2; break;
-                    case 2: enabled[1]=2; enabled[2]=5; break;
-                    case 3: enabled[1]=5; enabled[2]=0; break;
-                    case 4: enabled[1]=0; enabled[2]=4; break;
-                    case 5: enabled[1]=4; enabled[2]=3; break;
-                    }
-                  break;
-
-        case  3:  switch(part)
-                    {
-                    case 1: enabled[1]=1; enabled[2]=5; break;
-                    case 2: enabled[1]=5; enabled[2]=3; break;
-                    case 3: enabled[1]=3; enabled[2]=2; break;
-                    case 4: enabled[1]=2; enabled[2]=4; break;
-                    case 5: enabled[1]=4; enabled[2]=1; break;
-                    }
-                  break;
-
-        case  4:  switch(part)
-                    {
-                    case 1: enabled[1]=3; enabled[2]=0; break;
-                    case 2: enabled[1]=0; enabled[2]=4; break;
-                    case 3: enabled[1]=4; enabled[2]=5; break;
-                    case 4: enabled[1]=5; enabled[2]=1; break;
-                    case 5: enabled[1]=1; enabled[2]=3; break;
-                    }
-                  break;
-
-        case  5:  switch(part)
-                    {
-                    case 1: enabled[1]=2; enabled[2]=1; break;
-                    case 2: enabled[1]=1; enabled[2]=4; break;
-                    case 3: enabled[1]=4; enabled[2]=5; break;
-                    case 4: enabled[1]=5; enabled[2]=0; break;
-                    case 5: enabled[1]=0; enabled[2]=2; break;
-                    }
-                  break;
-
-        case  6:  switch(part)
-                    {
-                    case 1: enabled[1]=5; enabled[2]=4; break;
-                    case 2: enabled[1]=4; enabled[2]=1; break;
-                    case 3: enabled[1]=1; enabled[2]=2; break;
-                    case 4: enabled[1]=2; enabled[2]=0; break;
-                    case 5: enabled[1]=0; enabled[2]=5; break;
-                    }
-                  break;
-
-        case  7:  switch(part)
-                    {
-                    case 1: enabled[1]=5; enabled[2]=4; break;
-                    case 2: enabled[1]=4; enabled[2]=0; break;
-                    case 3: enabled[1]=0; enabled[2]=3; break;
-                    case 4: enabled[1]=3; enabled[2]=1; break;
-                    case 5: enabled[1]=1; enabled[2]=5; break;
-                    }
-                  break;
-
-        case  8: switch(part)
-                    {
-                    case 1: enabled[1]=2; enabled[2]=0; break;
-                    case 2: enabled[1]=0; enabled[2]=1; break;
-                    case 3: enabled[1]=1; enabled[2]=3; break;
-                    case 4: enabled[1]=3; enabled[2]=5; break;
-                    case 5: enabled[1]=5; enabled[2]=2; break;
-                    }
-                  break;
-
-        case  9:  switch(part)
-                    {
-                    case 1: enabled[1]=3; enabled[2]=4; break;
-                    case 2: enabled[1]=4; enabled[2]=2; break;
-                    case 3: enabled[1]=2; enabled[2]=1; break;
-                    case 4: enabled[1]=1; enabled[2]=0; break;
-                    case 5: enabled[1]=0; enabled[2]=3; break;
-                    }
-                  break;
-
-        case 10:  switch(part)
-                    {
-                    case 1: enabled[1]=2; enabled[2]=4; break;
-                    case 2: enabled[1]=4; enabled[2]=3; break;
-                    case 3: enabled[1]=3; enabled[2]=0; break;
-                    case 4: enabled[1]=0; enabled[2]=1; break;
-                    case 5: enabled[1]=1; enabled[2]=2; break;
-                    }
-                  break;
-
-        case 11:  switch(part)
-                    {
-                    case 1: enabled[1]=3; enabled[2]=1; break;
-                    case 2: enabled[1]=1; enabled[2]=0; break;
-                    case 3: enabled[1]=0; enabled[2]=2; break;
-                    case 4: enabled[1]=2; enabled[2]=5; break;
-                    case 5: enabled[1]=5; enabled[2]=3; break;
-                    }
-                  break;
-        }
-      }
-    else
+    switch(face)
       {
-      enabled[0] = 0;
+      case  0: enabled[1] = 2; enabled[2] = 3; break;
+      case  1: enabled[1] = 1; enabled[2] = 3; break;
+      case  2: enabled[1] = 1; enabled[2] = 3; break;
+      case  3: enabled[1] = 2; enabled[2] = 3; break;
+      case  4: enabled[1] = 0; enabled[2] = 3; break;
+      case  5: enabled[1] = 0; enabled[2] = 2; break;
+      case  6: enabled[1] = 0; enabled[2] = 2; break;
+      case  7: enabled[1] = 0; enabled[2] = 3; break;
+      case  8: enabled[1] = 1; enabled[2] = 2; break;
+      case  9: enabled[1] = 0; enabled[2] = 1; break;
+      case 10: enabled[1] = 0; enabled[2] = 1; break;
+      case 11: enabled[1] = 1; enabled[2] = 2; break;
       }
     }
 }
\ No newline at end of file
