code wiki / (root) / nx_nxa_pose.nx

nx_nxa_pose.nx

buildroot/runtime/nx_nxa_pose.nx

11805 B296 linesdepth 3pulls 6 transitivereach 0 importersview sourcekind tooltopic nxa
docsdependenciesstructsconstsfunctions

about

nx_nxa_pose.nx -- POSE section compiler: freezes ANIM channel-2 keyframes into the NXA pose library (spec: knowledge/nxa_format_spec.md POSE). A pose entry is one frozen channel-2 keyframe per joint -- [joint][qx qy qz qw q12][dtx dty dtz mm], world-delta about bind, root horizontal motion removed -- so a player applies it with the exact LBS the ANIM path already proves (M x = D(x-b)+b+dt), no FK reconstruction (which would re-introduce the dead-chain-adoption shard class: adopted joints' dt is donor-relative, not parent-relative). freeze picks its frame BY MEASUREMENT when t=-1: the sample minimizing horizontal foot separation (feet passing = legs together = reads as standing), never by taste. usage: nx_nxa_pose freeze <in.nxa> <out.nxa> <pose_id> <t_ms|-1> nx_nxa_pose list <in.nxa> rc: 0 ok, 2 usage, 4 missing SKEL/ANIM/tracks, 5 corrupt, 6 future-version, 9 io license_tier: ORIGINAL

dependencies 4 imports · 0 importers

nx_syscalls.nx nx_nxa.nx nx_nxa_fk.nx nx_nxa_posewrite_lib.nx nx_nxa_pose.nx

imports: nx_syscalls.nxnx_nxa.nxnx_nxa_fk.nxnx_nxa_posewrite_lib.nx

imported by: nobody (leaf or entry point)

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

main npw sys_write 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 ↻ sys_map_file sys_openat_rd sys_lseek sys_close nxa_find nxa_section_entry nxa_magic nxa_check2 nxa_tag4 np_seq npn sys_mmap ↻ sys_write ↻ np_atoi np_sample np_i16 nf_qnorm nf_isqrt nf_isqrt ↻ npw_write nxa_magic ↻ npw_payload_words

structs

none

consts

19const NP_MAGIC_65535: i64 = 65535
20const NP_MAGIC_32767: i64 = 32767
21const NP_MAGIC_65536: i64 = 65536
22const NP_MAGIC_4096: i64 = 4096
23const NP_MAGIC_1000: i64 = 1000
24const NP_MAGIC_33: i64 = 33
25const NP_MAGIC_52: i64 = 52
26const NP_MAGIC_100: i64 = 100
27const NP_MAGIC_256: i64 = 256
28const NP_MAGIC_1000000000: i64 = 1000000000

functions

30func npw(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 calls 1: sys_write
31func npn(v: i64) -> i64
called by 1: main calls 2: sys_mmapsys_write
43func np_atoi(s: *u8) -> i64
called by 1: main
56func np_seq(a: *u8, b: *u8) -> i64
called by 1: main
66func np_i16(w: i64, sh: i64) -> i64
called by 1: np_sample
73func np_sample(h: *i64, koff: i64, nk: i64, t: i64, out7: *i64) -> i64
called by 1: main calls 2: np_i16nf_qnorm
121func main(argc: i64, argv: *i64) -> i64