nx_nxa_strands.nx
buildroot/runtime/nx_nxa_strands.nx
about
nx_nxa_strands.nx -- USC-HairSalon STRAND GROOM INGEST (dev oracle, license-clean for
development): reads a .data hairstyle (i32 nstrands; per strand i32 npts + npts x 3 f32,
y-up meters), downsamples to <=2200 strands x EXACTLY 8 points each, converts y-up->z-up,
scales meters->units, and FITS the root cloud to the character's head BY MEASUREMENT
(root-cloud center+width matched to the scalp band) -- tooling, no hand constants. Appends
section HSTR: [nstrands] then per strand 24 words (8 points x xyz, mesh units, world space).
The vendor/any sim is DISCARDED by design: our viewer's verlet drives these strands.
usage: nx_nxa_strands <hairstyle.data> <in.nxa> <out.nxa>
rc: 0 ok, 2 usage, 3 data unreadable, 5 bad nxa, 9 io
license_tier: ORIGINAL
dependencies 2 imports · 0 importers
imports: nx_syscalls.nxnx_nxa.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 13 | const K_MAGIC_8388607: i64 = 8388607 |
| 14 | const K_MAGIC_8388608: i64 = 8388608 |
| 15 | const K_MAGIC_200000: i64 = 200000 |
| 16 | const K_MAGIC_2200: i64 = 2200 |
| 17 | const K_MAGIC_100000: i64 = 100000 |
| 18 | const K_MAGIC_4611686018427387903: i64 = 4611686018427387903 |
| 19 | const K_MAGIC_4096: i64 = 4096 |
functions
| 21 | func sw9(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } |
| 22 | func sn9(v: i64) -> i64 |
| 34 | func s_u32(b: *u8, o: i64) -> i64 |
| 39 | func s_f32(b: *u8, o: i64, scale: i64) -> i64 |
| 53 | func main(argc: i64, argv: *i64) -> i64 |