From ed4141e22ef527548131f59847f25232a45d83f8 Mon Sep 17 00:00:00 2001
From: Giovanni La Mura <giovanni.lamura@inaf.it>
Date: Mon, 14 Apr 2025 13:01:55 +0200
Subject: [PATCH] Raise an error if compact generator with different radii is
 used

---
 src/scripts/model_maker.py | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/scripts/model_maker.py b/src/scripts/model_maker.py
index 4df0851..a1ab00c 100755
--- a/src/scripts/model_maker.py
+++ b/src/scripts/model_maker.py
@@ -378,6 +378,9 @@ def load_model(model_file):
                     rnd_engine = "COMPACT"
                 if (rnd_engine == "COMPACT"):
                     check = random_compact(sconf, gconf, rnd_seed, max_rad)
+                    if (check == 1):
+                        print("ERROR: compact random generator works only when all sphere types have the same radius.")
+                        return (None, None)
                 elif (rnd_engine == "LOOSE"):
                     check = random_aggregate(sconf, gconf, rnd_seed, max_rad)
                 else:
@@ -782,13 +785,13 @@ def random_compact(scatterer, geometry, seed, max_rad):
         #    mesh = pv.Sphere(radius / max_rad, (x, y, z))
         #    pl.add_mesh(mesh)
         #pl.export_obj("scene.obj")
-    sph_index = 0
-    for sphere in sorted(vec_spheres, key=lambda item: item['itype']):
-        scatterer['vec_types'][sph_index] = sphere['itype']
-        geometry['vec_sph_x'][sph_index] = sphere['x']
-        geometry['vec_sph_y'][sph_index] = sphere['y']
-        geometry['vec_sph_z'][sph_index] = sphere['z']
-        sph_index += 1
+        sph_index = 0
+        for sphere in sorted(vec_spheres, key=lambda item: item['itype']):
+            scatterer['vec_types'][sph_index] = sphere['itype']
+            geometry['vec_sph_x'][sph_index] = sphere['x']
+            geometry['vec_sph_y'][sph_index] = sphere['y']
+            geometry['vec_sph_z'][sph_index] = sphere['z']
+            sph_index += 1
     return result
     
 ## \brief Write the geometry configuration dictionary to legacy format.
-- 
GitLab