commit 85449b4457a9ed43086972440d734c366165059f
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Mon Sep 6 23:12:22 2021 +0200

    Remove statics from the Helicopter class.

diff --git a/src/main/java/org/distorted/objects/TwistyDino.java b/src/main/java/org/distorted/objects/TwistyDino.java
index 3467f56a..25075b81 100644
--- a/src/main/java/org/distorted/objects/TwistyDino.java
+++ b/src/main/java/org/distorted/objects/TwistyDino.java
@@ -59,7 +59,7 @@ public abstract class TwistyDino extends TwistyObject
   private int[] mBasicAngle;
   private Static4D[] mQuats;
   private ObjectSticker[] mStickers;
-  float[][] mCenters;
+  private float[][] mCenters;
   ScrambleState[] mStates;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objects/TwistyHelicopter.java b/src/main/java/org/distorted/objects/TwistyHelicopter.java
index 04383cb6..bac24768 100644
--- a/src/main/java/org/distorted/objects/TwistyHelicopter.java
+++ b/src/main/java/org/distorted/objects/TwistyHelicopter.java
@@ -37,8 +37,6 @@ import java.util.Random;
 
 public class TwistyHelicopter extends TwistyObject
 {
-  private static final int FACES_PER_CUBIT =6;
-
   // the six rotation axis of a Helicopter. Must be normalized.
   static final Static3D[] ROT_AXIS = new Static3D[]
          {
@@ -50,8 +48,6 @@ public class TwistyHelicopter extends TwistyObject
            new Static3D(-SQ2/2, -SQ2/2,      0)
          };
 
-  private static final int[] BASIC_ANGLE = new int[] { 2,2,2,2,2,2 };
-
   private static final int[] FACE_COLORS = new int[]
          {
            COLOR_YELLOW, COLOR_WHITE,
@@ -59,188 +55,19 @@ public class TwistyHelicopter extends TwistyObject
            COLOR_RED   , COLOR_ORANGE
          };
 
-  // All legal rotation quats of a HELICOPTER (same as the Cube!)
-  private static final Static4D[] QUATS = new Static4D[]
-         {
-           new Static4D( 0.00f,  0.00f,  0.00f,  1.00f ),
-           new Static4D( 1.00f,  0.00f,  0.00f,  0.00f ),
-           new Static4D( 0.00f,  1.00f,  0.00f,  0.00f ),
-           new Static4D( 0.00f,  0.00f,  1.00f,  0.00f ),
-
-           new Static4D( SQ2/2,  SQ2/2,  0.00f,  0.00f ),
-           new Static4D( SQ2/2, -SQ2/2,  0.00f,  0.00f ),
-           new Static4D( SQ2/2,  0.00f,  SQ2/2,  0.00f ),
-           new Static4D( SQ2/2,  0.00f, -SQ2/2,  0.00f ),
-           new Static4D( SQ2/2,  0.00f,  0.00f,  SQ2/2 ),
-           new Static4D( SQ2/2,  0.00f,  0.00f, -SQ2/2 ),
-           new Static4D( 0.00f,  SQ2/2,  SQ2/2,  0.00f ),
-           new Static4D( 0.00f,  SQ2/2, -SQ2/2,  0.00f ),
-           new Static4D( 0.00f,  SQ2/2,  0.00f,  SQ2/2 ),
-           new Static4D( 0.00f,  SQ2/2,  0.00f, -SQ2/2 ),
-           new Static4D( 0.00f,  0.00f,  SQ2/2,  SQ2/2 ),
-           new Static4D( 0.00f,  0.00f,  SQ2/2, -SQ2/2 ),
-
-           new Static4D( 0.50f,  0.50f,  0.50f,  0.50f ),
-           new Static4D( 0.50f,  0.50f,  0.50f, -0.50f ),
-           new Static4D( 0.50f,  0.50f, -0.50f,  0.50f ),
-           new Static4D( 0.50f,  0.50f, -0.50f, -0.50f ),
-           new Static4D( 0.50f, -0.50f,  0.50f,  0.50f ),
-           new Static4D( 0.50f, -0.50f,  0.50f, -0.50f ),
-           new Static4D( 0.50f, -0.50f, -0.50f,  0.50f ),
-           new Static4D( 0.50f, -0.50f, -0.50f, -0.50f )
-         };
-
-  private static final float DIST_CORNER = 0.50f;
-  private static final float DIST_CENTER = 0.50f;
-  private static final float XY_CENTER   = DIST_CORNER/3;
-
-  // centers of the 8 corners + 6*4 face triangles ( i.e. of the all 32 cubits)
-  private static final float[][] CENTERS = new float[][]
-         {
-             {   DIST_CORNER,   DIST_CORNER,   DIST_CORNER },
-             {   DIST_CORNER,   DIST_CORNER,  -DIST_CORNER },
-             {   DIST_CORNER,  -DIST_CORNER,   DIST_CORNER },
-             {   DIST_CORNER,  -DIST_CORNER,  -DIST_CORNER },
-             {  -DIST_CORNER,   DIST_CORNER,   DIST_CORNER },
-             {  -DIST_CORNER,   DIST_CORNER,  -DIST_CORNER },
-             {  -DIST_CORNER,  -DIST_CORNER,   DIST_CORNER },
-             {  -DIST_CORNER,  -DIST_CORNER,  -DIST_CORNER },
-
-             {   DIST_CENTER,     XY_CENTER,     XY_CENTER },
-             {   DIST_CENTER,     XY_CENTER,    -XY_CENTER },
-             {   DIST_CENTER,    -XY_CENTER,     XY_CENTER },
-             {   DIST_CENTER,    -XY_CENTER,    -XY_CENTER },
-
-             {  -DIST_CENTER,     XY_CENTER,     XY_CENTER },
-             {  -DIST_CENTER,     XY_CENTER,    -XY_CENTER },
-             {  -DIST_CENTER,    -XY_CENTER,     XY_CENTER },
-             {  -DIST_CENTER,    -XY_CENTER,    -XY_CENTER },
-
-             {   XY_CENTER  ,   DIST_CENTER,     XY_CENTER },
-             {   XY_CENTER  ,   DIST_CENTER,    -XY_CENTER },
-             {  -XY_CENTER  ,   DIST_CENTER,     XY_CENTER },
-             {  -XY_CENTER  ,   DIST_CENTER,    -XY_CENTER },
-
-             {   XY_CENTER  ,  -DIST_CENTER,     XY_CENTER },
-             {   XY_CENTER  ,  -DIST_CENTER,    -XY_CENTER },
-             {  -XY_CENTER  ,  -DIST_CENTER,     XY_CENTER },
-             {  -XY_CENTER  ,  -DIST_CENTER,    -XY_CENTER },
-
-             {   XY_CENTER  ,     XY_CENTER,   DIST_CENTER },
-             {   XY_CENTER  ,    -XY_CENTER,   DIST_CENTER },
-             {  -XY_CENTER  ,     XY_CENTER,   DIST_CENTER },
-             {  -XY_CENTER  ,    -XY_CENTER,   DIST_CENTER },
-
-             {   XY_CENTER  ,     XY_CENTER,  -DIST_CENTER },
-             {   XY_CENTER  ,    -XY_CENTER,  -DIST_CENTER },
-             {  -XY_CENTER  ,     XY_CENTER,  -DIST_CENTER },
-             {  -XY_CENTER  ,    -XY_CENTER,  -DIST_CENTER },
-         };
-
-  // Colors of the faces of cubits. Each cubit has 6 faces
-  private static final int[][] mFaceMap = new int[][]
-         {
-           { 4,2,0, 6,6,6 },
-           { 0,2,5, 6,6,6 },
-           { 4,0,3, 6,6,6 },
-           { 5,3,0, 6,6,6 },
-           { 1,2,4, 6,6,6 },
-           { 5,2,1, 6,6,6 },
-           { 4,3,1, 6,6,6 },
-           { 1,3,5, 6,6,6 },
-
-           { 0 , 6,6,6,6,6 },
-           { 0 , 6,6,6,6,6 },
-           { 0 , 6,6,6,6,6 },
-           { 0 , 6,6,6,6,6 },
-
-           { 1 , 6,6,6,6,6 },
-           { 1 , 6,6,6,6,6 },
-           { 1 , 6,6,6,6,6 },
-           { 1 , 6,6,6,6,6 },
-
-           { 2 , 6,6,6,6,6 },
-           { 2 , 6,6,6,6,6 },
-           { 2 , 6,6,6,6,6 },
-           { 2 , 6,6,6,6,6 },
-
-           { 3 , 6,6,6,6,6 },
-           { 3 , 6,6,6,6,6 },
-           { 3 , 6,6,6,6,6 },
-           { 3 , 6,6,6,6,6 },
-
-           { 4 , 6,6,6,6,6 },
-           { 4 , 6,6,6,6,6 },
-           { 4 , 6,6,6,6,6 },
-           { 4 , 6,6,6,6,6 },
-
-           { 5 , 6,6,6,6,6 },
-           { 5 , 6,6,6,6,6 },
-           { 5 , 6,6,6,6,6 },
-           { 5 , 6,6,6,6,6 },
-         };
-
-  private static final int[] QUAT_INDICES =
-      { 0,13,14,1,12,2,3,7,20,6,13,17,7,23,18,12,22,10,8,16,11,21,19,9,3,15,14,0,5,2,1,4 };
-
-  private static final double[][] VERTICES_CORNER = new double[][]
-          {
-            {-0.50f, 0.00f, 0.00f},
-            { 0.00f,-0.50f, 0.00f},
-            { 0.00f, 0.00f,-0.50f},
-            {-0.25f,-0.25f,-0.25f},
-            { 0.00f, 0.00f, 0.00f}
-          };
-
-  private static final int[][] VERT_INDEXES_CORNER = new int[][]
-          {
-            {0,1,4},
-            {2,0,4},
-            {1,2,4},
-            {3,1,0},
-            {3,2,1},
-            {3,0,2}
-          };
-
-  private static final float E = 0.1666666f;
-
-  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 },
-          };
-
-  private static final int[][] VERT_INDEXES_FACE = new int[][]
-          {
-            { 0,1,2 },
-            { 2,1,3 },
-            { 0,1,3 },
-            { 2,0,3 }
-          };
-
-  private static final float[][] STICKERS = new float[][]
-          {
-            { -0.5f, 0.25f, 0.25f, -0.5f, 0.25f, 0.25f }
-          };
-
-  private static final ObjectSticker[] mStickers;
-
-  static
-    {
-    float radius = 0.03f;
-    float stroke = 0.05f;
-    float[] radii = new float[] {radius,radius,radius};
-    mStickers = new ObjectSticker[STICKERS.length];
-    mStickers[0] = new ObjectSticker(STICKERS[0],null,radii,stroke);
-    }
+  private static final int FACES_PER_CUBIT =6;
 
   private int mCurrState;
   private int mIndexExcluded;
   private final ScrambleState[] mStates;
   private int[][] mScrambleTable;
   private int[] mNumOccurences;
