commit 9ae05f6cbc1cb64864bbbf91b0b7ff5ec02cd8e1
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Wed Jul 13 02:01:33 2016 +0100

    beginnings of support for drawing the Region in Vertex3D app.

diff --git a/src/main/java/org/distorted/examples/vertex3d/Vertex3DRenderer.java b/src/main/java/org/distorted/examples/vertex3d/Vertex3DRenderer.java
index 2e92987..53d3fa1 100644
--- a/src/main/java/org/distorted/examples/vertex3d/Vertex3DRenderer.java
+++ b/src/main/java/org/distorted/examples/vertex3d/Vertex3DRenderer.java
@@ -105,8 +105,8 @@ class Vertex3DRenderer implements GLSurfaceView.Renderer
 
     public void setRegion(float x, float y, float r)
       {
-      float f = mFactorReg*r;
-      mRegionScalePoint.set(f,f,f);
+      mFactorReg = mFactorObj*r/mRegion.getWidth();
+      mRegionScalePoint.set(mFactorReg,mFactorReg,mFactorReg);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -139,8 +139,6 @@ class Vertex3DRenderer implements GLSurfaceView.Renderer
       int centerSize = mCenter.getWidth();
       int regionSize = mRegion.getWidth();
 
-      mFactorReg = (0.5f*width)/regionSize;
-
       if( width*mObjHeight > height*mObjWidth ) // screen is more 'horizontal' than the Object
         {
         mFactorObj = (0.80f*height)/mObjHeight;
@@ -154,8 +152,9 @@ class Vertex3DRenderer implements GLSurfaceView.Renderer
 
       Vertex3DActivity act = (Vertex3DActivity)mView.getContext();
       mMovePoint.set(mFactorObj*act.getCenterX(),mFactorObj*act.getCenterY(),0);
-      float f = mFactorReg*act.getRegionR();
-      mRegionScalePoint.set(f,f,f);
+
+      mFactorReg = mFactorObj*act.getRegionR()/regionSize;
+      mRegionScalePoint.set(mFactorReg,mFactorReg,mFactorReg);
 
       Static3D rotateObj = new Static3D(mObjWidth/2,mObjHeight/2, 0);
 
@@ -177,10 +176,11 @@ class Vertex3DRenderer implements GLSurfaceView.Renderer
       mRegion.quaternion(mQuatInt1, rotateCen);
       mRegion.quaternion(mQuatInt2, rotateCen);
 
-      mRegion.move( new Static3D( (width -mFactorReg*regionSize-mFactorObj*mObjWidth )/2 ,
-                                  (height-mFactorReg*regionSize-mFactorObj*mObjHeight)/2 , 12) );
+      mRegion.move( new Static3D( (width -mFactorObj*mObjWidth )/2 ,
+                                  (height-mFactorObj*mObjHeight)/2 , 12) );
       mRegion.move(mMoveInter);
       mRegion.scale(mRegionScaleInter);
+      mRegion.move( new Static3D( -regionSize/2 , -regionSize/2 , 0) );
 
       int backgroundSize = mBackground.getWidth();
       float factorBackX = ((float)width)/backgroundSize;
