commit f96ceb84eec302135c2c39e1d3a95c6cec89d258
Author: leszek <leszek@koltunski.pl>
Date:   Wed Jun 12 00:19:05 2024 +0200

    add new shape category to the main grid list: CUBOIDS.

diff --git a/src/main/java/org/distorted/objects/RubikObjectCategoriesShape.java b/src/main/java/org/distorted/objects/RubikObjectCategoriesShape.java
index 1dafea64..809040e9 100644
--- a/src/main/java/org/distorted/objects/RubikObjectCategoriesShape.java
+++ b/src/main/java/org/distorted/objects/RubikObjectCategoriesShape.java
@@ -19,6 +19,10 @@ import java.util.Arrays;
 
 public class RubikObjectCategoriesShape extends RubikObjectCategories
 {
+  private static final int CATEGORY_SHAPE_CUB = 12;  // more than (CATEGORY_SHAPE_HEX<<3) + AXIS_OTHE
+                                                     // but less than (CATEGORY_SHAPE_OCT<<3)
+                                                     // so that CUBOIDS come right after hexes.
+
   private void buildSort(int[] data)
     {
     int numObjects = data.length;
@@ -72,14 +76,14 @@ public class RubikObjectCategoriesShape extends RubikObjectCategories
     switch(shape)
       {
       case CATEGORY_SHAPE_HEX: int axis  = (cat & 0x1f) >> 3;
-                               return (shape<<2) + axis;
+                               return (shape<<3) + axis;
       case CATEGORY_SHAPE_BAR:
-      case CATEGORY_SHAPE_BAL: return (CATEGORY_SHAPE_OTH<<2);
+      case CATEGORY_SHAPE_BAL: return (CATEGORY_SHAPE_OTH<<3);
       case CATEGORY_SHAPE_TET:
       case CATEGORY_SHAPE_OCT:
       case CATEGORY_SHAPE_DOD:
       case CATEGORY_SHAPE_ICO:
-      case CATEGORY_SHAPE_OTH: return (shape<<2);
+      case CATEGORY_SHAPE_OTH: return (cat & CATEGORY_CUBOID)!=0 ? CATEGORY_SHAPE_CUB : (shape<<3);
       }
 
     android.util.Log.e("D", "digestCategory: unknown shape "+shape);
@@ -91,7 +95,8 @@ public class RubikObjectCategoriesShape extends RubikObjectCategories
 
   private int getImage(int cat)
     {
-    int shape = (cat & 0x1f) >> 2;
+    if( cat==CATEGORY_SHAPE_CUB ) return R.drawable.shape_cub;
+    int shape = (cat>>3);
 
     switch(shape)
       {
diff --git a/src/main/res/drawable-nodpi/shape_cub.png b/src/main/res/drawable-nodpi/shape_cub.png
new file mode 100644
index 00000000..8d4b02aa
Binary files /dev/null and b/src/main/res/drawable-nodpi/shape_cub.png differ
