commit 9db7b0e5f4b5b09030e7361e3f7432eb7b6997db
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Jul 16 13:07:07 2021 +0200

    New 'Jing' cubit shapes.

diff --git a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
index 0a12c92..9ac8730 100644
--- a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
+++ b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
@@ -58,6 +58,7 @@ class MeshFileRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Excep
     private static final float SQ2 = (float)Math.sqrt(2);
     private static final float SQ3 = (float)Math.sqrt(3);
     private static final float SQ5 = (float)Math.sqrt(5);
+    private static final float SQ6 = (float)Math.sqrt(6);
     private final float DEFAULT_SCALE = 0.3f;
 
     private final GLSurfaceView mView;
@@ -253,7 +254,7 @@ class MeshFileRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Excep
 
     private void createMesh()
       {
-      int mode = 13;
+      int mode = 16;
       int numComponents = 0;
       double[][] vertices = null;
       int[][] vertIndexes = null;
@@ -1067,6 +1068,163 @@ class MeshFileRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Excep
         numComponents = 9;
         }
 
+      ///// JING CORNER ///////////////////////////////////////////////////////////////
+
+      else if( mode==14 )
+        {
+        final float F = 0.2f;
+
+        vertices = new double[][]
+          {
+             { 0.0   ,     0.0, 0.0},
+             { -F    ,     0.0, 0.0},
+             { -F/2  ,     0.0, -F*SQ3/2},
+             { -3*F/2,     0.0, -F*SQ3/2},
+             { -F/2  , F*SQ6/3, -F*SQ3/6},
+             { -3*F/2, F*SQ6/3, -F*SQ3/6},
+             { -F    , F*SQ6/3, -F*2*SQ3/3},
+             { -2*F  , F*SQ6/3, -F*2*SQ3/3}
+          };
+
+        vertIndexes = new int[][]
+          {
+             {3,2,0,1},
+             {1,0,4,5},
+             {0,2,6,4},
+             {5,4,6,7},
+             {3,1,5,7},
+             {2,3,7,6}
+          };
+
+        bands = new float[][]
+          {
+             {0.015f,35,0.5f*F,F,5,1,1},
+             {0.001f,35,0.5f*F,F,5,1,1}
+          };
+
+        bandIndexes = new int[] { 0,0,0,1,1,1 };
+
+        corners = new float[][]
+          {
+            {0.10f,0.20f*F},
+            {0.07f,0.20f*F}
+          };
+
+        cornerIndexes = new int[] { 0,1,1,-1,1,-1,-1,-1 };
+
+        centers = new float[][]
+          {
+             { -2*F/3  , F*SQ6/9, -F*2*SQ3/9}
+          };
+
+        centerIndexes = new int[] { 0,0,0,-1,0,-1,-1,-1 };
+
+        numComponents = 6;
+        }
+
+      ///// JING EDGE ///////////////////////////////////////////////////////////////
+
+      else if( mode==15 )
+        {
+        final float F = 0.2f;
+
+        vertices = new double[][]
+          {
+             { 0.5-3*F/2,     0.0, -F*SQ3/2  },
+             { 0.5-F    ,     0.0,        0.0},
+             { 0.5-3*F/2, F*SQ6/3, -F*SQ3/6  },
+             { 0.5-2*F  , F*SQ6/3, -F*2*SQ3/3},
+             {-0.5+3*F/2,     0.0, -F*SQ3/2  },
+             {-0.5+F    ,     0.0,        0.0},
+             {-0.5+3*F/2, F*SQ6/3, -F*SQ3/6  },
+             {-0.5+2*F  , F*SQ6/3, -F*2*SQ3/3}
+          };
+
+        vertIndexes = new int[][]
+          {
+             {5,1,2,6},
+             {4,0,1,5},
+             {6,2,3,7},
+             {7,3,0,4},
+             {3,2,1,0},
+             {4,5,6,7}
+          };
+
+        bands = new float[][]
+          {
+             {0.015f,35,0.5f*F,F,5,1,1},
+             {0.001f,35,0.5f*F,F,5,1,1}
+          };
+
+        bandIndexes = new int[] { 0,0,1,1,1,1 };
+
+        corners = new float[][]
+          {
+            {0.07f,0.20f*F}
+          };
+
+        cornerIndexes = new int[] { 0,0,0,-1,0,0,0,-1 };
+
+        centers = new float[][]
+          {
+             { 0, F*SQ6/6, -F*SQ3/3 }
+          };
+
+        centerIndexes = new int[] { 0,0,0,-1,0,0,0,-1 };
+
+        numComponents = 6;
+        }
+
+      ///// JING FACE ///////////////////////////////////////////////////////////////
+
+      else if( mode==16 )
+        {
+        final float F = 0.2f;
+
+        vertices = new double[][]
+          {
+             {    -0.5*(1-3*F),     0.0, (SQ3/6)*(1-3*F) },
+             {     0.5*(1-3*F),     0.0, (SQ3/6)*(1-3*F) },
+             {             0.0,     0.0,-(SQ3/3)*(1-3*F) },
+             { F/2-0.5*(1-3*F), F*SQ6/3, (SQ3/6)*(1-3*F) - F*SQ3/6 },
+             {-F/2+0.5*(1-3*F), F*SQ6/3, (SQ3/6)*(1-3*F) - F*SQ3/6 },
+             {             0.0, F*SQ6/3,-(SQ3/3)*(1-3*F) + F*SQ3/3 },
+          };
+
+        vertIndexes = new int[][]
+          {
+             {2,1,0},
+             {3,4,5},
+             {0,1,4,3},
+             {1,2,5,4},
+             {2,0,3,5}
+          };
+
+        bands = new float[][]
+          {
+             {0.025f,35,0.2f*(1-3*F),0.6f*(1-3*F),5,1,1},
+             {0.001f,35,0.2f*(1-3*F),0.6f*(1-3*F),5,1,1}
+          };
+
+        bandIndexes = new int[] { 0,1,1,1,1,1 };
+
+        corners = new float[][]
+          {
+            {0.05f,0.20f*F}
+          };
+
+        cornerIndexes = new int[] { 0,0,0,-1,-1,-1 };
+
+        centers = new float[][]
+          {
+            {0.0f, (1-3*F)*SQ6/3, 0.0f}
+          };
+
+        centerIndexes = new int[] { 0,0,0,-1,-1,-1 };
+
+        numComponents = 6;
+        }
+
       ///// END DEFINITIONS /////////////////////////////////////////////////////////////////
 
       FactoryCubit factory = FactoryCubit.getInstance();
