# SurfaceWrapSolidify: a Segment Editor effect ("Wrap Solidify") that fills a # segment's outer surface or largest cavity by shrink-wrapping, optionally carving # holes, splitting cavities and making a shell. Used for bone, skull and organ # segmentation clean-up; LungCTAnalyzer and RVXLiverSegmentation depend on it. # # PURE-SCRIPTED: nothing to compile, no Python dependencies beyond Slicer's own. %global commit 600681438bca4ab900511d8677b7cb3046767dc2 %global shortcommit %(c=%{commit}; echo ${c:0:8}) %global snapdate 20240423 %global slicer_inst %{_prefix}/lib/slicer %global slicer_subdir Slicer-5.12 %global qtsm %{slicer_inst}/lib/%{slicer_subdir}/qt-scripted-modules Name: 3dslicer-surfacewrapsolidify Version: 0 Release: 0.1.%{snapdate}git%{shortcommit}%{?dist} Summary: Wrap Solidify segment editor effect for 3D Slicer # LICENSE.md is the 3D Slicer licence, which 3dslicer.spec records as BSD-3-Clause. License: BSD-3-Clause URL: https://github.com/sebastianandress/Slicer-SurfaceWrapSolidify Source0: %{url}/archive/%{commit}/Slicer-SurfaceWrapSolidify-%{shortcommit}.tar.gz # Qt6 has no QButtonGroup::buttonClicked(int) ("PythonQt: QObject::connect() signal # 'buttonClicked(int)' does not exist on QButtonGroup"), so the region, output-type and # shell-direction radio buttons never reached the effect's parameters. Use idClicked(int). Patch0: 3dslicer-surfacewrapsolidify-qt6-idclicked.patch BuildArch: noarch Requires: 3dslicer %description SurfaceWrapSolidify adds the "Wrap Solidify" effect to the 3D Slicer Segment Editor. It fills the outer surface or the largest cavity of a segment by shrink-wrapping a surface around it, and can carve holes into the outer surface, split cavities, and create a shell of a given thickness. The result is written to the segment, a new segment, or a model. %prep %autosetup -n Slicer-SurfaceWrapSolidify-%{commit} -p1 %build # Pure-scripted: nothing to compile. %install # Install exactly what SegmentEditorWrapSolidify/CMakeLists.txt lists, at the paths # slicerMacroBuildScriptedModule uses. _dir=SegmentEditorWrapSolidify; _mod=SegmentEditorWrapSolidify; _n=0 for _f in $(sed -n '/^set(MODULE_PYTHON_\(SCRIPTS\|RESOURCES\)$/,/^ )$/p' $_dir/CMakeLists.txt \ | grep -vE '^set\(|^ \)$' | sed -e 's/^ *//' -e "s/\${MODULE_NAME}/$_mod/g"); do test -f "$_dir/$_f" || { echo "ERROR: $_mod lists $_f, which is missing" >&2; exit 1; } install -Dpm0644 "$_dir/$_f" "%{buildroot}%{qtsm}/$_f" _n=$((_n + 1)) done test "$_n" -eq 5 || { echo "ERROR: installed $_n $_mod files, expected 5" >&2; exit 1; } %files %license LICENSE.md %doc README.md %{qtsm}/SegmentEditorWrapSolidify.py %{qtsm}/SegmentEditorWrapSolidifyLib/ %changelog * Sat Oct 10 2026 Morgan Hough - 0-0.1.20240423git60068143 - Initial package. Patch0: QButtonGroup idClicked(int) for Qt6.