nx_nxa_anim_lib.nx
buildroot/runtime/nx_nxa_anim_lib.nx
about
dependencies 1 imports · 39 importers
diagram shows first 10 each side; +0 more imports, +29 more importers in the complete lists below.
imports: nx_nxa_fk.nx
imported by: nx_craft_before_placement_t316.nxnx_gate_rig_motion_20260909.nxnx_gate_rig_motion_context_t140.nxnx_gate_rig_motion_palette_t140.nxnx_gate_rig_motion_stream_t140.nxnx_movement_base_engine_t139.nxnx_nxa_anim_bounds_gate.nxnx_nxa_anim_gate.nxnx_nxa_anim_legacy_gate_t33.nxnx_nxa_anim_lookup_gate.nxnx_nxa_rig_motion_stream.nxnx_nxa_rig_motion_stream_t140.nxnx_rigbench_motion.nxnx_rigbench_motion_t21.nxnx_wasm_craft.nxnx_wasm_craft_body_t137.nxnx_wasm_craft_contact_candidate.nxnx_wasm_craft_dunes_t70.nxnx_wasm_craft_gait_candidate.nxnx_wasm_craft_imported_body_t41.nxnx_wasm_craft_imported_body_t42.nxnx_wasm_craft_imported_body_t49.nxnx_wasm_craft_imported_t262.nxnx_wasm_craft_inspection_bounds_t181.nxnx_wasm_craft_inspection_distance_t218.nxnx_wasm_craft_inspection_t142.nxnx_wasm_craft_journal_index_t21.nxnx_wasm_craft_journal_index_t21_before_t44.nxnx_wasm_craft_lookup_candidate.nxnx_wasm_craft_move_t72.nxnx_wasm_craft_pre_inspection_t142.nxnx_wasm_craft_recovery_t20.nxnx_wasm_craft_relief_adopt_t143.nxnx_wasm_craft_relief_save_t143.nxnx_wasm_craft_relief_t143.nxnx_wasm_craft_residency_t44.nxnx_wasm_craft_visitors_canonical_t142.nxnx_wasm_craft_visitors_inspection_t142.nxnx_wasm_craft_visitors_t140.nx
structs
| none |
consts
| 26 | const NA_Q12: i64 = 4096 |
| 27 | const NA_LANE_MASK: i64 = 65535 |
| 28 | const NA_LANE_HALF: i64 = 32767 |
| 29 | const NA_LANE_FULL: i64 = 65536 |
| 30 | const NA_LANE_B1: i64 = 16 |
| 31 | const NA_LANE_B2: i64 = 32 |
| 32 | const NA_LANE_B3: i64 = 48 |
| 33 | const NA_DT_MM_TO_MODEL: i64 = 100 // spec: ANIM dt lanes are mm packed /100; binds are 0.01 mm |
| 34 | const NA_TRK_HDR_W: i64 = 3 // per track: [joint][channel][nkeys] |
| 35 | const NA_CH2: i64 = 2 |
| 36 | const NA_CH2_KEY_W: i64 = 2 |
| 37 | const NA_CH0_KEY_W: i64 = 4 // legacy verbose T keys, 32 bytes -- skipped, never sampled |
| 38 | const NA_CH1_KEY_W: i64 = 5 // legacy verbose R keys, 40 bytes -- skipped, never sampled |
| 39 | const NA_ROW_W: i64 = 8 // real x4 + dual x4 per joint |
| 40 | const NA_IDX_W: i64 = 2 // per joint: key word offset (or -1), nkeys |
| 41 | const NA_SKEL_W: i64 = 8 // spec: [parent][tx ty tz][qx qy qz qw] |
| 42 | const NA_SKEL_TX: i64 = 1 |
| 43 | const NA_SKEL_TY: i64 = 2 |
| 44 | const NA_SKEL_TZ: i64 = 3 |
| 45 | const NA_POSE_ENTRY_W: i64 = 8 // spec: [joint][q x4][dt x3] |
| 46 | const NA_RV_W: i64 = 6 // x0 y0 vx16 vy16 t0 span |
| 47 | const NA_RV_FX: i64 = 65536 // drift velocity carried as units per ms x 65536 |
| 48 | const NA_ROOT_Z: i64 = 89000 // the page's root rule: pelvis-region bind nearest (0,0,.52H) |
| 49 | const NA_ROOT_XW: i64 = 2 // ... weighting |x| twice, verbatim from loadNPC |
| 50 | const NA_MPB_DEFAULT: i64 = 700 // the page's shipped default ms-per-block before a travel fit |
| 51 | const NA_TRAVEL_MIN_PERMIL: i64 = 1500 // the page fits cadence only when the root travels > 1.5 blocks |
| 52 | const NA_FIG_UNITS: i64 = 171530 // the reference figure's VERT extent, 0.01 mm units (1.7153 m) |
| 53 | const NA_FIG_BLOCKS_CENTI: i64 = 178 // ... which the page maps to 1.78 world blocks |
| 54 | const NA_SCR_W: i64 = 64 // scratch words na_rows needs from its caller |
| 55 | const NA_RC_BAD_TRACKS: i64 = 0 - 1 |
| 56 | const NA_RC_OVERRUN: i64 = 0 - 2 |
| 341 | const NA_GAIT_FOOT_W: i64 = 9 |
| 342 | const NA_GAIT_INPUT_W: i64 = 18 |
| 343 | const NA_GAIT_HEADER_W: i64 = 8 |
| 344 | const NA_GAIT_ROW_W: i64 = 3 |
| 345 | const NA_GAIT_DISTANCE: i64 = 1 |
| 346 | const NA_GAIT_CONTACT: i64 = 2 |
functions
| 59 | func na_i16(w: i64, sh: i64) -> i64 |
| 64 | func na_abs(v: i64) -> i64 { if v < 0 { return 0 - v } return v } |
| 69 | func na_index(anim: *i64, nw: i64, nj: i64, tidx: *i64) -> i64 |
| 102 | func na_key_t(anim: *i64, ko: i64, i: i64) -> i64 { return anim[ko + i*NA_CH2_KEY_W] & NA_LANE_MASK } |
| 103 | func na_key_q(anim: *i64, ko: i64, i: i64, q: *i64) -> i64 |
| 112 | func na_key_d(anim: *i64, ko: i64, i: i64, d: *i64) -> i64 |
| 125 | func na_index_order(anim: *i64, tidx: *i64, nj: i64, order: *i64) -> i64 |
| 144 | func na_key_linear(anim: *i64, ko: i64, nk: i64, t: i64) -> i64 |
| 152 | func na_key_ordered(anim: *i64, ko: i64, nk: i64, t: i64) -> i64 |
| 163 | func na_eval_track(anim: *i64, ko: i64, nk: i64, t: i64, q: *i64, d: *i64, scr: *i64) -> i64 |
| 167 | func na_eval_track_ordered(anim: *i64, ko: i64, nk: i64, t: i64, q: *i64, d: *i64, scr: *i64) -> i64 called by 9: nmg_samplenmg_samplenmg_samplenmg_samplena_rows_indexedna_gait_sole+3 calls 2: na_eval_keyna_key_ordered |
| 171 | func na_eval_key(anim: *i64, ko: i64, nk: i64, c: i64, t: i64, q: *i64, d: *i64, scr: *i64) -> i64 |
| 200 | func na_root_joint(skel: *i64, nj: i64) -> i64 |
| 215 | func na_fit_root(anim: *i64, tidx: *i64, rj: i64, rv: *i64, scr: *i64) -> i64 |
| 242 | func na_mpb(anim: *i64, tidx: *i64, rj: i64, dur: i64, scr: *i64) -> i64 |
| 278 | func na_rows(anim: *i64, tidx: *i64, nj: i64, skel: *i64, pq: *i64, pd: *i64, haspose: i64, rv: *i64, t: i64, iw: i64, out: *i64, scr: *i64) -> i64 |
| 282 | func na_rows_indexed(anim: *i64, tidx: *i64, order: *i64, nj: i64, skel: *i64, pq: *i64, pd: *i64, haspose: i64, rv: *i64, t: i64, iw: i64, out: *i64, scr: *i64) -> i64 |
| 347 | func na_gait_sole(anim: *i64, ko: i64, nk: i64, skel: *i64, foot: *i64, t: i64, rv: *i64, out: *i64, scr: *i64) -> i64 |
| 373 | func na_gait_fit(anim: *i64,tidx: *i64,order: *i64,skel: *i64,nj: i64,rv: *i64,feet: *i64,header: *i64,table: *i64,capacity: i64,scr: *i64) -> i64 |
| 415 | func na_gait_time(table: *i64,n: i64,distance: i64) -> i64 |