commit ba740a0c512400ee3bd25c42b542b49f737ff22d
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Mar 3 00:33:19 2020 +0000

    Correct the Rubik app for the recent changes to the library's Node.

diff --git a/src/main/java/org/distorted/effect/scramble/ScrambleEffectRotations.java b/src/main/java/org/distorted/effect/scramble/ScrambleEffectRotations.java
index bc5c26eb..12ccf566 100644
--- a/src/main/java/org/distorted/effect/scramble/ScrambleEffectRotations.java
+++ b/src/main/java/org/distorted/effect/scramble/ScrambleEffectRotations.java
@@ -30,7 +30,7 @@ import org.distorted.library.type.Static4D;
 
 import java.util.Random;
 
-import static org.distorted.magic.RubikRenderer.NODE_MESH_SIZE;
+import static org.distorted.magic.RubikRenderer.NODE_FBO_SIZE;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -78,7 +78,7 @@ public class ScrambleEffectRotations extends ScrambleEffect
 
     mCubeEffects[0] = new MatrixEffectQuaternion(dq, new Static3D(0,0,0));
 
-    float Z = NODE_MESH_SIZE /3;
+    float Z = NODE_FBO_SIZE /3;
 
     Dynamic3D d0 = new Dynamic3D(duration, 0.5f);
     d0.setMode(Dynamic.MODE_PATH);
diff --git a/src/main/java/org/distorted/effect/sizechange/SizeChangeEffectRound.java b/src/main/java/org/distorted/effect/sizechange/SizeChangeEffectRound.java
index 893fc979..836213dd 100644
--- a/src/main/java/org/distorted/effect/sizechange/SizeChangeEffectRound.java
+++ b/src/main/java/org/distorted/effect/sizechange/SizeChangeEffectRound.java
@@ -26,7 +26,7 @@ import org.distorted.library.type.Dynamic;
 import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static3D;
 
