commit 96208efc894242ab2935b6a96ef5a68941042481
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Sep 21 01:50:58 2021 +0200

    MOve the FOV from ObjectList to individual object classes.

diff --git a/src/main/java/org/distorted/objects/ObjectList.java b/src/main/java/org/distorted/objects/ObjectList.java
index 62f7c98b..a2a48c4b 100644
--- a/src/main/java/org/distorted/objects/ObjectList.java
+++ b/src/main/java/org/distorted/objects/ObjectList.java
@@ -44,8 +44,7 @@ public enum ObjectList
                        {5 , 24, 28, R.raw.cube5, R.drawable.ui_small_cube5, R.drawable.ui_medium_cube5, R.drawable.ui_big_cube5, R.drawable.ui_huge_cube5}
                      },
          TwistyCube.class,
-         0,
-         60
+         0
        ),
 
   JING (
@@ -53,8 +52,7 @@ public enum ObjectList
                        {2 , 11, 11, R.raw.jing, R.drawable.ui_small_jing2, R.drawable.ui_medium_jing2, R.drawable.ui_big_jing2, R.drawable.ui_huge_jing2} ,
                      },
          TwistyJing.class,
-         1,
-         30
+         1
        ),
 
   PYRA (
@@ -64,8 +62,7 @@ public enum ObjectList
                        {5 , 20, 23, R.raw.pyra5, R.drawable.ui_small_pyra5, R.drawable.ui_medium_pyra5, R.drawable.ui_big_pyra5, R.drawable.ui_huge_pyra5}
                      },
          TwistyPyraminx.class,
-         1,
-         30
+         1
        ),
 
   KILO (
@@ -74,8 +71,7 @@ public enum ObjectList
                        {5 , 33, 33, R.raw.kilo5, R.drawable.ui_small_kilo5, R.drawable.ui_medium_kilo5, R.drawable.ui_big_kilo5, R.drawable.ui_huge_kilo5} ,
                      },
          TwistyKilominx.class,
-         2,
-         30
+         2
        ),
 
   MEGA (
@@ -84,8 +80,7 @@ public enum ObjectList
                        {5 , 35, 37, R.raw.mega5, R.drawable.ui_small_mega5, R.drawable.ui_medium_mega5, R.drawable.ui_big_mega5, R.drawable.ui_huge_mega5} ,
                      },
          TwistyMegaminx.class,
-         2,
-         30
+         2
        ),
 
   ULTI (
@@ -93,8 +88,7 @@ public enum ObjectList
                        {2 , 18, 18, R.raw.ulti, R.drawable.ui_small_ulti, R.drawable.ui_medium_ulti, R.drawable.ui_big_ulti, R.drawable.ui_huge_ulti} ,
                      },
          TwistyUltimate.class,
-         3,
-         30
+         3
        ),
 
   DIAM (
@@ -104,8 +98,7 @@ public enum ObjectList
                        {4 , 32, 32, R.raw.diam4, R.drawable.ui_small_diam4, R.drawable.ui_medium_diam4, R.drawable.ui_big_diam4, R.drawable.ui_huge_diam4} ,
                      },
          TwistyDiamond.class,
-         3,
-         60
+         3
        ),
 
   DINO (
@@ -113,8 +106,7 @@ public enum ObjectList
                        {3 , 10, 10, R.raw.dino, R.drawable.ui_small_dino, R.drawable.ui_medium_dino, R.drawable.ui_big_dino, R.drawable.ui_huge_dino} ,
                      },
          TwistyDino6.class,
-         4,
-         60
+         4
        ),
 
   DIN4 (
@@ -122,8 +114,7 @@ public enum ObjectList
                        {3 , 7, 7, R.raw.dino, R.drawable.ui_small_din4, R.drawable.ui_medium_din4, R.drawable.ui_big_din4, R.drawable.ui_huge_din4} ,
                      },
          TwistyDino4.class,
-         4,
-         60
+         4
        ),
 
   REDI (
@@ -131,8 +122,7 @@ public enum ObjectList
                        {3 , 14, 16, R.raw.redi, R.drawable.ui_small_redi, R.drawable.ui_medium_redi, R.drawable.ui_big_redi, R.drawable.ui_huge_redi} ,
                      },
          TwistyRedi.class,
