commit 0e12ca4474846f286be4c59b4838f9f7aa34c7bf
Author: LeszekKoltunski <leszek@koltunski.pl>
Date:   Fri May 23 10:41:58 2025 +0200

    fixes for distorted-examples

diff --git a/src/main/java/org/distorted/library/effect/EffectType.kt b/src/main/java/org/distorted/library/effect/EffectType.kt
index ce0e473..22d55b3 100644
--- a/src/main/java/org/distorted/library/effect/EffectType.kt
+++ b/src/main/java/org/distorted/library/effect/EffectType.kt
@@ -48,6 +48,6 @@ enum class EffectType
             maxtable[3] = 3   // Max 3 POSTPROCESSING Effects
         }
 
-        fun getType(ordinal: Int): EffectType = entries[ordinal]
+        @JvmStatic fun getType(ordinal: Int): EffectType = entries[ordinal]
     }
 }
diff --git a/src/main/java/org/distorted/library/effect/FragmentEffectAlpha.kt b/src/main/java/org/distorted/library/effect/FragmentEffectAlpha.kt
index fadedee..b30ed0d 100644
--- a/src/main/java/org/distorted/library/effect/FragmentEffectAlpha.kt
+++ b/src/main/java/org/distorted/library/effect/FragmentEffectAlpha.kt
@@ -39,8 +39,7 @@ class FragmentEffectAlpha : FragmentEffect
         /**
          * Have to call this before the shaders get compiled (i.e before DistortedLibrary.onCreate()) for the Effect to work.
          */
