commit cc7dc72ab8cf073737d835962388a6e6acb2435c
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Mar 8 22:08:40 2020 +0000

    Some progress with Pyraminx.

diff --git a/src/main/java/org/distorted/object/RubikPyraminx.java b/src/main/java/org/distorted/object/RubikPyraminx.java
index 8f17b559..29f97a3e 100644
--- a/src/main/java/org/distorted/object/RubikPyraminx.java
+++ b/src/main/java/org/distorted/object/RubikPyraminx.java
@@ -75,23 +75,17 @@ public class RubikPyraminx extends RubikObject
 
   Static3D[] getCubitPositions(int size)
     {
-    /*
-    int numCubits = size>1 ? 6*size*size - 12*size + 8 : 1;
+    int numCubits = (size*size*size + 6*size*size -4*size)/3;
     Static3D[] tmp = new Static3D[numCubits];
 
     int currentPosition = 0;
-
-    for(int x = 0; x<size; x++)
-      for(int y = 0; y<size; y++)
-        for(int z = 0; z<size; z++)
-          if( x==0 || x==size-1 || y==0 || y==size-1 || z==0 || z==size-1 )
-            {
-            tmp[currentPosition++] = new Static3D(x,y,z);
-            }
-
+/*
+    ??
+      {
+      tmp[currentPosition++] = new Static3D(x,y,z);
+      }
+*/
     return tmp;
-    */
-    return null;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -119,27 +113,35 @@ public class RubikPyraminx extends RubikObject
 
   void createFaceTexture(Canvas canvas, Paint paint, int face)
     {
-    /*
-    InputStream is = mView.getContext().getResources().openRawResource(R.raw.pyraminx);
-    Bitmap bitmap;
+    int xoffset = face*TEXTURE_HEIGHT;
+    float STROKE = 0.05f*TEXTURE_HEIGHT;
+    float OFF = STROKE/2 -1;
+    float OFF2 = 0.577f*TEXTURE_HEIGHT + OFF;
+    float HEIGHT = TEXTURE_HEIGHT - OFF;
+    float RADIUS = TEXTURE_HEIGHT/12;
+    float ARC1_H = 0.31f*TEXTURE_HEIGHT;
+    float ARC1_W = TEXTURE_HEIGHT*0.5f;
+    float ARC2_W = 0.152f*TEXTURE_HEIGHT;
+    float ARC2_H = 0.91f*TEXTURE_HEIGHT;
+    float ARC3_W = 0.847f*TEXTURE_HEIGHT;
+
+    paint.setAntiAlias(true);
+    paint.setStrokeWidth(STROKE);
+    paint.setColor(FACE_COLORS[face]);
+    paint.setStyle(Paint.Style.FILL);
 
-    try
-      {
-      bitmap = BitmapFactory.decodeStream(is);
-      }
-    finally
-      {
-      try
-        {
-        is.close();
-        }
-      catch(IOException e) { }
-      }
+    canvas.drawRect(xoffset,0,xoffset+TEXTURE_HEIGHT,TEXTURE_HEIGHT,paint);
 
-    paint.setColor(FACE_COLORS[face]);
-    canvas.drawRect(face*TEXTURE_HEIGHT,0,(face+1)*TEXTURE_HEIGHT,TEXTURE_HEIGHT,paint);
-    canvas.drawBitmap(bitmap,face*TEXTURE_HEIGHT,0,null);
-    */
+    paint.setColor(0xff000000);
+    paint.setStyle(Paint.Style.STROKE);
+
+    canvas.drawLine(                     xoffset,         HEIGHT,  TEXTURE_HEIGHT       +xoffset, HEIGHT, paint);
+    canvas.drawLine(                OFF +xoffset, TEXTURE_HEIGHT,                 OFF2  +xoffset,      0, paint);
+    canvas.drawLine((TEXTURE_HEIGHT-OFF)+xoffset, TEXTURE_HEIGHT, (TEXTURE_HEIGHT-OFF2) +xoffset,      0, paint);
+
+    canvas.drawArc( ARC1_W-RADIUS+xoffset, ARC1_H-RADIUS, ARC1_W+RADIUS+xoffset, ARC1_H+RADIUS, 225, 90, false, paint);
+    canvas.drawArc( ARC2_W-RADIUS+xoffset, ARC2_H-RADIUS, ARC2_W+RADIUS+xoffset, ARC2_H+RADIUS, 105, 90, false, paint);
+    canvas.drawArc( ARC3_W-RADIUS+xoffset, ARC2_H-RADIUS, ARC3_W+RADIUS+xoffset, ARC2_H+RADIUS, 345, 90, false, paint);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/object/RubikPyraminxMovement.java b/src/main/java/org/distorted/object/RubikPyraminxMovement.java
new file mode 100644
index 00000000..3c1d2b0e
--- /dev/null
+++ b/src/main/java/org/distorted/object/RubikPyraminxMovement.java
@@ -0,0 +1,61 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright 2020 Leszek Koltunski                                                               //
+//                                                                                               //
+// This file is part of Magic Cube.                                                              //
+//                                                                                               //
+// Magic Cube is free software: you can redistribute it and/or modify                            //
+// it under the terms of the GNU General Public License as published by                          //
+// the Free Software Foundation, either version 2 of the License, or                             //
+// (at your option) any later version.                                                           //
+//                                                                                               //
+// Magic Cube is distributed in the hope that it will be useful,                                 //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
+// GNU General Public License for more details.                                                  //
+//                                                                                               //
+// You should have received a copy of the GNU General Public License                             //
+// along with Magic Cube.  If not, see <http://www.gnu.org/licenses/>.                           //
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+package org.distorted.object;
+
+import org.distorted.library.type.Static2D;
+import org.distorted.library.type.Static4D;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+class RubikPyraminxMovement extends RubikObjectMovement
+{
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    RubikPyraminxMovement()
+      {
+
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// PUBLIC API
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public boolean faceTouched(Static4D rotatedTouchPoint, Static4D rotatedCamera)
+      {
+      float cubeHalfSize= RubikObject.OBJECT_SCREEN_RATIO*0.5f;
+
+      return false;
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public Static2D newRotation(Static4D rotatedTouchPoint)
+      {
+      return null;
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public float continueRotation(Static4D rotatedTouchPoint)
+      {
+      return 0.0f;
+      }
+}