-         4,
-         60
+         4
        ),
 
   HELI (
@@ -140,8 +130,7 @@ public enum ObjectList
                        {3 , 18, 20, R.raw.heli, R.drawable.ui_small_heli, R.drawable.ui_medium_heli, R.drawable.ui_big_heli, R.drawable.ui_huge_heli} ,
                      },
          TwistyHelicopter.class,
-         4,
-         60
+         4
        ),
 
   SKEW (
@@ -150,8 +139,7 @@ public enum ObjectList
                        {3 , 17, 21, R.raw.skew3, R.drawable.ui_small_skewm, R.drawable.ui_medium_skewm, R.drawable.ui_big_skewm, R.drawable.ui_huge_skewm} ,
                      },
          TwistySkewb.class,
-         5,
-         60
+         5
        ),
 
   IVY  (
@@ -159,8 +147,7 @@ public enum ObjectList
                        {2 , 8, 8, R.raw.ivy, R.drawable.ui_small_ivy, R.drawable.ui_medium_ivy, R.drawable.ui_big_ivy, R.drawable.ui_huge_ivy} ,
                      },
          TwistyIvy.class,
-         5,
-         60
+         5
        ),
 
   REX  (
@@ -168,8 +155,7 @@ public enum ObjectList
                        {3 , 16, 19, R.raw.rex, R.drawable.ui_small_rex, R.drawable.ui_medium_rex, R.drawable.ui_big_rex, R.drawable.ui_huge_rex} ,
                      },
          TwistyRex.class,
-         5,
-         60
+         5
        ),
 
   BAN1 (
@@ -177,8 +163,7 @@ public enum ObjectList
                        {3 , 16, 16, R.raw.ban1, R.drawable.ui_small_ban1, R.drawable.ui_medium_ban1, R.drawable.ui_big_ban1, R.drawable.ui_huge_ban1} ,
                      },
          TwistyBandagedFused.class,
-         6,
-         60
+         6
        ),
 
   BAN2 (
@@ -186,8 +171,7 @@ public enum ObjectList
                        {3 , 16, 16, R.raw.ban2, R.drawable.ui_small_ban2, R.drawable.ui_medium_ban2, R.drawable.ui_big_ban2, R.drawable.ui_huge_ban2} ,
                      },
          TwistyBandaged2Bar.class,
-         6,
-         60
+         6
        ),
 
   BAN3 (
@@ -195,8 +179,7 @@ public enum ObjectList
                        {3 , 16, 16, R.raw.ban3, R.drawable.ui_small_ban3, R.drawable.ui_medium_ban3, R.drawable.ui_big_ban3, R.drawable.ui_huge_ban3} ,
                      },
          TwistyBandaged3Plate.class,
-         6,
-         60
+         6
        ),
 
   BAN4 (
@@ -204,8 +187,7 @@ public enum ObjectList
                        {3 , 16, 16, R.raw.ban4, R.drawable.ui_small_ban4, R.drawable.ui_medium_ban4, R.drawable.ui_big_ban4, R.drawable.ui_huge_ban4} ,
                      },
          TwistyBandagedEvil.class,
-         6,
-         60
+         6
        ),
 
   SQU1 (
@@ -213,8 +195,7 @@ public enum ObjectList
                        {3 , 24, 24, R.raw.square1, R.drawable.ui_small_square1, R.drawable.ui_medium_square1, R.drawable.ui_big_square1, R.drawable.ui_huge_square1} ,
                      },
          TwistySquare1.class,
-         7,
-         60
+         7
        ),
 
   SQU2 (
@@ -222,8 +203,7 @@ public enum ObjectList
                        {3 , 24, 24, R.raw.square2, R.drawable.ui_small_square2, R.drawable.ui_medium_square2, R.drawable.ui_big_square2, R.drawable.ui_huge_square2} ,
                      },
          TwistySquare2.class,
-         7,
-         60
+         7
        ),
 
   MIRR (
@@ -232,8 +212,7 @@ public enum ObjectList
                        {3 , 16, 17, R.raw.mirr3, R.drawable.ui_small_mirr3, R.drawable.ui_medium_mirr3, R.drawable.ui_big_mirr3, R.drawable.ui_huge_mirr3} ,
                      },
          TwistyMirror.class,
-         7,
-         60
+         7
        ),
   ;
 
@@ -246,7 +225,6 @@ public enum ObjectList
   private final int[] mObjectSizes, mDBLevels, mNumScrambles, mSmallIconIDs, mMediumIconIDs, mBigIconIDs, mHugeIconIDs, mResourceIDs;
   private final Class<? extends TwistyObject> mObjectClass;
   private final int mRow, mNumSizes;