-        @JvmStatic
-        fun enable()
+        @JvmStatic fun enable()
         {
             addEffect(EffectName.ALPHA, EffectName.SMOOTH_ALPHA,
                 "color.a *= (degree*(fUniforms[effect].x-1.0)+1.0);")
diff --git a/src/main/java/org/distorted/library/effect/FragmentEffectBrightness.kt b/src/main/java/org/distorted/library/effect/FragmentEffectBrightness.kt
index 152dcfc..588a682 100644
--- a/src/main/java/org/distorted/library/effect/FragmentEffectBrightness.kt
+++ b/src/main/java/org/distorted/library/effect/FragmentEffectBrightness.kt
@@ -39,8 +39,7 @@ class FragmentEffectBrightness : FragmentEffect
         /**
          * Have to call this before the shaders get compiled (i.e before DistortedLibrary.onCreate()) for the Effect to work.
          */
-        @JvmStatic
-        fun enable()
+        @JvmStatic fun enable()
         {
             addEffect(EffectName.BRIGHTNESS, EffectName.SMOOTH_BRIGHTNESS,
                 "color.rgb = mix(vec3(0.0,0.0,0.0), color.rgb, degree*(fUniforms[effect].x-1.0)+1.0 );")
diff --git a/src/main/java/org/distorted/library/effect/FragmentEffectChroma.kt b/src/main/java/org/distorted/library/effect/FragmentEffectChroma.kt
index 13f58b1..a4f42fe 100644
--- a/src/main/java/org/distorted/library/effect/FragmentEffectChroma.kt
+++ b/src/main/java/org/distorted/library/effect/FragmentEffectChroma.kt
@@ -40,7 +40,7 @@ class FragmentEffectChroma : FragmentEffect
         /**
          * Have to call this before the shaders get compiled (i.e before DistortedLibrary.onCreate()) for the Effect to work.
          */
-        fun enable()
+        @JvmStatic fun enable()
         {
             addEffect(EffectName.CHROMA, EffectName.SMOOTH_CHROMA,
                 "color.rgb = mix(color.rgb, fUniforms[effect].yzw, degree*fUniforms[effect].x);")
diff --git a/src/main/java/org/distorted/library/effect/FragmentEffectContrast.kt b/src/main/java/org/distorted/library/effect/FragmentEffectContrast.kt
index ecdb513..bb6b9d3 100644
--- a/src/main/java/org/distorted/library/effect/FragmentEffectContrast.kt
+++ b/src/main/java/org/distorted/library/effect/FragmentEffectContrast.kt
@@ -38,7 +38,7 @@ class FragmentEffectContrast : FragmentEffect
         /**
          * Have to call this before the shaders get compiled (i.e before DistortedLibrary.onCreate()) for the Effect to work.
          */
-        fun enable()
+        @JvmStatic fun enable()
         {
             addEffect(EffectName.CONTRAST, EffectName.SMOOTH_CONTRAST,
                 "color.rgb = mix(vec3(0.5,0.5,0.5), color.rgb, degree*(fUniforms[effect].x-1.0)+1.0 );")
diff --git a/src/main/java/org/distorted/library/effect/FragmentEffectSaturation.kt b/src/main/java/org/distorted/library/effect/FragmentEffectSaturation.kt
index 466fa48..5fd14ee 100644
--- a/src/main/java/org/distorted/library/effect/FragmentEffectSaturation.kt
+++ b/src/main/java/org/distorted/library/effect/FragmentEffectSaturation.kt
@@ -39,7 +39,7 @@ class FragmentEffectSaturation : FragmentEffect
         /**
          * Have to call this before the shaders get compiled (i.e before DistortedLibrary.onCreate()) for the Effect to work.
          */
-        fun enable()
+        @JvmStatic fun enable()
         {
             addEffect(EffectName.SATURATION, EffectName.SMOOTH_SATURATION,
                 """
diff --git a/src/main/java/org/distorted/library/effect/MatrixEffectRotate.kt b/src/main/java/org/distorted/library/effect/MatrixEffectRotate.kt
index 310c0ca..b1c62d3 100644
--- a/src/main/java/org/distorted/library/effect/MatrixEffectRotate.kt
+++ b/src/main/java/org/distorted/library/effect/MatrixEffectRotate.kt
@@ -62,8 +62,8 @@ class MatrixEffectRotate(angle: Data1D, axis: Data3D, center: Data3D) : MatrixEf
         val z = uniforms[i+CENTER_OFFSET+2]
 
         val inRadians = Math.PI*angle/180
-        val sin = sin(inRadians) as Float
-        val cos = cos(inRadians) as Float
+        val sin = sin(inRadians).toFloat()
+        val cos = cos(inRadians).toFloat()
 
         translate(matrixP, x, y, z)
         rotateSinCos(matrixP, mTmp1, mTmp2, sin, cos, axisX, axisY, axisZ)
diff --git a/src/main/java/org/distorted/library/effect/PostprocessEffect.kt b/src/main/java/org/distorted/library/effect/PostprocessEffect.kt
index 0c68500..eb3b14b 100644
--- a/src/main/java/org/distorted/library/effect/PostprocessEffect.kt
+++ b/src/main/java/org/distorted/library/effect/PostprocessEffect.kt
@@ -59,7 +59,6 @@ abstract class PostprocessEffect internal constructor(name: EffectName) : Effect
      * could be covered by other similarly postprocessed objects nearby)
      */
     var haloDepth: Boolean
-
     var mQualityScale: Float
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/library/effect/PostprocessEffectBlur.kt b/src/main/java/org/distorted/library/effect/PostprocessEffectBlur.kt
index 2e770cd..3cf8d54 100644
--- a/src/main/java/org/distorted/library/effect/PostprocessEffectBlur.kt
+++ b/src/main/java/org/distorted/library/effect/PostprocessEffectBlur.kt
@@ -37,12 +37,11 @@ class PostprocessEffectBlur(haloAndRadius: Data2D) : PostprocessEffectBlurred(Ef
         /**
          * Have to call this before the shaders get compiled (i.e before DistortedLibrary.onCreate()) for the Effect to work.
          */
-        fun enable() = enable("BLUR1", "BLUR2")
+        @JvmStatic fun enable() = enable("BLUR1", "BLUR2")
 
         ///////////////////////////////////////////////////////////////////////////////////////////////////
         // Clean up of static variables on exit. Called by reflection from super class.
-        @Suppress("unused")
-        fun destroyStatics() = PostprocessEffectBlurred.destroyStatics()
+        @Suppress("unused") fun destroyStatics() = PostprocessEffectBlurred.destroyStatics()
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/library/effect/PostprocessEffectBorder.kt b/src/main/java/org/distorted/library/effect/PostprocessEffectBorder.kt
index e3dd620..b1222c4 100644
--- a/src/main/java/org/distorted/library/effect/PostprocessEffectBorder.kt
+++ b/src/main/java/org/distorted/library/effect/PostprocessEffectBorder.kt
@@ -39,8 +39,7 @@ class PostprocessEffectBorder(halo: Data1D, color: Data4D) : PostprocessEffect(E
     {
         ///////////////////////////////////////////////////////////////////////////////////////////
         // Clean up of static variables on exit. Called by reflection from super class.
-        @Suppress("unused")
-        fun destroyStatics() { }
+        @Suppress("unused") fun destroyStatics() { }
 
         ///////////////////////////////////////////////////////////////////////////////////////////
         // PUBLIC API
@@ -48,8 +47,7 @@ class PostprocessEffectBorder(halo: Data1D, color: Data4D) : PostprocessEffect(E
         /**
          * No local programs; we do not postprocess anything here. No need to do anything
          */
-        @JvmStatic
-        fun enable() { }
+        @JvmStatic fun enable() { }
     }
     ///////////////////////////////////////////////////////////////////////////////////////////////
     override fun compute(uniforms: FloatArray, index: Int, currentDuration: Long, step: Long): Boolean
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectDeform.kt b/src/main/java/org/distorted/library/effect/VertexEffectDeform.kt
index 6c5f7b0..5ecde57 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectDeform.kt
+++ b/src/main/java/org/distorted/library/effect/VertexEffectDeform.kt
@@ -135,7 +135,7 @@ class VertexEffectDeform : VertexEffect
         /**
          * Have to call this before the shaders get compiled (i.e before DistortedLibrary.onCreate()) for the Effect to work.
          */
-        fun enable() = addEffect(NAME, code())
+        @JvmStatic fun enable() = addEffect(NAME, code())
     }
     ///////////////////////////////////////////////////////////////////////////////////////////////////
     /**
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectDisappear.kt b/src/main/java/org/distorted/library/effect/VertexEffectDisappear.kt
index 38a0378..537517f 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectDisappear.kt
+++ b/src/main/java/org/distorted/library/effect/VertexEffectDisappear.kt
@@ -30,7 +30,7 @@ class VertexEffectDisappear : VertexEffect(NAME)
     {
         private val NAME = EffectName.DISAPPEAR
         fun code(): String = "v = vec3(0.0, 0.0, 0.0);"
-        fun enable() = addEffect(NAME, code())
+        @JvmStatic fun enable() = addEffect(NAME, code())
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectDistort.kt b/src/main/java/org/distorted/library/effect/VertexEffectDistort.kt
index dd3a980..808e8ed 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectDistort.kt
+++ b/src/main/java/org/distorted/library/effect/VertexEffectDistort.kt
@@ -138,7 +138,7 @@ class VertexEffectDistort : VertexEffect
         }
 
         ///////////////////////////////////////////////////////////////////////////////////////////////////
-        fun enable() =addEffect(NAME, code())
+        @JvmStatic fun enable() =addEffect(NAME, code())
     }
     ///////////////////////////////////////////////////////////////////////////////////////////////////
     override fun compute(uniforms: FloatArray, index: Int, currentDuration: Long, step: Long): Boolean
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectMove.kt b/src/main/java/org/distorted/library/effect/VertexEffectMove.kt
index f617a82..561c1d9 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectMove.kt
+++ b/src/main/java/org/distorted/library/effect/VertexEffectMove.kt
@@ -34,7 +34,7 @@ class VertexEffectMove(vector: Data3D) : VertexEffect(NAME)
     {
         private val NAME = EffectName.VERTEX_MOVE
         fun code(): String = "v += vUniforms[effect].xyz;"
-        fun enable() = addEffect(NAME, code())
+        @JvmStatic fun enable() = addEffect(NAME, code())
     }
     ///////////////////////////////////////////////////////////////////////////////////////////////////
     override fun compute(uniforms: FloatArray, index: Int, currentDuration: Long, step: Long): Boolean
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectPinch.kt b/src/main/java/org/distorted/library/effect/VertexEffectPinch.kt
index fefde92..cd4892c 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectPinch.kt
+++ b/src/main/java/org/distorted/library/effect/VertexEffectPinch.kt
@@ -78,7 +78,7 @@ class VertexEffectPinch : VertexEffect
         }
 
         ///////////////////////////////////////////////////////////////////////////////////////////
-        fun enable() = addEffect(NAME, code())
+        @JvmStatic fun enable() = addEffect(NAME, code())
     }
     ///////////////////////////////////////////////////////////////////////////////////////////////
     override fun compute(uniforms: FloatArray, index: Int, currentDuration: Long, step: Long): Boolean
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectPipe.kt b/src/main/java/org/distorted/library/effect/VertexEffectPipe.kt
index 8062b3d..2fd4994 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectPipe.kt
+++ b/src/main/java/org/distorted/library/effect/VertexEffectPipe.kt
@@ -70,7 +70,7 @@ class VertexEffectPipe(pipe: Data5D, center: Data3D) : VertexEffect(NAME)
         }
 
         ///////////////////////////////////////////////////////////////////////////////////////////////////
-        fun enable() = addEffect(NAME, code())
+        @JvmStatic fun enable() = addEffect(NAME, code())
     }
     ///////////////////////////////////////////////////////////////////////////////////////////////
     override fun compute(uniforms: FloatArray, index: Int, currentDuration: Long, step: Long): Boolean
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectScale.kt b/src/main/java/org/distorted/library/effect/VertexEffectScale.kt
index 3d1b83c..978ace0 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectScale.kt
+++ b/src/main/java/org/distorted/library/effect/VertexEffectScale.kt
@@ -49,7 +49,7 @@ class VertexEffectScale : VertexEffect
         }
 
         ///////////////////////////////////////////////////////////////////////////////////////////////////
-        fun enable() = addEffect(NAME, code())
+        @JvmStatic fun enable() = addEffect(NAME, code())
     }
     ///////////////////////////////////////////////////////////////////////////////////////////////////
     override fun compute(uniforms: FloatArray, index: Int, currentDuration: Long, step: Long): Boolean
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectShear.kt b/src/main/java/org/distorted/library/effect/VertexEffectShear.kt
index 7e0ebb3..e613d90 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectShear.kt
+++ b/src/main/java/org/distorted/library/effect/VertexEffectShear.kt
@@ -62,7 +62,7 @@ class VertexEffectShear(shear: Data3D, center: Data3D) : VertexEffect(NAME)
         }
 
         ///////////////////////////////////////////////////////////////////////////////////////////////////
-        fun enable() = addEffect(NAME, code())
+        @JvmStatic fun enable() = addEffect(NAME, code())
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/library/effect/VertexEffectSwirl.kt b/src/main/java/org/distorted/library/effect/VertexEffectSwirl.kt
index cf6d384..c833a2b 100644
--- a/src/main/java/org/distorted/library/effect/VertexEffectSwirl.kt
+++ b/src/main/java/org/distorted/library/effect/VertexEffectSwirl.kt
@@ -67,7 +67,7 @@ class VertexEffectSwirl : VertexEffect
         }
 
         ///////////////////////////////////////////////////////////////////////////////////////////////////
-        fun enable() = addEffect(NAME, code())
+        @JvmStatic fun enable() = addEffect(NAME, code())
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/library/helpers/MatrixHelper.kt b/src/main/java/org/distorted/library/helpers/MatrixHelper.kt
index 57e999c..7731c26 100644
--- a/src/main/java/org/distorted/library/helpers/MatrixHelper.kt
+++ b/src/main/java/org/distorted/library/helpers/MatrixHelper.kt
@@ -21,18 +21,20 @@ package org.distorted.library.helpers
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-object MatrixHelper {
-    fun setIdentity(output: FloatArray) {
-        output[0] = 1f
-        output[1] = 0f
-        output[2] = 0f
-        output[3] = 0f
-        output[4] = 0f
-        output[5] = 1f
-        output[6] = 0f
-        output[7] = 0f
-        output[8] = 0f
-        output[9] = 0f
+object MatrixHelper
+{
+    @JvmStatic fun setIdentity(output: FloatArray)
+    {
+        output[ 0] = 1f
+        output[ 1] = 0f
+        output[ 2] = 0f
+        output[ 3] = 0f
+        output[ 4] = 0f
+        output[ 5] = 1f
+        output[ 6] = 0f
+        output[ 7] = 0f
+        output[ 8] = 0f
+        output[ 9] = 0f
         output[10] = 1f
         output[11] = 0f
         output[12] = 0f
@@ -42,42 +44,44 @@ object MatrixHelper {
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////
-    @kotlin.jvm.JvmStatic
-    fun multiply(output: FloatArray, m1: FloatArray, m2: FloatArray) {
-        output[0] = m1[0] * m2[0] + m1[4] * m2[1] + m1[8] * m2[2] + m1[12] * m2[3]
-        output[1] = m1[1] * m2[0] + m1[5] * m2[1] + m1[9] * m2[2] + m1[13] * m2[3]
-        output[2] = m1[2] * m2[0] + m1[6] * m2[1] + m1[10] * m2[2] + m1[14] * m2[3]
-        output[3] = m1[3] * m2[0] + m1[7] * m2[1] + m1[11] * m2[2] + m1[15] * m2[3]
-
-        output[4] = m1[0] * m2[4] + m1[4] * m2[5] + m1[8] * m2[6] + m1[12] * m2[7]
-        output[5] = m1[1] * m2[4] + m1[5] * m2[5] + m1[9] * m2[6] + m1[13] * m2[7]
-        output[6] = m1[2] * m2[4] + m1[6] * m2[5] + m1[10] * m2[6] + m1[14] * m2[7]
-        output[7] = m1[3] * m2[4] + m1[7] * m2[5] + m1[11] * m2[6] + m1[15] * m2[7]
-
-        output[8] = m1[0] * m2[8] + m1[4] * m2[9] + m1[8] * m2[10] + m1[12] * m2[11]
-        output[9] = m1[1] * m2[8] + m1[5] * m2[9] + m1[9] * m2[10] + m1[13] * m2[11]
-        output[10] = m1[2] * m2[8] + m1[6] * m2[9] + m1[10] * m2[10] + m1[14] * m2[11]
-        output[11] = m1[3] * m2[8] + m1[7] * m2[9] + m1[11] * m2[10] + m1[15] * m2[11]
-
-        output[12] = m1[0] * m2[12] + m1[4] * m2[13] + m1[8] * m2[14] + m1[12] * m2[15]
-        output[13] = m1[1] * m2[12] + m1[5] * m2[13] + m1[9] * m2[14] + m1[13] * m2[15]
+    @JvmStatic
+    fun multiply(output: FloatArray, m1: FloatArray, m2: FloatArray)
+    {
+        output[ 0] = m1[0] * m2[ 0] + m1[4] * m2[ 1] + m1[ 8] * m2[ 2] + m1[12] * m2[ 3]
+        output[ 1] = m1[1] * m2[ 0] + m1[5] * m2[ 1] + m1[ 9] * m2[ 2] + m1[13] * m2[ 3]
+        output[ 2] = m1[2] * m2[ 0] + m1[6] * m2[ 1] + m1[10] * m2[ 2] + m1[14] * m2[ 3]
+        output[ 3] = m1[3] * m2[ 0] + m1[7] * m2[ 1] + m1[11] * m2[ 2] + m1[15] * m2[ 3]
+
+        output[ 4] = m1[0] * m2[ 4] + m1[4] * m2[ 5] + m1[ 8] * m2[ 6] + m1[12] * m2[ 7]
+        output[ 5] = m1[1] * m2[ 4] + m1[5] * m2[ 5] + m1[ 9] * m2[ 6] + m1[13] * m2[ 7]
+        output[ 6] = m1[2] * m2[ 4] + m1[6] * m2[ 5] + m1[10] * m2[ 6] + m1[14] * m2[ 7]
+        output[ 7] = m1[3] * m2[ 4] + m1[7] * m2[ 5] + m1[11] * m2[ 6] + m1[15] * m2[ 7]
+
+        output[ 8] = m1[0] * m2[ 8] + m1[4] * m2[ 9] + m1[ 8] * m2[10] + m1[12] * m2[11]
+        output[ 9] = m1[1] * m2[ 8] + m1[5] * m2[ 9] + m1[ 9] * m2[10] + m1[13] * m2[11]
+        output[10] = m1[2] * m2[ 8] + m1[6] * m2[ 9] + m1[10] * m2[10] + m1[14] * m2[11]
+        output[11] = m1[3] * m2[ 8] + m1[7] * m2[ 9] + m1[11] * m2[10] + m1[15] * m2[11]
+
+        output[12] = m1[0] * m2[12] + m1[4] * m2[13] + m1[ 8] * m2[14] + m1[12] * m2[15]
+        output[13] = m1[1] * m2[12] + m1[5] * m2[13] + m1[ 9] * m2[14] + m1[13] * m2[15]
         output[14] = m1[2] * m2[12] + m1[6] * m2[13] + m1[10] * m2[14] + m1[14] * m2[15]
         output[15] = m1[3] * m2[12] + m1[7] * m2[13] + m1[11] * m2[14] + m1[15] * m2[15]
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////
-    @kotlin.jvm.JvmStatic
-    fun frustum(output: FloatArray, l: Float, r: Float, b: Float, t: Float, n: Float, f: Float) {
-        output[0] = 2 * n / (r - l)
-        output[1] = 0f
-        output[2] = 0f
-        output[3] = 0f
-        output[4] = 0f
-        output[5] = 2 * n / (t - b)
-        output[6] = 0f
-        output[7] = 0f
-        output[8] = (r + l) / (r - l)
-        output[9] = (t + b) / (t - b)
+    @JvmStatic
+    fun frustum(output: FloatArray, l: Float, r: Float, b: Float, t: Float, n: Float, f: Float)
+    {
+        output[ 0] = 2 * n / (r - l)
+        output[ 1] = 0f
+        output[ 2] = 0f
+        output[ 3] = 0f
+        output[ 4] = 0f
+        output[ 5] = 2 * n / (t - b)
+        output[ 6] = 0f
+        output[ 7] = 0f
+        output[ 8] = (r + l) / (r - l)
+        output[ 9] = (t + b) / (t - b)
         output[10] = -(f + n) / (f - n)
         output[11] = -1f
         output[12] = 0f
@@ -87,18 +91,19 @@ object MatrixHelper {
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////
-    @kotlin.jvm.JvmStatic
-    fun ortho(output: FloatArray, l: Float, r: Float, b: Float, t: Float, n: Float, f: Float) {
-        output[0] = 2 / (r - l)
-        output[1] = 0f
-        output[2] = 0f
-        output[3] = 0f
-        output[4] = 0f
-        output[5] = 2 / (t - b)
-        output[6] = 0f
-        output[7] = 0f
-        output[8] = 0f
-        output[9] = 0f
+    @JvmStatic
+    fun ortho(output: FloatArray, l: Float, r: Float, b: Float, t: Float, n: Float, f: Float)
+    {
+        output[ 0] = 2 / (r - l)
+        output[ 1] = 0f
+        output[ 2] = 0f
+        output[ 3] = 0f
+        output[ 4] = 0f
+        output[ 5] = 2 / (t - b)
+        output[ 6] = 0f
+        output[ 7] = 0f
+        output[ 8] = 0f
+        output[ 9] = 0f
         output[10] = -2 / (f - n)
         output[11] = 0f
         output[12] = -(r + l) / (r - l)
@@ -119,44 +124,36 @@ object MatrixHelper {
     ///////////////////////////////////////////////////////////////////////////////////////////////////
     // this is android.opengl.Matrix.rotateM(), but with pre-computed sin and cos of the angle
     // and also we have to pre-allocate and pass here two temp arrays.
-    @kotlin.jvm.JvmStatic
-    fun rotateSinCos(
-        output: FloatArray,
-        tmp1: FloatArray,
-        tmp2: FloatArray,
-        sin: Float,
-        cos: Float,
-        x: Float,
-        y: Float,
-        z: Float
-    ) {
-        tmp1[0] = (1 - cos) * x * x + cos
-        tmp1[1] = (1 - cos) * x * y + sin * z
-        tmp1[2] = (1 - cos) * x * z - sin * y
-        tmp1[3] = 0f
-        tmp1[4] = (1 - cos) * x * y - sin * z
-        tmp1[5] = (1 - cos) * y * y + cos
-        tmp1[6] = (1 - cos) * y * z + sin * x
-        tmp1[7] = 0f
-        tmp1[8] = (1 - cos) * x * z + sin * y
-        tmp1[9] = (1 - cos) * y * z - sin * x
-        tmp1[10] = (1 - cos) * z * z + cos
+    @JvmStatic
+    fun rotateSinCos(output: FloatArray, tmp1: FloatArray, tmp2: FloatArray, sin: Float, cos: Float, x: Float, y: Float, z: Float)
+    {
+        tmp1[ 0] = (1-cos)*x*x + cos
+        tmp1[ 1] = (1-cos)*x*y + sin*z
+        tmp1[ 2] = (1-cos)*x*z - sin*y
+        tmp1[ 3] = 0f
+        tmp1[ 4] = (1-cos)*x*y - sin*z
+        tmp1[ 5] = (1-cos)*y*y + cos
+        tmp1[ 6] = (1-cos)*y*z + sin*x
+        tmp1[ 7] = 0f
+        tmp1[ 8] = (1-cos)*x*z + sin*y
+        tmp1[ 9] = (1-cos)*y*z - sin*x
+        tmp1[10] = (1-cos)*z*z + cos
         tmp1[11] = 0f
         tmp1[12] = 0f
         tmp1[13] = 0f
         tmp1[14] = 0f
         tmp1[15] = 1f
 
-        tmp2[0] = output[0]
-        tmp2[1] = output[1]
-        tmp2[2] = output[2]
-        tmp2[3] = output[3]
-        tmp2[4] = output[4]
-        tmp2[5] = output[5]
-        tmp2[6] = output[6]
-        tmp2[7] = output[7]
-        tmp2[8] = output[8]
-        tmp2[9] = output[9]
+        tmp2[ 0] = output[0]
+        tmp2[ 1] = output[1]
+        tmp2[ 2] = output[2]
+        tmp2[ 3] = output[3]
+        tmp2[ 4] = output[4]
+        tmp2[ 5] = output[5]
+        tmp2[ 6] = output[6]
+        tmp2[ 7] = output[7]
+        tmp2[ 8] = output[8]
+        tmp2[ 9] = output[9]
         tmp2[10] = output[10]
         tmp2[11] = output[11]
         tmp2[12] = output[12]
@@ -168,30 +165,30 @@ object MatrixHelper {
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////
-    @kotlin.jvm.JvmStatic
-    fun translate(output: FloatArray, dx: Float, dy: Float, dz: Float) {
-        output[12] += (output[0] * dx + output[4] * dy + output[8] * dz)
-        output[13] += (output[1] * dx + output[5] * dy + output[9] * dz)
-        output[14] += (output[2] * dx + output[6] * dy + output[10] * dz)
-        output[15] += (output[3] * dx + output[7] * dy + output[11] * dz)
+    @JvmStatic
+    fun translate(output: FloatArray, dx: Float, dy: Float, dz: Float)
+    {
+        output[12] += (output[0]*dx + output[4]*dy + output[ 8]*dz)
+        output[13] += (output[1]*dx + output[5]*dy + output[ 9]*dz)
+        output[14] += (output[2]*dx + output[6]*dy + output[10]*dz)
+        output[15] += (output[3]*dx + output[7]*dy + output[11]*dz)
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////
-    @kotlin.jvm.JvmStatic
-    fun scale(output: FloatArray, sx: Float, sy: Float, sz: Float) {
-        output[0] *= sx
-        output[1] *= sx
-        output[2] *= sx
-        output[3] *= sx
-
-        output[4] *= sy
-        output[5] *= sy
-        output[6] *= sy
-        output[7] *= sy
-
-        output[8] *= sz
-        output[9] *= sz
+    @JvmStatic
+    fun scale(output: FloatArray, sx: Float, sy: Float, sz: Float)
+    {
+        output[ 0] *= sx
+        output[ 1] *= sx
+        output[ 2] *= sx
+        output[ 3] *= sx
+        output[ 4] *= sy
+        output[ 5] *= sy
+        output[ 6] *= sy
+        output[ 7] *= sy
+        output[ 8] *= sz
+        output[ 9] *= sz
         output[10] *= sz
         output[11] *= sz
     }
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/distorted/library/mesh/MeshBase.kt b/src/main/java/org/distorted/library/mesh/MeshBase.kt
index aab13d5..22c9c6c 100644
--- a/src/main/java/org/distorted/library/mesh/MeshBase.kt
+++ b/src/main/java/org/distorted/library/mesh/MeshBase.kt
@@ -508,7 +508,13 @@ abstract class MeshBase
             mesh.mVertAttribs1?.copyInto(newAttribs1,0, v1, v1+VERT1_ATTRIBS*numVertices)
             mesh.mVertAttribs2?.copyInto(newAttribs2,0, v2, v2+VERT2_ATTRIBS*numVertices)
 */
+android.util.Log.e("D", "from: 0 to: "+(VERT1_ATTRIBS*origVertices)+" num: "+(VERT1_ATTRIBS*numVertices) );
+android.util.Log.e("D", "from len: "+mesh.mVertAttribs1?.size +" to len: "+newAttribs1.size);
+
             System.arraycopy(mesh.mVertAttribs1, 0, newAttribs1, VERT1_ATTRIBS*origVertices, VERT1_ATTRIBS*numVertices)
+
+android.util.Log.e("D", "DONE ");
+
             System.arraycopy(mesh.mVertAttribs2, 0, newAttribs2, VERT2_ATTRIBS*origVertices, VERT2_ATTRIBS*numVertices)
 
             origVertices += numVertices
diff --git a/src/main/java/org/distorted/library/mesh/MeshFile.kt b/src/main/java/org/distorted/library/mesh/MeshFile.kt
index 9b02476..92d4dd5 100644
--- a/src/main/java/org/distorted/library/mesh/MeshFile.kt
+++ b/src/main/java/org/distorted/library/mesh/MeshFile.kt
@@ -30,7 +30,7 @@ import java.io.DataInputStream
  */
 class MeshFile : MeshBase
 {
-    private var numBytes: Int = 0  // number of bytes read from the mesh file.
+    @JvmField var numBytes: Int = 0  // number of bytes read from the mesh file.
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////
     /**
