commit 8e2295adc6fff8ac7ad9c91ba1a799eb300cf9ff
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Mar 12 00:51:22 2020 +0000

    Progress with object Movement.

diff --git a/src/main/java/org/distorted/magic/RubikSurfaceView.java b/src/main/java/org/distorted/magic/RubikSurfaceView.java
index 0edfa755..dc25de02 100644
--- a/src/main/java/org/distorted/magic/RubikSurfaceView.java
+++ b/src/main/java/org/distorted/magic/RubikSurfaceView.java
@@ -302,7 +302,7 @@ public class RubikSurfaceView extends GLSurfaceView
                                            mRenderer.setQuatAccumulatedOnNextRender();
                                            }
                                          }
-                                       else
+                                       else if( mRenderer.canRotate() || mRenderer.canDrag() )
                                          {
                                          setUpDragOrRotate(x,y);
                                          }
diff --git a/src/main/java/org/distorted/object/RubikObjectList.java b/src/main/java/org/distorted/object/RubikObjectList.java
index e48674f5..2267ca8c 100644
--- a/src/main/java/org/distorted/object/RubikObjectList.java
+++ b/src/main/java/org/distorted/object/RubikObjectList.java
@@ -86,7 +86,7 @@ public enum RubikObjectList
     DistortedEffects effects = new DistortedEffects();
     MeshRectangles mesh      = new MeshRectangles(20,20);   // mesh of the node, not of the cubits
 
-    return new RubikCube(mObjectSize, quatCur, quatAcc, texture, mesh, effects);
+    return new RubikPyraminx(mObjectSize, quatCur, quatAcc, texture, mesh, effects);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -94,6 +94,6 @@ public enum RubikObjectList
 
   public RubikObjectMovement getObjectMovementClass()
     {
-    return new RubikCubeMovement();
+    return new RubikPyraminxMovement();
     }
   }
diff --git a/src/main/java/org/distorted/object/RubikObjectMovement.java b/src/main/java/org/distorted/object/RubikObjectMovement.java
index 9fc16125..11cc3cf8 100644
--- a/src/main/java/org/distorted/object/RubikObjectMovement.java
+++ b/src/main/java/org/distorted/object/RubikObjectMovement.java
@@ -135,7 +135,7 @@ public abstract class RubikObjectMovement
     else
       {
       float norm = (float)(-a1/Math.sqrt(1-a1*a1));
-      y0 = norm*a0; y1= norm*(a1-1/a1); y2=a2;
+      y0 = norm*a0; y1= norm*(a1-1/a1); y2=norm*a2;
       }
 
     x0 = y1*a2 - y2*a1;  //
@@ -156,6 +156,21 @@ public abstract class RubikObjectMovement
     output[1] = v0*y0 + v1*y1 + v2*y2;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private String getFaceColor(int axis)
+    {
+    switch(axis)
+      {
+      case 0: return "yellow ";
+      case 1: return "green ";
+      case 2: return "blue ";
+      case 3: return "red ";
+      }
+
+    return null;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // PUBLIC API
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -181,7 +196,7 @@ public abstract class RubikObjectMovement
 
           if( isInsideFace(m2Dpoint) )
             {
- // android.util.Log.e("move", "touched "+mLastTouchedAxis+" touch point: ("+m2Dpoint[0]+","+m2Dpoint[1]+")");
+            android.util.Log.e("move", "face "+getFaceColor(mLastTouchedAxis)+" ("+m2Dpoint[0]+","+m2Dpoint[1]+")");
 
             fillPossibleRotations(mLastTouchedAxis, mPossible);
             return true;
