From 680312e3cf5062879b4c31aec35fdde0fc084ee2 Mon Sep 17 00:00:00 2001 From: natalia-rubio Date: Mon, 27 Oct 2025 17:58:40 -0700 Subject: [PATCH 1/3] Fixes #35: boolean MMGS arguments --- .DS_Store | Bin 0 -> 10244 bytes .cursorignore | 2 ++ svv/forest/export/export_solid.py | 2 +- svv/tree/export/export_solid.py | 2 +- svv/utils/remeshing/Mac/mmg2d_O3 | Bin svv/utils/remeshing/Mac/mmgs_O3 | Bin svv/utils/remeshing/remesh.py | 52 +++++++++++++++--------------- 7 files changed, 30 insertions(+), 28 deletions(-) create mode 100755 .DS_Store create mode 100755 .cursorignore mode change 100644 => 100755 svv/utils/remeshing/Mac/mmg2d_O3 mode change 100644 => 100755 svv/utils/remeshing/Mac/mmgs_O3 diff --git a/.DS_Store b/.DS_Store new file mode 100755 index 0000000000000000000000000000000000000000..6036edfd62349f4df85c774eff760d38f95071ee GIT binary patch literal 10244 zcmeHMO=uHA6n@(TY-qJT^dO=V1fe1ZMK5}aZCb5h6{8nHV)N6aWz&sKT7M1_5WT1% zg6K)`Eb85h9t1)0px(rT7eztQqdnE{%}&xcyPHr1MPVlFzRk@0`@Z?hY>3DiSt#xz zN)k~oE|!D+xJ49h=POitbWIx4fjzn9UD<+Ht%Wpgg=N4pU>UFsSOzQu{|W=xv$^#4 z`O@Ak1C{~HK$`(xACkCOrnPMPQY{_0sUrYn9M!7ed5|96<$G zh~fC=s84FWw3ba@`sU>5!-u0IJNks;sOa#YRO;lUeQEEO0n0#`fi$Y(l%g`tP(z;I z2ev)?CfllBCX;u)JnDLP!{n^*8BPxf0pQ^W#NoOsY57AN1Cq{X&FgM|P1&x#!6GoX@R)v*XTE%+7&3m3J zs!RYmQ!#yPeewhzcmDR=8D8te#6d;gtIQL;jebUE6uMECAXdl`)I zCvkPxG!gNpL~9kIlR&~#DTBp?7X+UE^MO9Z@?{|FVkr^E-i&?f9!Da*Qn~Z_zTb~s z{7b~EvyjMR?~{yts55dkt*5{U|DL&E^1zeZ;31BQ&6`PZljKQ#QB3N#o}94lN=X?x zyAw#T-6jcowfwU6b49eT{7{K%m*B~{!QeNvlE%I>tM?$@^F2)89KclZ#J>V6{%Rb# zYVmp`0mh(TrJ6|>?-Ws55^sF>^Z;_w_7d&6`p5BGqk4%_-euQ^TP4!?JvC(+tu2-T z%YbFTGVn(ji1}WV{QiHe^Z);UB(`;G8L$le8w@z{Og1xuT=*y&Rrpx?I literal 0 HcmV?d00001 diff --git a/.cursorignore b/.cursorignore new file mode 100755 index 0000000..139597f --- /dev/null +++ b/.cursorignore @@ -0,0 +1,2 @@ + + diff --git a/svv/forest/export/export_solid.py b/svv/forest/export/export_solid.py index 34c80c1..569fad2 100644 --- a/svv/forest/export/export_solid.py +++ b/svv/forest/export/export_solid.py @@ -27,7 +27,7 @@ def smooth_junctions(mesh): boundaries = boundaries.split_bodies() caps = [] for boundary in boundaries: - cap = remesh_surface_2d(boundary, nosurf=True, hsiz=hsize) + cap = remesh_surface_2d(boundary, nosurf=True, hsiz=hsize, nomove=False caps.append(cap) caps.insert(0, smoothed_mesh) model = pyvista.merge(caps) diff --git a/svv/tree/export/export_solid.py b/svv/tree/export/export_solid.py index a49c0c9..152bbaf 100644 --- a/svv/tree/export/export_solid.py +++ b/svv/tree/export/export_solid.py @@ -320,7 +320,7 @@ def generate_tube(polyline, hsize=None): tube = tube.compute_normals(auto_orient_normals=True) if isinstance(hsize, type(None)): hsize = (min(polyline['radius'])*2*numpy.pi)/25 - tube = remesh_surface(tube, hsiz=hsize) + tube = remesh_surface(tube, hsiz=hsize, nomove=False) tube = tube.compute_normals(auto_orient_normals=True) fix = pymeshfix.MeshFix(tube) fix.repair() diff --git a/svv/utils/remeshing/Mac/mmg2d_O3 b/svv/utils/remeshing/Mac/mmg2d_O3 old mode 100644 new mode 100755 diff --git a/svv/utils/remeshing/Mac/mmgs_O3 b/svv/utils/remeshing/Mac/mmgs_O3 old mode 100644 new mode 100755 diff --git a/svv/utils/remeshing/remesh.py b/svv/utils/remeshing/remesh.py index b34ebe6..eeb233a 100644 --- a/svv/utils/remeshing/remesh.py +++ b/svv/utils/remeshing/remesh.py @@ -267,22 +267,22 @@ def remesh_surface_2d(boundary, autofix=False, ar=None, hausd=None, hgrad=None, executable_list.extend(["-hmin", str(hmin)]) if hsiz is not None: executable_list.extend(["-hsiz", str(hsiz)]) - if noinsert is not None: + if noinsert: executable_list.extend(["-noinsert"]) - if nomove is not None: + if nomove: executable_list.extend(["-nomove"]) - if nosurf is not None: + if nosurf: executable_list.extend(["-nosurf"]) - if noswap is not None: + if noswap: executable_list.extend(["-noswap"]) - if nr is not None: + if nr: executable_list.extend(["-nr"]) - if optim is not None: + if optim: executable_list.extend(["-optim", str(optim)]) - if rn is not None: - executable_list.extend(["-rn", str(rn)]) - if nsd is not None: - executable_list.extend(["-nsd", str(nsd)]) + if rn: + executable_list.extend(["-rn"]) + if nsd: + executable_list.extend(["-nsd"]) if verbosity == 0: try: subprocess.check_call(executable_list, stdout=devnull, stderr=devnull) @@ -473,20 +473,20 @@ def remesh_surface(pv_polydata_object, autofix=True, ar=None, hausd=None, hgrad= executable_list.extend(["-hmin", str(hmin)]) if hsiz is not None: executable_list.extend(["-hsiz", str(hsiz)]) - if noinsert is not None: + if noinsert: executable_list.extend(["-noinsert"]) - if nomove is not None: + if nomove: executable_list.extend(["-nomove"]) - if nosurf is not None: + if nosurf: executable_list.extend(["-nosurf"]) - if noswap is not None: + if noswap: executable_list.extend(["-noswap"]) - if nr is not None: + if nr: executable_list.extend(["-nr"]) if optim: executable_list.extend(["-optim"]) - if rn is not None: - executable_list.extend(["-rn", str(rn)]) + if rn: + executable_list.extend(["-rn"]) if verbosity == 0: try: subprocess.check_call(executable_list, stdout=devnull, stderr=devnull) @@ -637,20 +637,20 @@ def remesh_volume(pv_unstructured_mesh, auto=True, ar=None, hausd=None, hgrad=No executable_list.extend(["-hmin", str(hmin)]) if hsiz is not None: executable_list.extend(["-hsiz", str(hsiz)]) - if noinsert is not None: + if noinsert: executable_list.extend(["-noinsert"]) - if nomove is not None: + if nomove: executable_list.extend(["-nomove"]) - if nosurf is not None: + if nosurf: executable_list.extend(["-nosurf"]) - if noswap is not None: + if noswap: executable_list.extend(["-noswap"]) - if nr is not None: + if nr: executable_list.extend(["-nr"]) - if optim is not None: - executable_list.extend(["-optim", str(optim)]) - if rn is not None: - executable_list.extend(["-rn", str(rn)]) + if optim: + executable_list.extend(["-optim"]) + if rn: + executable_list.extend(["-rn"]) if verbosity == 0: try: subprocess.check_call(executable_list, stdout=devnull, stderr=devnull) From 655045bf52409a39cd5daf515cc887805e1afbc6 Mon Sep 17 00:00:00 2001 From: natalia-rubio Date: Mon, 27 Oct 2025 18:11:34 -0700 Subject: [PATCH 2/3] Fixes #35: boolean MMGS arguments --- svv/forest/export/export_solid.py | 2 +- svv/tree/export/export_solid.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/svv/forest/export/export_solid.py b/svv/forest/export/export_solid.py index 569fad2..3d39c9a 100644 --- a/svv/forest/export/export_solid.py +++ b/svv/forest/export/export_solid.py @@ -27,7 +27,7 @@ def smooth_junctions(mesh): boundaries = boundaries.split_bodies() caps = [] for boundary in boundaries: - cap = remesh_surface_2d(boundary, nosurf=True, hsiz=hsize, nomove=False + cap = remesh_surface_2d(boundary, nosurf=True) caps.append(cap) caps.insert(0, smoothed_mesh) model = pyvista.merge(caps) diff --git a/svv/tree/export/export_solid.py b/svv/tree/export/export_solid.py index 152bbaf..a49c0c9 100644 --- a/svv/tree/export/export_solid.py +++ b/svv/tree/export/export_solid.py @@ -320,7 +320,7 @@ def generate_tube(polyline, hsize=None): tube = tube.compute_normals(auto_orient_normals=True) if isinstance(hsize, type(None)): hsize = (min(polyline['radius'])*2*numpy.pi)/25 - tube = remesh_surface(tube, hsiz=hsize, nomove=False) + tube = remesh_surface(tube, hsiz=hsize) tube = tube.compute_normals(auto_orient_normals=True) fix = pymeshfix.MeshFix(tube) fix.repair() From 134bda30e8aa1fa81f2850a5501aab9b3289ad09 Mon Sep 17 00:00:00 2001 From: natalia-rubio Date: Mon, 27 Oct 2025 18:14:46 -0700 Subject: [PATCH 3/3] Fixes #35: boolean MMGS arguments --- svv/forest/export/export_solid.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/svv/forest/export/export_solid.py b/svv/forest/export/export_solid.py index 3d39c9a..34c80c1 100644 --- a/svv/forest/export/export_solid.py +++ b/svv/forest/export/export_solid.py @@ -27,7 +27,7 @@ def smooth_junctions(mesh): boundaries = boundaries.split_bodies() caps = [] for boundary in boundaries: - cap = remesh_surface_2d(boundary, nosurf=True) + cap = remesh_surface_2d(boundary, nosurf=True, hsiz=hsize) caps.append(cap) caps.insert(0, smoothed_mesh) model = pyvista.merge(caps)