commit d1d5d7e2084388d677a236742ced1c751ffcb415
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sat Jun 17 22:51:43 2023 +0200

    use MeshMultigon in puzzle cubits (FactoryCubit)

diff --git a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
index 25d854c..10d0ec4 100644
--- a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
+++ b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
@@ -48,9 +48,6 @@ import org.distorted.objectlib.helpers.FactoryCubit;
 import org.distorted.objectlib.helpers.ObjectFaceShape;
 import org.distorted.objectlib.helpers.ObjectShape;
 import org.distorted.objectlib.helpers.ObjectVertexEffects;
-import org.distorted.objectlib.main.InitData;
-import org.distorted.objectlib.main.TwistyObject;
-import org.distorted.objectlib.objects.*;
 
 import java.io.DataInputStream;
 import java.io.IOException;
@@ -358,26 +355,56 @@ class MeshFileRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Libra
 
     private void createMesh()
       {
-      Static4D quat = new Static4D(0,0,0,1);
-      Static3D move = new Static3D(0,0,0);
-      float scale   = 1.0f;
-      int variant   = 1;
-
-      InitData data = new InitData(new int[] {2,3,2});
-      TwistyObject puzzle = new TwistyCuboid(MESH_NICE,MODE_NORM,quat,move,scale,data,null);
-
-      ObjectShape shape           = puzzle.getObjectShape(variant);
-      ObjectFaceShape face        = puzzle.getObjectFaceShape(variant);
-      ObjectVertexEffects effects = puzzle.getVertexEffects(variant);
-
-      int[][] indices = shape.getVertIndices();
-      int numComponents = indices.length;
-      int[] outer = new int[numComponents];
+      float[][] vertices =
+          {
+              { 0.5f, 0.5f, 0.5f },
+              { 0.5f, 0.5f,-0.5f },
+              { 0.5f,-0.5f, 0.5f },
+              { 0.5f,-0.5f,-0.5f },
+              {-0.5f, 0.5f, 0.5f },
+              {-0.5f, 0.5f,-0.5f },
+              {-0.5f,-0.5f, 0.5f },
+              {-0.5f,-0.5f,-0.5f },
+
+              {-0.5f, 0.0f, 0.5f },
+              { 0.5f, 0.0f, 0.5f },
+          };
+
+      int[][][] vertIndices =
+          {
+              { {2,3,1,0} },
+              { {7,6,4,5} },
+              { {4,0,1,5} },
+              { {7,3,2,6} },
+              { {6,2,0,4} },
+              { {3,7,5,1} }
+          };
+
+      float height = 0.05f;
+      int num = 5;
+      int extraI = 1;
+      int extraV = 1;
+
+      float[][] bands= { {height,35,0.5f,0.7f,num,extraI,extraV} };
+
+      int[] bandIndices = {0,0,0,0,0,0};
+      float[] convex = null;
+
+      float[][] corners= { {0.036f,0.12f} };
+      float[][] centers= { {0.0f, 0.0f, 0.0f} };
+      int[] ind    = { 0,0,0,0,0,0,0,0,-1,-1 };
+
+      ObjectShape shape = new ObjectShape(vertices, vertIndices);
+      ObjectFaceShape face = new ObjectFaceShape(bands, bandIndices, convex);
+      ObjectVertexEffects effects = FactoryCubit.generateVertexEffect(vertices,corners,ind,centers,ind);
+
+      int numFaces = shape.getNumFaces();
+      int[] outer = new int[numFaces];
 
       FactoryCubit factory = FactoryCubit.getInstance();
       factory.clear();
       factory.createNewFaceTransform(shape,outer);
-      mMesh = factory.createRoundedSolid(shape,face,effects,MESH_NICE,numComponents);
+      mMesh = factory.createRoundedSolid(shape,face,effects,MESH_NICE,numFaces);
 
       int numEff = mMesh.getNumEffComponents();
 