+  private int[] mBasicAngle;
+  private Static4D[] mQuats;
+  private float[][] mCenters;
+  private int[] mQuatIndices;
+  private int[][] mFaceMap;
+  private ObjectSticker[] mStickers;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -267,12 +94,48 @@ public class TwistyHelicopter extends TwistyObject
       };
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private void initializeQuats()
+    {
+    mQuats = new Static4D[]
+         {
+         new Static4D( 0.00f,  0.00f,  0.00f,  1.00f ),
+         new Static4D( 1.00f,  0.00f,  0.00f,  0.00f ),
+         new Static4D( 0.00f,  1.00f,  0.00f,  0.00f ),
+         new Static4D( 0.00f,  0.00f,  1.00f,  0.00f ),
+
+         new Static4D( SQ2/2,  SQ2/2,  0.00f,  0.00f ),
+         new Static4D( SQ2/2, -SQ2/2,  0.00f,  0.00f ),
+         new Static4D( SQ2/2,  0.00f,  SQ2/2,  0.00f ),
+         new Static4D( SQ2/2,  0.00f, -SQ2/2,  0.00f ),
+         new Static4D( SQ2/2,  0.00f,  0.00f,  SQ2/2 ),
+         new Static4D( SQ2/2,  0.00f,  0.00f, -SQ2/2 ),
+         new Static4D( 0.00f,  SQ2/2,  SQ2/2,  0.00f ),
+         new Static4D( 0.00f,  SQ2/2, -SQ2/2,  0.00f ),
+         new Static4D( 0.00f,  SQ2/2,  0.00f,  SQ2/2 ),
+         new Static4D( 0.00f,  SQ2/2,  0.00f, -SQ2/2 ),
+         new Static4D( 0.00f,  0.00f,  SQ2/2,  SQ2/2 ),
+         new Static4D( 0.00f,  0.00f,  SQ2/2, -SQ2/2 ),
+
+         new Static4D( 0.50f,  0.50f,  0.50f,  0.50f ),
+         new Static4D( 0.50f,  0.50f,  0.50f, -0.50f ),
+         new Static4D( 0.50f,  0.50f, -0.50f,  0.50f ),
+         new Static4D( 0.50f,  0.50f, -0.50f, -0.50f ),
+         new Static4D( 0.50f, -0.50f,  0.50f,  0.50f ),
+         new Static4D( 0.50f, -0.50f,  0.50f, -0.50f ),
+         new Static4D( 0.50f, -0.50f, -0.50f,  0.50f ),
+         new Static4D( 0.50f, -0.50f, -0.50f, -0.50f )
+         };
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   int[] getSolvedQuats(int cubit, int numLayers)
     {
+    if( mQuats==null ) initializeQuats();
     int status = retCubitSolvedStatus(cubit,numLayers);
-    return status<0 ? null : buildSolvedQuats(MovementHelicopter.FACE_AXIS[status],QUATS);
+    return status<0 ? null : buildSolvedQuats(MovementHelicopter.FACE_AXIS[status],mQuats);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -286,7 +149,8 @@ public class TwistyHelicopter extends TwistyObject
 
   Static4D[] getQuats()
     {
-    return QUATS;
+    if( mQuats==null ) initializeQuats();
+    return mQuats;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -314,7 +178,7 @@ public class TwistyHelicopter extends TwistyObject
 
   int getNumStickerTypes(int numLayers)
     {
-    return STICKERS.length;
+    return 1;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -336,7 +200,56 @@ public class TwistyHelicopter extends TwistyObject
 
   float[][] getCubitPositions(int size)
     {
-    return CENTERS;
+    if( mCenters==null )
+      {
+      float DIST_CORNER = 0.50f;
+      float DIST_CENTER = 0.50f;
+      float XY_CENTER = DIST_CORNER/3;
+
+      mCenters = new float[][]
+         {
+             {   DIST_CORNER,   DIST_CORNER,   DIST_CORNER },
+             {   DIST_CORNER,   DIST_CORNER,  -DIST_CORNER },
+             {   DIST_CORNER,  -DIST_CORNER,   DIST_CORNER },
+             {   DIST_CORNER,  -DIST_CORNER,  -DIST_CORNER },
+             {  -DIST_CORNER,   DIST_CORNER,   DIST_CORNER },
+             {  -DIST_CORNER,   DIST_CORNER,  -DIST_CORNER },
+             {  -DIST_CORNER,  -DIST_CORNER,   DIST_CORNER },
+             {  -DIST_CORNER,  -DIST_CORNER,  -DIST_CORNER },
+
+             {   DIST_CENTER,     XY_CENTER,     XY_CENTER },
+             {   DIST_CENTER,     XY_CENTER,    -XY_CENTER },
+             {   DIST_CENTER,    -XY_CENTER,     XY_CENTER },
+             {   DIST_CENTER,    -XY_CENTER,    -XY_CENTER },
+
+             {  -DIST_CENTER,     XY_CENTER,     XY_CENTER },
+             {  -DIST_CENTER,     XY_CENTER,    -XY_CENTER },
+             {  -DIST_CENTER,    -XY_CENTER,     XY_CENTER },
+             {  -DIST_CENTER,    -XY_CENTER,    -XY_CENTER },
+
+             {   XY_CENTER  ,   DIST_CENTER,     XY_CENTER },
+             {   XY_CENTER  ,   DIST_CENTER,    -XY_CENTER },
+             {  -XY_CENTER  ,   DIST_CENTER,     XY_CENTER },
+             {  -XY_CENTER  ,   DIST_CENTER,    -XY_CENTER },
+
+             {   XY_CENTER  ,  -DIST_CENTER,     XY_CENTER },
+             {   XY_CENTER  ,  -DIST_CENTER,    -XY_CENTER },
+             {  -XY_CENTER  ,  -DIST_CENTER,     XY_CENTER },
+             {  -XY_CENTER  ,  -DIST_CENTER,    -XY_CENTER },
+
+             {   XY_CENTER  ,     XY_CENTER,   DIST_CENTER },
+             {   XY_CENTER  ,    -XY_CENTER,   DIST_CENTER },
+             {  -XY_CENTER  ,     XY_CENTER,   DIST_CENTER },
+             {  -XY_CENTER  ,    -XY_CENTER,   DIST_CENTER },
+
+             {   XY_CENTER  ,     XY_CENTER,  -DIST_CENTER },
+             {   XY_CENTER  ,    -XY_CENTER,  -DIST_CENTER },
+             {  -XY_CENTER  ,     XY_CENTER,  -DIST_CENTER },
+             {  -XY_CENTER  ,    -XY_CENTER,  -DIST_CENTER },
+         };
+      }
+
+    return mCenters;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -347,23 +260,60 @@ public class TwistyHelicopter extends TwistyObject
 
     if( variant==0 )
       {
+      double[][] vertices = new double[][]
+          {
+            {-0.50f, 0.00f, 0.00f},
+            { 0.00f,-0.50f, 0.00f},
+            { 0.00f, 0.00f,-0.50f},
+            {-0.25f,-0.25f,-0.25f},
+            { 0.00f, 0.00f, 0.00f}
+          };
+
+      int[][] vert_indices = new int[][]
+          {
+            {0,1,4},
+            {2,0,4},
+            {1,2,4},
+            {3,1,0},
+            {3,2,1},
+            {3,0,2}
+          };
+
       float[][] bands     = new float[][] { {0.028f,35,0.16f,0.7f,7,3,3}, {0.000f, 0,1.00f,0.0f,3,1,5} };
       int[] bandIndices   = new int[] { 0,0,0,1,1,1 };
       float[][] corners   = new float[][] { {0.08f,0.15f}, {0.08f,0.20f} };
       int[] cornerIndices = new int[] { 1,1,1,0,0 };
       float[][] centers   = new float[][] { {-0.25f, -0.25f, -0.25f} };
       int[] centerIndices = new int[] { 0,0,0,-1,0 };
-      return new ObjectShape(VERTICES_CORNER,VERT_INDEXES_CORNER,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), null);
+      return new ObjectShape(vertices,vert_indices,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), null);
       }
     else
       {
+      float E = 0.1666666f;
+
+      double[][] vertices = 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 },
+          };
+
+      int[][] vert_indices = new int[][]
+          {
+            { 0,1,2 },
+            { 2,1,3 },
+            { 0,1,3 },
+            { 2,0,3 }
+          };
+
       float[][] bands     = new float[][] { {0.028f,35,0.16f,0.7f,7,3,3}, {0.000f, 0,1.00f,0.0f,3,1,3} };
       int[] bandIndices   = new int[] { 0,1,1,1 };
       float[][] corners   = new float[][] { {0.06f,0.15f}, {0.06f,0.20f} };
       int[] cornerIndices = new int[] { 0,1,1,-1 };
       float[][] centers   = new float[][] { {-1.0f/12, -1.0f/12, -1.0f/4} };
       int[] centerIndices = new int[] { 0,0,0,-1 };
-      return new ObjectShape(VERTICES_FACE,VERT_INDEXES_FACE,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), null);
+      return new ObjectShape(vertices,vert_indices,bands,bandIndices,corners,cornerIndices,centers,centerIndices,getNumCubitFaces(), null);
       }
     }
 
