commit 03aa05d59acd1d6d12829dc955274d5301804912
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Dec 15 00:22:54 2020 +0100

    Rex Cube Mesh

diff --git a/src/main/java/org/distorted/objects/ObjectList.java b/src/main/java/org/distorted/objects/ObjectList.java
index 84ac1dce..d8a7baea 100644
--- a/src/main/java/org/distorted/objects/ObjectList.java
+++ b/src/main/java/org/distorted/objects/ObjectList.java
@@ -123,7 +123,7 @@ public enum ObjectList
 
    REX (
          new int[][] {
-                       {3 , 16, R.raw.ivy, R.drawable.ui_small_rex, R.drawable.ui_medium_rex, R.drawable.ui_big_rex, R.drawable.ui_huge_rex} ,
+                       {3 , 16, 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,
          new MovementRex(),
diff --git a/src/main/java/org/distorted/objects/TwistyObject.java b/src/main/java/org/distorted/objects/TwistyObject.java
index 3eb40f75..c6f94c41 100644
--- a/src/main/java/org/distorted/objects/TwistyObject.java
+++ b/src/main/java/org/distorted/objects/TwistyObject.java
@@ -78,7 +78,7 @@ public abstract class TwistyObject extends DistortedNode
   private static final float MAX_SIZE_CHANGE = 1.35f;
   private static final float MIN_SIZE_CHANGE = 0.75f;
 
-  private static boolean mCreateFromDMesh = false;
+  private static final boolean mCreateFromDMesh = true;
 
   private static final Static3D CENTER = new Static3D(0,0,0);
   private static final int POST_ROTATION_MILLISEC = 500;
@@ -98,21 +98,21 @@ public abstract class TwistyObject extends DistortedNode
   private static float mObjectScreenRatio = 1.0f;
 
   private final int mNodeSize;
+  private final Static3D[] mOrigPos;
+  private final Static3D mNodeScale;
+  private final Static4D mQuat;
+  private final int mNumLayers, mRealSize;
+  private final ObjectList mList;
+  private final DistortedEffects mEffects;
+  private final VertexEffectRotate mRotateEffect;
+  private final Dynamic1D mRotationAngle;
+  private final Static3D mRotationAxis;
+  private final Static3D mObjectScale;
+  private final int[] mQuatDebug;
+  private int mNumTexRows, mNumTexCols;
   private int mRotRowBitmap;
   private int mRotAxis;
-  private Static3D[] mOrigPos;
-  private Static3D mNodeScale;
-  private Static4D mQuat;
-  private int mNumLayers, mRealSize;
-  private ObjectList mList;
   private MeshBase mMesh;
-  private DistortedEffects mEffects;
-  private VertexEffectRotate mRotateEffect;
-  private Dynamic1D mRotationAngle;
-  private Static3D mRotationAxis;
-  private Static3D mObjectScale;
-  private int[] mQuatDebug;
-  private int mNumTexRows, mNumTexCols;
 
   float[] mRowChances;
   Static1D mRotationAngleStatic, mRotationAngleMiddle, mRotationAngleFinal;
diff --git a/src/main/java/org/distorted/objects/TwistyRex.java b/src/main/java/org/distorted/objects/TwistyRex.java
index 328bbe65..e673c9d8 100644
--- a/src/main/java/org/distorted/objects/TwistyRex.java
+++ b/src/main/java/org/distorted/objects/TwistyRex.java
@@ -352,7 +352,7 @@ public class TwistyRex extends TwistyObject
     {
     int COLORS = FACE_COLORS.length;
     FactorySticker factory = FactorySticker.getInstance();
-    float S1 = 0.06f;
+    float S1 = 0.05f;
     float S2 = 0.04f;
     float R1 = 0.12f;
     float R2 = 0.06f;
diff --git a/src/main/java/org/distorted/tutorial/TutorialList.java b/src/main/java/org/distorted/tutorial/TutorialList.java
index 69e42480..04eb126f 100644
--- a/src/main/java/org/distorted/tutorial/TutorialList.java
+++ b/src/main/java/org/distorted/tutorial/TutorialList.java
@@ -172,13 +172,23 @@ public enum TutorialList
                           {"fr","mn7YTnYu3Uc","Comment résoudre le Ivy Cube","ValentinoCube"},
                           {"pl","8s_0VxNvFA8","Jak ułożyć ivy cube","DubiCube"},
                          }
+        ),
+
+  REX3 ( ObjectList.REX, 3,
+          new String[][] {
+                          {"gb","noAQfWqlMbk","Rex Cube Tutorial","CrazyBadCuber"},
+                          {"es","Q90x9rjLJzw","Resolver CUBO REX","Cuby"},
+                          {"ru","Dr9CLM6A3fU","Как собрать Рекс Куб","Алексей Ярыгин"},
+                          {"fr","SvK1kf6c43c","Résolution du Rex Cube","Asthalis"},
+                          {"pl","ffbFRnHglWY","Rex cube TUTORIAL PL","MrUk"},
+                         }
         );
 
   public static final int NUM_OBJECTS = values().length;
-  private ObjectList mObject;
-  private int mSize;
-  private String[][] mTutorials;
-  private int mNumTutorials;
+  private final ObjectList mObject;
+  private final int mSize;
+  private final String[][] mTutorials;
+  private final int mNumTutorials;
 
   private static final TutorialList[] objects;
 
diff --git a/src/main/res/raw/rex.dmesh b/src/main/res/raw/rex.dmesh
new file mode 100644
index 00000000..3331b1ab
Binary files /dev/null and b/src/main/res/raw/rex.dmesh differ
