commit 06ed13b5e6e3f8fb38461cae1f78b771e4c0be09
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Oct 8 17:53:53 2021 +0200

    New API: set components centers of all components all in one go.

diff --git a/src/main/java/org/distorted/library/mesh/MeshBase.java b/src/main/java/org/distorted/library/mesh/MeshBase.java
index 8f1e11b..3b173e4 100644
--- a/src/main/java/org/distorted/library/mesh/MeshBase.java
+++ b/src/main/java/org/distorted/library/mesh/MeshBase.java
@@ -1273,6 +1273,22 @@ public abstract class MeshBase
        }
      }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * Set the centers of a all components to the same value in one go.
+ */
+   public void setAllComponentCenters(float centerX, float centerY, float centerZ)
+     {
+     if( mJobNode[0]==null )
+       {
+       setComponentCenterNow(-1, centerX, centerY, centerZ);
+       }
+     else
+       {
+       mJobNode[0] = DeferredJobs.componentCenter(this,-1,centerX, centerY, centerZ);
+       }
+     }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 /**
  * Adds an empty (no vertices) texture component to the end of the text component list.
diff --git a/src/main/java/org/distorted/library/uniformblock/UniformBlockCenter.java b/src/main/java/org/distorted/library/uniformblock/UniformBlockCenter.java
index 986ee04..9320b3d 100644
--- a/src/main/java/org/distorted/library/uniformblock/UniformBlockCenter.java
+++ b/src/main/java/org/distorted/library/uniformblock/UniformBlockCenter.java
@@ -60,9 +60,21 @@ public class UniformBlockCenter
 
   public void setEffectCenterNow(int comp, float x, float y, float z)
     {
-    mArray[4*comp  ] = x;
-    mArray[4*comp+1] = y;
-    mArray[4*comp+2] = z;
+    if( comp>=0 )
+      {
+      mArray[4*comp  ] = x;
+      mArray[4*comp+1] = y;
+      mArray[4*comp+2] = z;
+      }
+    else
+      {
+      for(int i=0; i<mMax; i++)
+        {
+        mArray[4*i  ] = x;
+        mArray[4*i+1] = y;
+        mArray[4*i+2] = z;
+        }
+      }
 
     mUBO.invalidate();
     }
