commit 92ec91b94fec471dd10d68b5c99b27aa16dbd9af
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Mar 18 11:48:49 2021 +0100

    Progress with bandaged objects.

diff --git a/src/main/java/org/distorted/objects/TwistyBandaged2Bar.java b/src/main/java/org/distorted/objects/TwistyBandaged2Bar.java
index e94cd40c..9064340d 100644
--- a/src/main/java/org/distorted/objects/TwistyBandaged2Bar.java
+++ b/src/main/java/org/distorted/objects/TwistyBandaged2Bar.java
@@ -57,8 +57,12 @@ class TwistyBandaged2Bar extends TwistyBandagedAbstract
     {
     switch(cubit)
       {
-      case  0: return new float[] { 0.0f, +1.0f,  0.0f};
-      case  1: return new float[] { 0.0f, -1.0f,  0.0f};
+      case  0: return new float[] { 0.0f, +1.0f,  1.0f,
+                                    0.0f, +1.0f,  0.0f,
+                                    0.0f, +1.0f, -1.0f};
+      case  1: return new float[] {-1.0f, -1.0f,  0.0f,
+                                    0.0f, -1.0f,  0.0f,
+                                    1.0f, -1.0f,  0.0f};
       case  2: return new float[] {-1.0f, +1.0f, +1.0f};
       case  3: return new float[] {-1.0f, +1.0f,  0.0f};
       case  4: return new float[] {-1.0f, +1.0f, -1.0f};
diff --git a/src/main/java/org/distorted/objects/TwistyBandaged3Plate.java b/src/main/java/org/distorted/objects/TwistyBandaged3Plate.java
index 35bd4741..bccb1c63 100644
--- a/src/main/java/org/distorted/objects/TwistyBandaged3Plate.java
+++ b/src/main/java/org/distorted/objects/TwistyBandaged3Plate.java
@@ -57,10 +57,18 @@ class TwistyBandaged3Plate extends TwistyBandagedAbstract
     {
     switch(cubit)
       {
-      case  0: return new float[] {-0.5f,  0.5f,  1.0f};
-      case  1: return new float[] { 1.0f,  0.5f, -0.5f};
-      case  2: return new float[] {-0.5f, -1.0f, -0.5f};
-
+      case  0: return new float[] {-1.0f,  1.0f,  1.0f,
+                                   -1.0f,  0.0f,  1.0f,
+                                    0.0f,  1.0f,  1.0f,
+                                    0.0f,  0.0f,  1.0f};
+      case  1: return new float[] { 1.0f,  0.0f, -1.0f,
+                                    1.0f,  0.0f,  0.0f,
+                                    1.0f,  1.0f, -1.0f,
+                                    1.0f,  1.0f,  0.0f};
+      case  2: return new float[] {-1.0f, -1.0f, -1.0f,
+                                   -1.0f, -1.0f,  0.0f,
+                                    0.0f, -1.0f, -1.0f,
+                                    0.0f, -1.0f,  0.0f};
       case  3: return new float[] { 1.0f,  1.0f,  1.0f};
       case  4: return new float[] { 1.0f,  0.0f,  1.0f};
       case  5: return new float[] { 1.0f, -1.0f,  1.0f};
@@ -68,7 +76,6 @@ class TwistyBandaged3Plate extends TwistyBandagedAbstract
       case  7: return new float[] { 0.0f, -1.0f,  1.0f};
       case  8: return new float[] { 1.0f, -1.0f,  0.0f};
       case  9: return new float[] { 1.0f, -1.0f, -1.0f};
-
       case 10: return new float[] {-1.0f,  1.0f, -1.0f};
       case 11: return new float[] {-1.0f,  1.0f,  0.0f};
       case 12: return new float[] { 0.0f,  1.0f, -1.0f};
diff --git a/src/main/java/org/distorted/objects/TwistyBandagedAbstract.java b/src/main/java/org/distorted/objects/TwistyBandagedAbstract.java
index 2f7c5551..34ddf731 100644
--- a/src/main/java/org/distorted/objects/TwistyBandagedAbstract.java
+++ b/src/main/java/org/distorted/objects/TwistyBandagedAbstract.java
@@ -303,7 +303,13 @@ abstract class TwistyBandagedAbstract extends TwistyObject
     int multiplier   = (face%2)==0 ? 1:-1;
     int posIndex     = face/2;
     int dimIndex     = mAxisMap[posIndex][quatIndex];
-    boolean reaches  = multiplier*pos[posIndex] + dim[dimIndex]*0.5f > (numLayers-1)*0.5f;
+
+    float position = 0.0f;
+    int len = pos.length/3;
+    for(int i=0; i<len; i++) position += pos[3*i+posIndex];
+    position /= len;
+
+    boolean reaches  = multiplier*position + dim[dimIndex]*0.5f > (numLayers-1)*0.5f;
 
     return reaches ? stickerIndex*NUM_FACES + face : NUM_STICKERS*NUM_FACES;
     }
diff --git a/src/main/java/org/distorted/objects/TwistyBandagedEvil.java b/src/main/java/org/distorted/objects/TwistyBandagedEvil.java
index e6d48c59..4233f700 100644
--- a/src/main/java/org/distorted/objects/TwistyBandagedEvil.java
+++ b/src/main/java/org/distorted/objects/TwistyBandagedEvil.java
@@ -64,18 +64,32 @@ class TwistyBandagedEvil extends TwistyBandagedAbstract
     switch(cubit)
       {
       case  0: return new float[] { 1.0f,  1.0f, -1.0f};
-      case  1: return new float[] {-0.5f, -0.5f,  0.0f};
-      case  2: return new float[] {-0.5f,  1.0f, -1.0f};
-      case  3: return new float[] {-0.5f,  0.0f, -1.0f};
-      case  4: return new float[] {-0.5f, -1.0f, -1.0f};
-      case  5: return new float[] {-1.0f,  1.0f,  0.5f};
-      case  6: return new float[] { 0.0f,  1.0f,  0.5f};
-      case  7: return new float[] { 1.0f,  1.0f,  0.5f};
-      case  8: return new float[] {-1.0f, -0.5f,  1.0f};
-      case  9: return new float[] { 0.0f, -0.5f,  1.0f};
-      case 10: return new float[] { 1.0f, -0.5f,  1.0f};
-      case 11: return new float[] { 1.0f, -0.5f,  0.0f};
-      case 12: return new float[] { 1.0f, -0.5f, -1.0f};
+      case  1: return new float[] {-1.0f, -1.0f,  0.0f,
+                                   -1.0f,  0.0f,  0.0f,
+                                    0.0f, -1.0f,  0.0f,
+                                    0.0f,  0.0f,  0.0f};
+      case  2: return new float[] {-1.0f,  1.0f, -1.0f,
+                                    0.0f,  1.0f, -1.0f};
+      case  3: return new float[] {-1.0f,  0.0f, -1.0f,
+                                    0.0f,  0.0f, -1.0f};
+      case  4: return new float[] {-1.0f, -1.0f, -1.0f,
+                                    0.0f, -1.0f, -1.0f};
+      case  5: return new float[] {-1.0f,  1.0f,  0.0f,
+                                   -1.0f,  1.0f,  1.0f};
+      case  6: return new float[] { 0.0f,  1.0f,  0.0f,
+                                    0.0f,  1.0f,  1.0f};
+      case  7: return new float[] { 1.0f,  1.0f,  0.0f,
+                                    1.0f,  1.0f,  1.0f};
+      case  8: return new float[] {-1.0f, -1.0f,  1.0f,
+                                   -1.0f,  0.0f,  1.0f};
+      case  9: return new float[] { 0.0f, -1.0f,  1.0f,
+                                    0.0f,  0.0f,  1.0f};
+      case 10: return new float[] { 1.0f, -1.0f,  1.0f,
+                                    1.0f,  0.0f,  1.0f};
+      case 11: return new float[] { 1.0f, -1.0f,  0.0f,
+                                    1.0f,  0.0f,  0.0f};
+      case 12: return new float[] { 1.0f, -1.0f, -1.0f,
+                                    1.0f,  0.0f, -1.0f};
       }
 
     return null;
diff --git a/src/main/java/org/distorted/objects/TwistyBandagedFused.java b/src/main/java/org/distorted/objects/TwistyBandagedFused.java
index 39a9b769..9b74ad49 100644
--- a/src/main/java/org/distorted/objects/TwistyBandagedFused.java
+++ b/src/main/java/org/distorted/objects/TwistyBandagedFused.java
@@ -57,7 +57,14 @@ class TwistyBandagedFused extends TwistyBandagedAbstract
     {
     switch(cubit)
       {
-      case  0: return new float[] {-0.5f, -0.5f, +0.5f};
+      case  0: return new float[] {-1.0f, -1.0f, +0.0f,
+                                   -1.0f, -1.0f, +1.0f,
+                                   -1.0f,  0.0f, +0.0f,
+                                   -1.0f,  0.0f, +1.0f,
+                                    0.0f, -1.0f, +0.0f,
+                                    0.0f, -1.0f, +1.0f,
+                                    0.0f,  0.0f, +0.0f,
+                                    0.0f,  0.0f, +1.0f};
       case  1: return new float[] {-1.0f, +1.0f, +1.0f};
       case  2: return new float[] {-1.0f, +1.0f, +0.0f};
       case  3: return new float[] {-1.0f, +1.0f, -1.0f};
