commit 529054e922db0255d489651043e82909b3da4c3b
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sat Feb 29 17:11:56 2020 +0000

    Fixes for the merge. Everything works now!
    Next step: make the center of Vertex & Fragment effects be in the center of the Object, rather than the lower-left corner.

diff --git a/src/main/java/org/distorted/examples/generic/GenericEffect.java b/src/main/java/org/distorted/examples/generic/GenericEffect.java
index e169399..5122051 100644
--- a/src/main/java/org/distorted/examples/generic/GenericEffect.java
+++ b/src/main/java/org/distorted/examples/generic/GenericEffect.java
@@ -324,9 +324,9 @@ class GenericEffect implements SeekBar.OnSeekBarChangeListener
     {
     GenericActivity2 act = mAct.get();
 
-    float x = (mInterCenter[0]*0.012f - 0.1f)*act.getWidth();
-    float y = (mInterCenter[1]*0.012f - 0.1f)*act.getHeight();
-    float z = (mInterCenter[2]*0.012f - 0.1f)*act.getDepth();
+    float x = (mInterCenter[0]*0.012f - 0.6f)*act.getWidth();
+    float y = (mInterCenter[1]*0.012f - 0.6f)*act.getHeight();
+    float z = (mInterCenter[2]*0.012f - 0.6f)*act.getDepth();
 
     mCenterSta.set(x,y,z);
     }
@@ -359,7 +359,7 @@ class GenericEffect implements SeekBar.OnSeekBarChangeListener
 
     float factorX = act.getWidth() / 100.0f;
     float factorY = act.getHeight()/ 100.0f;
-   // float factorZ = act.getDepth() / 100.0f;
+ // float factorZ = act.getDepth() / 100.0f;
 
     int deduct = (mName.getType() == EffectType.VERTEX ? 50:0);
 
diff --git a/src/main/java/org/distorted/examples/generic/GenericRenderer.java b/src/main/java/org/distorted/examples/generic/GenericRenderer.java
index 557a94f..fbf2456 100644
--- a/src/main/java/org/distorted/examples/generic/GenericRenderer.java
+++ b/src/main/java/org/distorted/examples/generic/GenericRenderer.java
@@ -60,8 +60,8 @@ class GenericRenderer implements GLSurfaceView.Renderer
     private MeshQuad mRegionQuad, mCenterQuad, mBackgroundQuad;
     private DistortedNode mCenterNode, mRegionNode;
     private float mObjWidth, mObjHeight, mObjDepth;
-    private Static3D mCenterPoint, mRegionPoint, mRegionScalePoint;
-    private Static3D mRotateCen, mMoveObject, mScaleObject, mMoveCenter, mScaleCenter, mMoveRegion, mMoveBackground, mScaleBackground;
+    private Static3D mCenterPoint, mRegionPoint, mScaleRegion;
+    private Static3D mMoveObject, mScaleObject, mScaleCenter, mMoveBackground, mScaleBackground;
     private boolean mShowingCenter=false;
     private boolean mShowingRegion=false;
     private float mFactorObj;
@@ -79,12 +79,9 @@ class GenericRenderer implements GLSurfaceView.Renderer
 
       GenericActivity2 act = (GenericActivity2)v.getContext();
 
-      mRotateCen      = new Static3D(0,0,0);
       mMoveObject     = new Static3D(0,0,0);
       mScaleObject    = new Static3D(1,1,1);
-      mMoveCenter     = new Static3D(0,0,0);
       mScaleCenter    = new Static3D(1,1,1);
-      mMoveRegion     = new Static3D(0,0,0);
       mMoveBackground = new Static3D(0,0,0);
       mScaleBackground= new Static3D(1,1,1);
 
@@ -116,7 +113,7 @@ class GenericRenderer implements GLSurfaceView.Renderer
 
       mCenterPoint= new Static3D(0,0,0);
       mRegionPoint= new Static3D(0,0,0);
-      mRegionScalePoint = new Static3D(0,0,0);
+      mScaleRegion = new Static3D(0,0,0);
 
       mCenterNode = new DistortedNode(mCenterTexture, centerEffects, mCenterQuad);
       mRegionNode = new DistortedNode(mRegionTexture, regionEffects, mRegionQuad);
@@ -126,24 +123,22 @@ class GenericRenderer implements GLSurfaceView.Renderer
       mScreen.attach(mBackgroundTexture, backgroundEffects, mBackgroundQuad );
       mScreen.attach(mObjectTexture    , mObjectEffects   , mesh );
 
-      float regionSize = mRegionQuad.getStretchX();
-      mRotateCen = new Static3D(0 ,0, 0);
+      Static3D rotateCen = new Static3D(0,0,0);
 
