Backlog captured from the salvage audit of volrover #4 (unified volutils CLI), which was closed as superseded by the cvc CLI. The cvc CLI already covers all 19 core volutils subcommands as a strict superset; these are the remaining items the audit flagged as worth preserving so nothing is lost.
A. Wrap existing libcvc capabilities in cvc-cli (logic already in libcvc, just un-exposed)
- Filters: bilateral, contrast-enhancement, anisotropic-diffusion, GDTV (
voxels.h) — port the exact legacy VolUtils defaults.
- Arbitrary resize / resample-to-dims —
volume::resize.
- Region-restricted stats —
compute_stats(vol, region) (currently cvc stats is whole-volume only).
- Trivial op wrappers:
difference (vol_difference, volume_ops.h), clamp-min (vol_clamp_min, volume_ops.h), average (N-way fold over vol_average), variable-timestep extract (volume::read(file, var, time)).
B. Preserve genuinely libcvc-absent, novel bits before any future removal of legacy VolUtils from volrover master
- LoG
edge — inline 5×5×5 Laplacian-of-Gaussian kernel + zero-padded 3D convolution (no equivalent anywhere in libcvc).
compare — voxel abs-diff pass/fail with a nonzero exit code on mismatch (CI-checker contract; cvc ssim is similarity-scored, not pass/fail).
- RGBA color-quantization —
RawVRGBA2RawIV + its mmap out-of-core backend.
- Cartesian→spherical resampler —
cartTospher.
- Segmentation seed generators —
criticalPntsToSeed / SeedProduce*.
Source of these lives on volrover master (legacy VolUtils) and in the closed PR branch use-libcvc-volutils. None are blockers; this is an enhancement backlog for cvc-cli.
Backlog captured from the salvage audit of volrover #4 (unified
volutilsCLI), which was closed as superseded by thecvcCLI. ThecvcCLI already covers all 19 corevolutilssubcommands as a strict superset; these are the remaining items the audit flagged as worth preserving so nothing is lost.A. Wrap existing libcvc capabilities in
cvc-cli(logic already in libcvc, just un-exposed)voxels.h) — port the exact legacy VolUtils defaults.volume::resize.compute_stats(vol, region)(currentlycvc statsis whole-volume only).difference(vol_difference, volume_ops.h),clamp-min(vol_clamp_min, volume_ops.h),average(N-way fold overvol_average), variable-timestepextract(volume::read(file, var, time)).B. Preserve genuinely libcvc-absent, novel bits before any future removal of legacy VolUtils from volrover
masteredge— inline 5×5×5 Laplacian-of-Gaussian kernel + zero-padded 3D convolution (no equivalent anywhere in libcvc).compare— voxel abs-diff pass/fail with a nonzero exit code on mismatch (CI-checker contract;cvc ssimis similarity-scored, not pass/fail).RawVRGBA2RawIV+ its mmap out-of-core backend.cartTospher.criticalPntsToSeed/SeedProduce*.Source of these lives on volrover
master(legacy VolUtils) and in the closed PR branchuse-libcvc-volutils. None are blockers; this is an enhancement backlog forcvc-cli.