code wiki / (root) / nx_hull_mesh.nx

nx_hull_mesh.nx

buildroot/runtime/nx_hull_mesh.nx

9445 B219 linesdepth 5pulls 12 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_hull_mesh.nx -- THE JOIN: silhouettes -> carved SDF field -> triangle mesh -> rendered PNG. nx_visual_hull (carve) and nx_isosurf (polygonize) were each gated in ISOLATION, and a gated half plus a gated half is not a proven whole. This organ is the composition, and it exists so the image->geometry->render path is proven end-to-end BEFORE any real photograph arrives. Runs on SYNTHETIC silhouettes by default (a plus-shaped column: distinctive enough that a correct carve is visually unmistakable and a wrong axis mapping is obvious). Give it two image paths and it carves those instead -- same code path, so the synthetic proof is not a separate lane. ⚠VIEWS MUST DIFFER IN ANGLE. Front + lateral carves a form; front + BACK does not (same projection axis, one constraint). nx_visual_hull_gate proves that mechanically. usage: nx_hull_mesh <out.png> [cell] [gridN] license_tier: ORIGINAL expect_exit: 0

dependencies 4 imports · 0 importers

nx_visual_hull.nx nx_isosurf.nx nx_doc_layout.nx nx_png_write.nx nx_hull_mesh.nx

imports: nx_visual_hull.nxnx_isosurf.nxnx_doc_layout.nxnx_png_write.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main hm_puts hm_atoi hm_plate vh_bg_mask sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ vh_abs sys_munmap vh_sdf2d sys_mmap ↻ vh_min sys_munmap ↻ vh_carve_view vh_samp vh_max tm_reset sys_mmap ↻ surface_nets sys_mmap ↻ iso_isqrt vm_isqrt tm_vert_n tm_vcap tm_quad tm_tri tm_tcap

structs

none

consts

21const HM_IW: i64 = 192
22const HM_IH: i64 = 192
23const HM_W: i64 = 760
24const HM_FW: i64 = 380
25const HM_FH: i64 = 420
26const HM_HEAD: i64 = 30
27const HM_FOOT: i64 = 22

functions

31func hm_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
called by 1: main
32func hm_putn(v: i64) -> i64
called by 1: main
44func hm_atoi(s: *u8) -> i64
called by 1: main
49func hm_px(img: *u8, x: i64, y: i64, r: i64, g: i64, b: i64) -> i64
called by 2: hm_charmain
58func hm_char(img: *u8, tbl: *u8, x: i64, y: i64, ch: i64, cr: i64, cg: i64, cb: i64) -> i64
called by 2: hm_texthm_num calls 2: nx_doc_glyphhm_px
72func hm_text(img: *u8, tbl: *u8, x: i64, y: i64, s: *u8, cr: i64, cg: i64, cb: i64) -> i64
called by 1: main calls 1: hm_char
77func hm_num(img: *u8, tbl: *u8, x: i64, y: i64, v: i64, cr: i64, cg: i64, cb: i64) -> i64
called by 1: main calls 1: hm_char
93func hm_plate(rgb: *u8, narrow: i64) -> i64
called by 1: main
113func main(argc: i64, argv: *i64) -> i64