-      MatrixEffectQuaternion quat1cen = new MatrixEffectQuaternion(mQuat1, mRotateCen);
-      MatrixEffectQuaternion quat2cen = new MatrixEffectQuaternion(mQuat2, mRotateCen);
-      MatrixEffectMove centerMove = new MatrixEffectMove(mCenterPoint);
+      MatrixEffectQuaternion quat1cen = new MatrixEffectQuaternion(mQuat1, rotateCen);
+      MatrixEffectQuaternion quat2cen = new MatrixEffectQuaternion(mQuat2, rotateCen);
+      MatrixEffectMove centerMove     = new MatrixEffectMove(mCenterPoint);
 
       centerEffects.apply( new MatrixEffectScale(mScaleCenter) );
       centerEffects.apply( centerMove );
-      centerEffects.apply( new MatrixEffectMove(mMoveCenter) );
+      centerEffects.apply( new MatrixEffectMove(new Static3D(0,0,12)) );
       centerEffects.apply(quat2cen);
       centerEffects.apply(quat1cen);
 
-      regionEffects.apply( new MatrixEffectMove(new Static3D( -regionSize*0.5f , -regionSize*0.5f , 0)) );
-      regionEffects.apply( new MatrixEffectScale(mRegionScalePoint) );
-      regionEffects.apply( new MatrixEffectMove(mRegionPoint) );
+      regionEffects.apply( new MatrixEffectScale(mScaleRegion) );
       regionEffects.apply( centerMove );
-      regionEffects.apply( new MatrixEffectMove(mMoveRegion) );
+      regionEffects.apply( new MatrixEffectMove(mRegionPoint) );
+      regionEffects.apply( new MatrixEffectMove(new Static3D(0,0,10)) );
       regionEffects.apply(quat2cen);
       regionEffects.apply(quat1cen);
 
@@ -158,7 +153,7 @@ class GenericRenderer implements GLSurfaceView.Renderer
 
     void resetMatrixEffects()
       {
-      Static3D rotateObj = new Static3D( mObjWidth/2, mObjHeight/2, mObjDepth/2 );
+      Static3D rotateObj = new Static3D(0,0,0);
 
       MatrixEffectQuaternion quat1obj = new MatrixEffectQuaternion(mQuat1,  rotateObj);
       MatrixEffectQuaternion quat2obj = new MatrixEffectQuaternion(mQuat2,  rotateObj);
@@ -221,7 +216,7 @@ class GenericRenderer implements GLSurfaceView.Renderer
       {
       float factorReg = 2*mFactorObj*r/mRegionQuad.getStretchX();
       mRegionPoint.set(mFactorObj*x,mFactorObj*y, mFactorObj*z);
-      mRegionScalePoint.set(factorReg,factorReg,factorReg);
+      mScaleRegion.set(factorReg,factorReg,factorReg);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -259,23 +254,19 @@ class GenericRenderer implements GLSurfaceView.Renderer
         factorCen  = (0.08f  *width)/centerSize;
         }
 
-      setCenter(0.5f*mObjWidth,0.5f*mObjHeight,0.5f*mObjDepth);
+      setCenter(0,0,0);
       setRegion(0.0f,0.0f,0.0f,0.25f*(mObjWidth+mObjHeight));
 
-      mMoveObject.set( (width-mFactorObj*mObjWidth)/2 , (height-mFactorObj*mObjHeight)/2 , -mFactorObj*mObjDepth );
-      mRotateCen.set(width*0.5f,height*0.5f, 0);
+      mMoveObject.set( 0, 0 , -mFactorObj*mObjDepth );
       mScaleObject.set(mFactorObj,mFactorObj,mFactorObj);
-      mMoveCenter.set( (width -factorCen*centerSize-mFactorObj*mObjWidth )/2 ,
-                       (height-factorCen*centerSize-mFactorObj*mObjHeight)/2 , 15 );
       mScaleCenter.set(factorCen,factorCen,factorCen);
-      mMoveRegion.set( (width -mFactorObj*mObjWidth )/2 ,(height-mFactorObj*mObjHeight)/2 , 12 );
 
       float backgroundSize = mBackgroundQuad.getStretchX();
       float factorBackX = ((float)width)/backgroundSize;
       float factorBackY = ((float)height)/backgroundSize;
 
       // quite tricky: move the background exactly to the FAR plane! (see InternalOutputSurface.setProjection() )
-      mMoveBackground.set( -width*0.5f, -height*0.5f, -0.9f*height*(1.0f-NEAR)/(2.0f*(float)Math.tan(FOV*Math.PI/360)) );
+      mMoveBackground.set( 0,0, -0.9f*height*(1.0f-NEAR)/(2.0f*(float)Math.tan(FOV*Math.PI/360)) );
       mScaleBackground.set( 2*factorBackX, 2*factorBackY, 1.0f );
 
       mScreen.resize(width, height);
