commit e034380434a3deaacc2aaae219cf114e1c9a4a7c
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Jun 7 14:41:46 2020 +0100

    Bugfix and new debugging methods in MeshBase
    DeferredJob app rewritten to show the (just fixed) bug

diff --git a/src/main/java/org/distorted/library/mesh/MeshBase.java b/src/main/java/org/distorted/library/mesh/MeshBase.java
index 96ce0ca..cf71ed9 100644
--- a/src/main/java/org/distorted/library/mesh/MeshBase.java
+++ b/src/main/java/org/distorted/library/mesh/MeshBase.java
@@ -377,14 +377,16 @@ public abstract class MeshBase
        for(int j=0; j<numTexComponents; j++)
          {
          comp = new TexComponent(mesh.mTexComponent.get(j));
-         comp.mEndIndex += (extraVerticesBefore+mNumVertices+extraVerticesAfter);
+         comp.mEndIndex += (extraVerticesBefore+mNumVertices);
+         if( j==numTexComponents-1) comp.mEndIndex += extraVerticesAfter;
          mTexComponent.add(comp);
          }
 
        for(int j=0; j<numEffComponents; j++)
          {
          int index = mesh.mEffComponent.get(j);
-         index += (extraVerticesBefore+mNumVertices+extraVerticesAfter);
+         index += (extraVerticesBefore+mNumVertices);
+         if( j==numEffComponents-1 ) index += extraVerticesAfter;
          mEffComponent.add(index);
 
          if( origEffComponents<MAX_EFFECT_COMPONENTS )
@@ -597,7 +599,7 @@ public abstract class MeshBase
  *
  * @y.exclude
  */
-   public void print()
+   public void printPos()
      {
      StringBuilder sb = new StringBuilder();
 
@@ -611,16 +613,58 @@ public abstract class MeshBase
        sb.append(mVertAttribs1[VERT1_ATTRIBS*i+POS_ATTRIB+2]);
        sb.append(") ");
        }
+     Log.d("mesh", sb.toString());
+     }
 
-     StringBuilder sb2 = new StringBuilder();
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * Not part of public API, do not document (public only because has to be used from the main package)
+ *
+ * @y.exclude
+ */
+   public void printCom()
+     {
+     StringBuilder sb = new StringBuilder();
 
      for(int i=0; i<mNumVertices; i++)
        {
-       sb2.append(mVertAttribs2[VERT2_ATTRIBS*i+COM_ATTRIB]);
-       sb2.append(' ');
+       sb.append(mVertAttribs2[VERT2_ATTRIBS*i+COM_ATTRIB]);
+       sb.append(' ');
+       }
+
+     Log.d("mesh", sb.toString());
+     }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * Not part of public API, do not document (public only because has to be used from the main package)
+ *
+ * @y.exclude
+ */
+   public void printTex()
+     {
+     int vert=0;
+     int num = numTexComponents();
+     StringBuilder sb = new StringBuilder();
+     sb.append("tex components: ").append(num);
+
+     for(int i=0; i<num; i++)
+       {
+       int end = mTexComponent.get(i).mEndIndex;
+       sb.append("\n");
+
+       for( ; vert<=end; vert++)
+         {
+         sb.append(' ');
+         sb.append('(');
+         sb.append(mVertAttribs2[VERT2_ATTRIBS*vert+TEX_ATTRIB]);
+         sb.append(',');
+         sb.append(mVertAttribs2[VERT2_ATTRIBS*vert+TEX_ATTRIB+1]);
+         sb.append(')');
+         }
        }
 
-     Log.d("mesh", sb.toString()+"\n"+sb2.toString());
+     Log.d("mesh", sb.toString());
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