@@ -371,7 +321,9 @@ public class TwistyHelicopter extends TwistyObject
 
   Static4D getQuat(int cubit, int numLayers)
     {
-    return QUATS[QUAT_INDICES[cubit]];
+    if( mQuats==null ) initializeQuats();
+    if( mQuatIndices==null ) mQuatIndices = new int[] { 0,13,14,1,12,2,3,7,20,6,13,17,7,23,18,12,22,10,8,16,11,21,19,9,3,15,14,0,5,2,1,4 };
+    return mQuats[mQuatIndices[cubit]];
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -392,6 +344,51 @@ public class TwistyHelicopter extends TwistyObject
 
   int getFaceColor(int cubit, int cubitface, int size)
     {
+    if( mFaceMap==null )
+      {
+      mFaceMap = new int[][]
+         {
+           { 4,2,0, 6,6,6 },
+           { 0,2,5, 6,6,6 },
+           { 4,0,3, 6,6,6 },
+           { 5,3,0, 6,6,6 },
+           { 1,2,4, 6,6,6 },
+           { 5,2,1, 6,6,6 },
+           { 4,3,1, 6,6,6 },
+           { 1,3,5, 6,6,6 },
+
+           { 0 , 6,6,6,6,6 },
+           { 0 , 6,6,6,6,6 },
+           { 0 , 6,6,6,6,6 },
+           { 0 , 6,6,6,6,6 },
+
+           { 1 , 6,6,6,6,6 },
+           { 1 , 6,6,6,6,6 },
+           { 1 , 6,6,6,6,6 },
+           { 1 , 6,6,6,6,6 },
+
+           { 2 , 6,6,6,6,6 },
+           { 2 , 6,6,6,6,6 },
+           { 2 , 6,6,6,6,6 },
+           { 2 , 6,6,6,6,6 },
+
+           { 3 , 6,6,6,6,6 },
+           { 3 , 6,6,6,6,6 },
+           { 3 , 6,6,6,6,6 },
+           { 3 , 6,6,6,6,6 },
+
+           { 4 , 6,6,6,6,6 },
+           { 4 , 6,6,6,6,6 },
+           { 4 , 6,6,6,6,6 },
+           { 4 , 6,6,6,6,6 },
+
+           { 5 , 6,6,6,6,6 },
+           { 5 , 6,6,6,6,6 },
+           { 5 , 6,6,6,6,6 },
+           { 5 , 6,6,6,6,6 },
+         };
+      }
+
     return mFaceMap[cubit][cubitface];
     }
 
@@ -406,6 +403,16 @@ public class TwistyHelicopter extends TwistyObject
 
   ObjectSticker retSticker(int face)
     {
+    if( mStickers==null )
+      {
+      float[][] STICKERS = new float[][] { { -0.5f, 0.25f, 0.25f, -0.5f, 0.25f, 0.25f } };
+      float radius = 0.03f;
+      float stroke = 0.05f;
+      float[] radii = new float[] {radius,radius,radius};
+      mStickers = new ObjectSticker[STICKERS.length];
+      mStickers[0] = new ObjectSticker(STICKERS[0],null,radii,stroke);
+      }
+
     return mStickers[face/NUM_FACES];
     }
 
@@ -476,7 +483,8 @@ public class TwistyHelicopter extends TwistyObject
 
   public int[] getBasicAngle()
     {
-    return BASIC_ANGLE;
+    if( mBasicAngle ==null ) mBasicAngle = new int[] { 2,2,2,2,2,2 };
+    return mBasicAngle;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
