nx_nxa_anim_lookup_gate.nx
buildroot/runtime/nx_nxa_anim_lookup_gate.nx
about
nx_nxa_anim_lookup_gate.nx -- GATE for the one NXA clip evaluator (nx_nxa_anim_lib), driven IN-PROCESS on PLANTED
keys whose answers are known by arithmetic: lane sign-extension, track indexing that skips legacy channels
and refuses a truncated section by name, the bracketing-key nlerp at a known midpoint, the shortest-path
flip on a pair whose unflipped blend has the opposite sign, the root rule, the linear drift fit, the walk
cadence default, drift-removed rows that read zero on the root, an untracked joint's identity rows, and a
full idle hold that reproduces the pose. Every fixture asserts its own condition before its outcome.
license_tier: ORIGINAL No hw writes (Rule 26).
dependencies 3 imports · 0 importers
imports: nx_syscalls.nxnx_nxa_anim_lib.nxnx_gate_verdict.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
| 12 | const G_I64: i64 = 8 |
| 13 | const G_NJ: i64 = 3 |
| 14 | const G_ANIM_W: i64 = 24 |
| 15 | const G_SKEL_W: i64 = 24 |
| 16 | const G_SCR_W: i64 = 64 |
| 17 | const G_ROOT_J: i64 = 2 |
| 18 | const G_HEAD_Z: i64 = 150000 |
| 19 | const G_MID_Z: i64 = 50000 |
| 20 | const G_DUR: i64 = 1000 |
| 21 | const G_TMID: i64 = 500 |
| 22 | const G_Q45: i64 = 2896 // the q12 half-root of two: nlerp of identity and a half-turn, normalised |
| 23 | const G_Q_TOL: i64 = 2 |
| 24 | const G_MM_END: i64 = 300 // joint 0 dt lane at the last key, mm -> 30000 model units |
| 25 | const G_ROOT_MM: i64 = 100 // root dt lane at the last key, mm -> 10000 model units over 1000 ms |
| 26 | const G_ROOT_VX16: i64 = 655360 // 10000 units / 1000 ms x 65536 |
| 27 | const G_DUAL_X_J0: i64 = 14480000 // ((15000 - 5000) x 2896)/2: joint 0's midpoint dt 15000 MINUS the root's fitted drift |
| 32 | const G_A_QZ: i64 = 2896 |
| 33 | const G_A_QW: i64 = 2896 |
| 34 | const G_B_QZ: i64 = 0 - 3547 |
| 35 | const G_B_QW: i64 = 2048 |
| 78 | const L_KEYS: i64 = 5 |
| 79 | const L_TIMES: i64 = 4 |
functions
| 37 | func g_lane(v: i64) -> i64 { return v & NA_LANE_MASK } |
| 38 | func g_key(a: *i64, o: i64, t: i64, qx: i64, qy: i64, qz: i64, qw: i64, dx: i64, dy: i64, dz: i64) -> i64 |
| 44 | func g_eval_legacy(anim: *i64, ko: i64, nk: i64, t: i64, q: *i64, d: *i64, scr: *i64) -> i64 |
| 80 | func g_lookup(c: *i64) -> i64 called by 1: main calls 8: sys_mmapg_keyna_index_orderg_eval_legacyna_eval_track_orderedna_eval_track+2 |
| 148 | func main() -> i64 |