commit 728cff8b316eeb1ca68328455df1c21502f5e229
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Apr 15 21:52:41 2021 +0200

    Convert the Helicopter face cubits to the new engine.

diff --git a/src/main/java/org/distorted/helpers/FactoryCubit.java b/src/main/java/org/distorted/helpers/FactoryCubit.java
index 74f1a287..f7ffac9a 100644
--- a/src/main/java/org/distorted/helpers/FactoryCubit.java
+++ b/src/main/java/org/distorted/helpers/FactoryCubit.java
@@ -722,56 +722,6 @@ public class FactoryCubit
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // EFFECTS
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  VertexEffect[] createVertexEffectsHelicopterFace()
-    {
-    float E = 0.5f;
-    float F = SQ2/4;
-
-    Static3D move0  = new Static3D(-E/4, -E/4, 0);
-    Static3D move1  = new Static3D(-(SQ2/24)-E/2, -(SQ2/24)-E/2, 0);
-    Static3D move2  = new Static3D(-E/2, F/3, 0);
-    Static3D move3  = new Static3D(+E/2, F/3, 0);
-    Static3D move4  = new Static3D(+E/3,+E/3, 0);
-    Static1D angle1 = new Static1D(135);
-    Static1D angle2 = new Static1D(90);
-    Static1D angle3 = new Static1D(-90);
-    Static1D angle4 = new Static1D(-135);
-    Static3D axisX  = new Static3D(1,0,0);
-    Static3D axisY  = new Static3D(0,1,0);
-    Static3D axisZ  = new Static3D(0,0,1);
-    Static3D axis1  = new Static3D(1,-1,0);
-    Static3D center = new Static3D(0,0,0);
-    Static3D center1= new Static3D(-E/2,-E/2,0);
-
-    VertexEffect[] effect = new VertexEffect[10];
-
-    effect[0] = new VertexEffectMove(move0);
-    effect[1] = new VertexEffectRotate(angle1, axisZ, center);
-    effect[2] = new VertexEffectMove(move1);
-    effect[3] = new VertexEffectRotate(angle2, axis1, center1);
-    effect[4] = new VertexEffectMove(move2);
-    effect[5] = new VertexEffectMove(move3);
-    effect[6] = new VertexEffectRotate(angle3, axisZ, center);
-    effect[7] = new VertexEffectRotate(angle4, axisX, center);
-    effect[8] = new VertexEffectRotate(angle1, axisY, center);
-    effect[9] = new VertexEffectMove(move4);
-
-    effect[0].setMeshAssociation( 1,-1);  // mesh 0
-    effect[1].setMeshAssociation( 2,-1);  // mesh 1
-    effect[2].setMeshAssociation( 2,-1);  // mesh 1
-    effect[3].setMeshAssociation( 2,-1);  // mesh 1
-    effect[4].setMeshAssociation( 4,-1);  // mesh 2
-    effect[5].setMeshAssociation( 8,-1);  // mesh 3
-    effect[6].setMeshAssociation( 8,-1);  // mesh 3
-    effect[7].setMeshAssociation( 4,-1);  // mesh 2
-    effect[8].setMeshAssociation( 8,-1);  // mesh 3
-    effect[9].setMeshAssociation(15,-1);  // meshes 0,1,2,3
-
-    return effect;
-    }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   VertexEffect[] createVertexEffectsRediEdge()
@@ -1250,34 +1200,6 @@ public class FactoryCubit
 // OBJECTS
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public MeshBase createHelicopterFaceMesh()
-    {
-    MeshBase mesh = createFacesHelicopterFace();
-    VertexEffect[] effects = createVertexEffectsHelicopterFace();
-    for( VertexEffect effect : effects ) mesh.apply(effect);
-
-    float E = 0.5f;
-    Static3D roundingCenter = new Static3D(-E/2 + E/3,-E/2 + E/3,-E/2);
-
-    Static3D[] verticesType1 = new Static3D[1];
-    verticesType1[0] = new Static3D(E/3,E/3,0.0f);
-    roundCorners(mesh,roundingCenter,verticesType1,0.06f,0.15f);
-
-    Static3D[] verticesType2 = new Static3D[2];
-    verticesType2[0] = new Static3D(-E+E/3, E/3  , 0);
-    verticesType2[1] = new Static3D( E/3  ,-E+E/3, 0);
-    roundCorners(mesh,roundingCenter,verticesType2,0.08f,0.20f);
-
-    mesh.mergeEffComponents();
-    mesh.addEmptyTexComponent();
-    mesh.addEmptyTexComponent();
-
-    return mesh;
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Redi cube
-
   public MeshBase createRediEdgeMesh()
     {
     MeshBase mesh = createFacesRediEdge();
diff --git a/src/main/java/org/distorted/objects/TwistyHelicopter.java b/src/main/java/org/distorted/objects/TwistyHelicopter.java
index d7d37499..1bcb5cf4 100644
--- a/src/main/java/org/distorted/objects/TwistyHelicopter.java
+++ b/src/main/java/org/distorted/objects/TwistyHelicopter.java
@@ -208,9 +208,9 @@ public class TwistyHelicopter extends TwistyObject
   private static final double[][] VERTICES_FACE = new double[][]
           {
             { 0.00f +E, 0.00f +E, 0.00f },
-            { 0.50f +E, 0.00f +E, 0.00f },
-            { 0.00f +E, 0.50f +E, 0.00f },
-            { 0.25f +E, 0.25f +E,-0.25f },
+            {-0.50f +E, 0.00f +E, 0.00f },
+            { 0.00f +E,-0.50f +E, 0.00f },
+            {-0.25f +E,-0.25f +E,-0.25f },
           };
 
   private static final int[][] VERT_INDEXES_FACE = new int[][]
@@ -234,6 +234,8 @@ public class TwistyHelicopter extends TwistyObject
                    MeshSquare mesh, DistortedEffects effects, int[][] moves, Resources res, int scrWidth)
     {
     super(size, size, quat, texture, mesh, effects, moves, ObjectList.HELI, res, scrWidth);
+
+    createFaceDataStructures();
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -362,8 +364,7 @@ public class TwistyHelicopter extends TwistyObject
       }
     else
       {
-      if( mMeshes[1]==null ) mMeshes[1] = FactoryCubit.getInstance().createHelicopterFaceMesh();
-        /*
+      if( mMeshes[1]==null )
         {
         float[][] bands= new float[][]
           {
@@ -384,8 +385,6 @@ public class TwistyHelicopter extends TwistyObject
                                                 centers, centerIndexes,
                                                 getNumCubitFaces() );
         }
-
-         */
       mesh = mMeshes[1].copy(true);
       }
 
@@ -407,13 +406,11 @@ public class TwistyHelicopter extends TwistyObject
 
   void createFaceTexture(Canvas canvas, Paint paint, int face, int left, int top)
     {
-    float R = 0.023f;
-    float S = 0.035f;
-    float E = 0.5f;
-    float[] vertices = { -E+E/4,E/4, E/4,-E+E/4, E/4,E/4};
+    float R = 0.03f;
+    float S = 0.05f;
 
     FactorySticker factory = FactorySticker.getInstance();
-    factory.drawRoundedPolygon(canvas, paint, left, top, vertices, S, FACE_COLORS[face], R);
+    factory.drawRoundedPolygon(canvas, paint, left, top, STICKERS[0], S, FACE_COLORS[face], R);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
