commit cbcf2374c5a6683c15a215b6cff1ff39e4965d6c
Author: leszek <leszek@koltunski.pl>
Date:   Sat Jan 27 14:08:41 2024 +0100

    minor

diff --git a/src/main/java/org/distorted/library/effect/FragmentEffect.java b/src/main/java/org/distorted/library/effect/FragmentEffect.java
index 414b4a7..19ec744 100644
--- a/src/main/java/org/distorted/library/effect/FragmentEffect.java
+++ b/src/main/java/org/distorted/library/effect/FragmentEffect.java
@@ -38,7 +38,6 @@ public abstract class FragmentEffect extends Effect
    */
   public static final int NUM_INT_UNIFORMS = 4;
 
-  static final int VALUES_OFFSET = 0;
   static final int CENTER_OFFSET = 5;
   static final int REGION_OFFSET = 8;
   private static String mGLSL = "";
diff --git a/src/main/java/org/distorted/library/effect/MatrixEffectRotate.java b/src/main/java/org/distorted/library/effect/MatrixEffectRotate.java
index 9405340..f642e39 100644
--- a/src/main/java/org/distorted/library/effect/MatrixEffectRotate.java
+++ b/src/main/java/org/distorted/library/effect/MatrixEffectRotate.java
@@ -32,8 +32,8 @@ public class MatrixEffectRotate extends MatrixEffect
   {
   private final Data1D mAngle;
   private final Data3D mAxis, mCenter;
-  private float[] mTmp1 = new float[16];
-  private float[] mTmp2 = new float[16];
+  private final float[] mTmp1 = new float[16];
+  private final float[] mTmp2 = new float[16];
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 /**
diff --git a/src/main/java/org/distorted/library/effect/MatrixEffectScale.java b/src/main/java/org/distorted/library/effect/MatrixEffectScale.java
index 08e5e65..12960ca 100644
--- a/src/main/java/org/distorted/library/effect/MatrixEffectScale.java
+++ b/src/main/java/org/distorted/library/effect/MatrixEffectScale.java
@@ -49,7 +49,7 @@ public class MatrixEffectScale extends MatrixEffect
  * <p>
  * Here and in Shear we have the whole reason why there are two separate 'P' and 'V' (Point and
  * Vector) matrices - Scale and Shear have to manipulate Points and Normal Vectors differently.
- *
+ * <p>
  * Points get multiplied by (sx,sy,sz) - and vectors by (1/sx,1/sy,1/sz) (think about it!) - or
  * better by sx*sy*sz*(1/sx,1/sy,1/sz) to avoid dividing my zero (vectors are normalized after)
  *
diff --git a/src/main/java/org/distorted/library/effect/PostprocessEffect.java b/src/main/java/org/distorted/library/effect/PostprocessEffect.java
index f06c5dc..5b7e918 100644
--- a/src/main/java/org/distorted/library/effect/PostprocessEffect.java
+++ b/src/main/java/org/distorted/library/effect/PostprocessEffect.java
@@ -147,7 +147,7 @@ public abstract class PostprocessEffect extends Effect implements InternalMaster
  * At this moment the 'buffer' contains a) preprocessed object b) real object rendered 'on top' of
  * the preprocessed one.
  * Postprocess buffer. What this means exactly depends on the effect -
- *
+ * <p>
  * Only for use by the library itself.
  *
  * @y.exclude
@@ -159,7 +159,7 @@ public abstract class PostprocessEffect extends Effect implements InternalMaster
    * Do we render the object directly to the final surface, and only postprocess and then blit its
    * 'halo', or do we render the object along with its halo to the intermediate framebuffer and
    * postprocess it as well?
-   *
+   * <p>
    * Only for use by the library itself.
    *
    * @y.exclude
diff --git a/src/main/java/org/distorted/library/effect/PostprocessEffectBlurred.java b/src/main/java/org/distorted/library/effect/PostprocessEffectBlurred.java
index a9fd74e..0b94e85 100644
--- a/src/main/java/org/distorted/library/effect/PostprocessEffectBlurred.java
+++ b/src/main/java/org/distorted/library/effect/PostprocessEffectBlurred.java
@@ -84,7 +84,7 @@ abstract public class PostprocessEffectBlurred extends PostprocessEffect
 
     if( weightsCache[offset]==0.0f )
       {
-      float z, x= 0.0f, P= (float)NUM_GAUSSIAN / (radius>3 ? radius:3);
+      float z, x= 0.0f, P= (float)NUM_GAUSSIAN / Math.max(radius,3);
       mWeights[0] = GAUSSIAN[0];
       float sum   = GAUSSIAN[0];
       int j;
diff --git a/src/main/java/org/distorted/library/effect/VertexEffect.java b/src/main/java/org/distorted/library/effect/VertexEffect.java
index e9bdecf..c3a0844 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffect.java
+++ b/src/main/java/org/distorted/library/effect/VertexEffect.java
@@ -231,15 +231,15 @@ public abstract class VertexEffect extends Effect
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 /**
  * Set Mesh association.
- *
+ * <p>
  * This creates an association between a Component of a Mesh and this Vertex Effect.
  * One can set two types of associations - an 'logical and' and a 'equal' associations and the Effect
  * will only be active on vertices of Components such that
- *
+ * <p>
  * (effect andAssoc) & (component andAssoc) != 0 || (effect equAssoc) == (mesh equAssoc)
- *
+ * <p>
  * (see main_vertex_shader)
- *
+ * <p>
  * The point: this way we can configure the system so that each Vertex Effect acts only on a certain
  * subset of a Mesh, thus potentially significantly reducing the number of render calls.
  */
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectPinch.java b/src/main/java/org/distorted/library/effect/VertexEffectPinch.java
index 1a3ac8d..1143a9d 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectPinch.java
+++ b/src/main/java/org/distorted/library/effect/VertexEffectPinch.java
@@ -27,7 +27,7 @@ import org.distorted.library.type.Data4D;
 /**
  * Pull all points around the center of the Effect towards a line passing through the center
  * (that's if degree>=1) or push them away from the line (degree<=1).
- *
+ * <p>
  * Note: this is not a fully 3D effect - the pinching is always within the XY plane; z coordinates
  * of all vertices remain unaffected. If someone wants a fully 3D Pinch effect, we'd probably need
  * to write another VertexEffectPinch3D with 2 more arguments (latitude and longitude angles defining
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectPipe.java b/src/main/java/org/distorted/library/effect/VertexEffectPipe.java
index ddd3cf5..fd23dfb 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectPipe.java
+++ b/src/main/java/org/distorted/library/effect/VertexEffectPipe.java
@@ -26,8 +26,7 @@ import org.distorted.library.type.Data5D;
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 /**
- * Pull all points around the center of the Effect towards the center point (if degree>=1) or push them
- * away from it (degree<=1).
+ * Pull (degree>1) or push away from (degree<1) all points of an infinite 'pipe' shaped region.
  */
 public class VertexEffectPipe extends VertexEffect
   {
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectSwirl.java b/src/main/java/org/distorted/library/effect/VertexEffectSwirl.java
index dedf820..cab1093 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectSwirl.java
+++ b/src/main/java/org/distorted/library/effect/VertexEffectSwirl.java
@@ -27,7 +27,7 @@ import org.distorted.library.type.Data4D;
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 /**
  * 'Swirl' part of the Mesh, i.e rotate part of it around a point.
- *
+ * <p>
  * Note: this is not a fully 3D effect as the swirling happens entirely within the XY plane - z
  * coordinates of all vertices remain unaffected. If someone wants a fully 3D swirling, we'd
  * probably need to write another VertixEffectSwirl3D with two additional parameters: latitude and
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectWave.java b/src/main/java/org/distorted/library/effect/VertexEffectWave.java
index db0b683..3b4ef7f 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectWave.java
+++ b/src/main/java/org/distorted/library/effect/VertexEffectWave.java
@@ -27,7 +27,7 @@ import org.distorted.library.type.Data5D;
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 /**
  * Directional, sinusoidal wave effect.
- *
+ * <p>
  * Not a fully 3D effect. To achieve a fully 3D one we'd need another parameter making the whole thing
  * a 6D effect but there's no room in the Vertex Uniforms which assign only 5 floats for interpolated
  * effect values. Rethink this. ATM fully enough for 2.5D meshes like the MeshCubes.