-import static org.distorted.magic.RubikRenderer.NODE_MESH_SIZE;
+import static org.distorted.magic.RubikRenderer.NODE_FBO_SIZE;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -34,7 +34,7 @@ class SizeChangeEffectRound extends SizeChangeEffect
   {
   public int createEffectsPhase0(int duration)
     {
-    float X = NODE_MESH_SIZE /3;
+    float X = NODE_FBO_SIZE /3;
 
     mCubeEffectPosition[0] = new int[] {6,7};
     mCubeEffects[0]        = new Effect[mCubeEffectPosition[0].length];
@@ -58,7 +58,7 @@ class SizeChangeEffectRound extends SizeChangeEffect
 
   public int createEffectsPhase1(int duration)
     {
-    float X = NODE_MESH_SIZE /3;
+    float X = NODE_FBO_SIZE /3;
 
     mCubeEffectPosition[1] = new int[] {6,7};
     mCubeEffects[1]        = new Effect[mCubeEffectPosition[1].length];
diff --git a/src/main/java/org/distorted/effect/sizechange/SizeChangeEffectTransparency.java b/src/main/java/org/distorted/effect/sizechange/SizeChangeEffectTransparency.java
index 715edce4..ce7dd966 100644
--- a/src/main/java/org/distorted/effect/sizechange/SizeChangeEffectTransparency.java
+++ b/src/main/java/org/distorted/effect/sizechange/SizeChangeEffectTransparency.java
@@ -45,13 +45,9 @@ class SizeChangeEffectTransparency extends SizeChangeEffect
     mNodeEffectPosition[0] = new int[] {-1};
     mNodeEffects[0]        = new Effect[mNodeEffectPosition[0].length];
 
-    int w = mScreen.getWidth();
-    int h = mScreen.getHeight();
-    int min = w<h ? w:h;
-
     float init_amplitude = 0.0f;
-    float end_amplitude  = min/15.0f;
-    float length         = min/15.0f;
+    float end_amplitude  = 1/15.0f;
+    float length         = 1/15.0f;
     float init_phase     = 360.0f;
     float end_phase      = 0.0f;
     float alpha          = 30.0f;
@@ -81,13 +77,9 @@ class SizeChangeEffectTransparency extends SizeChangeEffect
     mNodeEffectPosition[1] = new int[] {-1};
     mNodeEffects[1]        = new Effect[mNodeEffectPosition[1].length];
 
-    int w = mScreen.getWidth();
-    int h = mScreen.getHeight();
-    int min = w<h ? w:h;
-
-    float init_amplitude = min/15.0f;
+    float init_amplitude = 1/15.0f;
     float end_amplitude  = 0.0f;
-    float length         = min/15.0f;
+    float length         = 1/15.0f;
     float init_phase     = 0.0f;
     float end_phase      = 360.0f;
     float alpha          = 30.0f;
diff --git a/src/main/java/org/distorted/effect/win/WinEffectGlow.java b/src/main/java/org/distorted/effect/win/WinEffectGlow.java
index 7beecd4f..d6b9e43f 100644
--- a/src/main/java/org/distorted/effect/win/WinEffectGlow.java
+++ b/src/main/java/org/distorted/effect/win/WinEffectGlow.java
@@ -28,8 +28,6 @@ import org.distorted.library.type.Static1D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
-import static org.distorted.magic.RubikRenderer.NODE_MESH_SIZE;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public class WinEffectGlow extends WinEffect
@@ -60,11 +58,10 @@ public class WinEffectGlow extends WinEffect
 
     Dynamic1D degreeDyn= new Dynamic1D(duration,1.0f);
     degreeDyn.add(new Static1D(1.0f));
-    degreeDyn.add(new Static1D(2.5f));
+    degreeDyn.add(new Static1D(1.2f));
     degreeDyn.add(new Static1D(1.0f));
 
-    Static3D center = new Static3D(0,0,NODE_MESH_SIZE *0.5f);
-    mNodeEffects[1] = new VertexEffectSink(degreeDyn,center);
+    mNodeEffects[1] = new VertexEffectSink(degreeDyn,new Static3D(0,0,0));
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/magic/RubikRenderer.java b/src/main/java/org/distorted/magic/RubikRenderer.java
index acab24bb..4731f522 100644
--- a/src/main/java/org/distorted/magic/RubikRenderer.java
+++ b/src/main/java/org/distorted/magic/RubikRenderer.java
@@ -40,7 +40,7 @@ import javax.microedition.khronos.opengles.GL10;
 public class RubikRenderer implements GLSurfaceView.Renderer, EffectListener
 {
     static final float CAMERA_DISTANCE = 0.6f;  // 0.6 of the length of min(scrHeight,scrWidth)
-    public static final int NODE_MESH_SIZE = 600;
+    public static final int NODE_FBO_SIZE = 600;
 
     private RubikSurfaceView mView;
     private DistortedScreen mScreen;
diff --git a/src/main/java/org/distorted/object/RubikObject.java b/src/main/java/org/distorted/object/RubikObject.java
index 5c990369..6ff7bfb5 100644
--- a/src/main/java/org/distorted/object/RubikObject.java
+++ b/src/main/java/org/distorted/object/RubikObject.java
@@ -36,7 +36,7 @@ import org.distorted.library.type.Static1D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
-import static org.distorted.magic.RubikRenderer.NODE_MESH_SIZE;
+import static org.distorted.magic.RubikRenderer.NODE_FBO_SIZE;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -69,7 +69,7 @@ public abstract class RubikObject extends DistortedNode
     {
     super(texture,effects,mesh);
 
-    resizeFBO(NODE_MESH_SIZE,NODE_MESH_SIZE);
+    resizeFBO(NODE_FBO_SIZE, NODE_FBO_SIZE);
 
     LEGAL_QUATS = getLegalQuats();
     NUM_CUBITS  = getNumCubits(size);
@@ -94,7 +94,6 @@ public abstract class RubikObject extends DistortedNode
     mQuatAEffect = new MatrixEffectQuaternion(quatAcc, center);
 
     MatrixEffectScale nodeScaleEffect = new MatrixEffectScale(mNodeScale);
-
     effects.apply(nodeScaleEffect);
 
     mCubits = new Cubit[NUM_CUBITS];
@@ -165,10 +164,8 @@ public abstract class RubikObject extends DistortedNode
 
   public void recomputeScaleFactor(int scrWidth, int scrHeight)
     {
-    float mx = getMesh().getStretchX();
-    float my = getMesh().getStretchY();
-    float factor = (my/mx > (float)scrHeight/scrWidth) ? (float)scrHeight/my : (float)scrWidth/mx;
-    float scaleFactor = (OBJECT_SCREEN_RATIO*mx/mSize);
+    float factor = scrWidth>scrHeight ? scrHeight : scrWidth;
+    float scaleFactor = OBJECT_SCREEN_RATIO*NODE_FBO_SIZE/mSize;
 
     mNodeScale.set(factor,factor,factor);
     mScale.set(scaleFactor,scaleFactor,scaleFactor);
diff --git a/src/main/java/org/distorted/object/RubikObjectList.java b/src/main/java/org/distorted/object/RubikObjectList.java
index 390fdf76..264d0df1 100644
--- a/src/main/java/org/distorted/object/RubikObjectList.java
+++ b/src/main/java/org/distorted/object/RubikObjectList.java
@@ -25,8 +25,6 @@ import org.distorted.library.mesh.MeshRectangles;
 import org.distorted.library.type.Static4D;
 import org.distorted.magic.R;
 
-import static org.distorted.magic.RubikRenderer.NODE_MESH_SIZE;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public enum RubikObjectList
@@ -88,8 +86,6 @@ public enum RubikObjectList
     DistortedEffects effects = new DistortedEffects();
     MeshRectangles mesh      = new MeshRectangles(20,20);   // mesh of the node, not of the cubits
 
-    mesh.setStretch(NODE_MESH_SIZE,NODE_MESH_SIZE,0);
-
     return new RubikCube(mObjectSize, quatCur, quatAcc, texture, mesh, effects);
     }
 
