nx_nxa_fk.nx
buildroot/runtime/nx_nxa_fk.nx
about
nx_nxa_fk.nx -- SHARED integer quaternion + FK primitives for the NXA import pipeline.
Extracted from nx_nxa_anim (DRY rule-15: nx_nxa_skin needs the same static-FK to compute
TRUE bind positions instead of placeholder propagation; nobody re-derives quat math).
q12 fixed-point (unit = 4096); angles arrive as millidegrees; all integer.
license_tier: ORIGINAL
dependencies 1 imports · 3 importers
imports: nx_itrig.nx
imported by: nx_nxa_anim.nxnx_nxa_pose.nxnx_nxa_skin.nx
structs
| none |
consts
| 7 | const K_MAGIC_4096: i64 = 4096 |
| 8 | const K_MAGIC_100000000: i64 = 100000000 |
| 9 | const K_MAGIC_65536: i64 = 65536 |
| 10 | const K_MAGIC_2048: i64 = 2048 |
| 11 | const K_MAGIC_57296: i64 = 57296 |
functions
| 14 | func nf_qmul(a: *i64, b: *i64, r: *i64) -> i64 |
| 22 | func nf_isqrt(n: i64) -> i64 |
| 36 | func nf_qnorm(q: *i64) -> i64 |
| 46 | func nf_qconj(q: *i64, r: *i64) -> i64 { r[0]=0-q[0]; r[1]=0-q[1]; r[2]=0-q[2]; r[3]=q[3]; return 0 } |
| 48 | func nf_eul2q(mdx: i64, mdy: i64, mdz: i64, out: *i64, scr: *i64) -> i64 |
| 71 | func nf_qarc(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64, out: *i64) -> i64 |
| 90 | func nf_qrotv(q: *i64, vx: i64, vy: i64, vz: i64, out3: *i64, scr: *i64) -> i64 |