-  private final int mFOV;
 
   private static final ObjectList[] objects;
   private static int mNumAll;
@@ -543,7 +521,7 @@ public enum ObjectList
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  ObjectList(int[][] info, Class<? extends TwistyObject> object , int row, int fov)
+  ObjectList(int[][] info, Class<? extends TwistyObject> object , int row)
     {
     mNumSizes = info.length;
 
@@ -570,7 +548,6 @@ public enum ObjectList
 
     mObjectClass= object;
     mRow        = row;
-    mFOV        = fov;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -580,27 +557,6 @@ public enum ObjectList
     return mObjectSizes;
     }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public int[] getDBLevels()
-    {
-    return mDBLevels;
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public int[] getNumScrambles()
-    {
-    return mNumScrambles;
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public int getFOV()
-    {
-    return mFOV;
-    }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public int[] getIconIDs()
@@ -623,13 +579,6 @@ public enum ObjectList
     return mResourceIDs;
     }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public int getNumVariants()
-    {
-    return mObjectSizes.length;
-    }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public TwistyObject create(int size, Static4D quat, int[][] moves, Resources res, int scrWidth)
diff --git a/src/main/java/org/distorted/objects/Twisty12.java b/src/main/java/org/distorted/objects/Twisty12.java
index 48119f17..ee6f0fd0 100644
--- a/src/main/java/org/distorted/objects/Twisty12.java
+++ b/src/main/java/org/distorted/objects/Twisty12.java
@@ -72,11 +72,18 @@ abstract class Twisty12 extends TwistyObject
     return 12;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  int getFOV()
+    {
+    return 30;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   float getScreenRatio()
     {
-    return 0.33f;
+    return 0.35f;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objects/Twisty4.java b/src/main/java/org/distorted/objects/Twisty4.java
index e5f574b5..54ddeb82 100644
--- a/src/main/java/org/distorted/objects/Twisty4.java
+++ b/src/main/java/org/distorted/objects/Twisty4.java
@@ -58,6 +58,13 @@ abstract class Twisty4 extends TwistyObject
     return 4;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  int getFOV()
+    {
+    return 30;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   float getScreenRatio()
diff --git a/src/main/java/org/distorted/objects/Twisty6.java b/src/main/java/org/distorted/objects/Twisty6.java
index 7bf50be0..074922f6 100644
--- a/src/main/java/org/distorted/objects/Twisty6.java
+++ b/src/main/java/org/distorted/objects/Twisty6.java
@@ -59,6 +59,13 @@ abstract class Twisty6 extends TwistyObject
     return 6;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  int getFOV()
+    {
+    return 60;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   float getScreenRatio()
diff --git a/src/main/java/org/distorted/objects/Twisty8.java b/src/main/java/org/distorted/objects/Twisty8.java
index 8ad09809..e9e020e3 100644
--- a/src/main/java/org/distorted/objects/Twisty8.java
+++ b/src/main/java/org/distorted/objects/Twisty8.java
@@ -60,6 +60,13 @@ abstract class Twisty8 extends TwistyObject
     return 8;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  int getFOV()
+    {
+    return 60;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   float getScreenRatio()
diff --git a/src/main/java/org/distorted/objects/TwistyObject.java b/src/main/java/org/distorted/objects/TwistyObject.java
index 977a7bd5..0d2cb7db 100644
--- a/src/main/java/org/distorted/objects/TwistyObject.java
+++ b/src/main/java/org/distorted/objects/TwistyObject.java
@@ -240,7 +240,7 @@ public abstract class TwistyObject extends DistortedNode
 
     setupPosition(moves);
 
-    float fov = list.getFOV();
+    float fov = getFOV();
     double halfFOV = fov * (Math.PI/360);
     mCameraDist = 0.5f*NODE_RATIO / (float)Math.tan(halfFOV);
 
@@ -1306,6 +1306,7 @@ public abstract class TwistyObject extends DistortedNode
   abstract ObjectShape getObjectShape(int cubit, int numLayers);
   abstract int[] getSolvedQuats(int cubit, int numLayers);
   abstract int getSolvedFunctionIndex();
+  abstract int getFOV();
   abstract ScrambleState[] getScrambleStates();
 
   public abstract Movement getMovement();
