code wiki / (root) / nx_nxa_fk.nx

nx_nxa_fk.nx

buildroot/runtime/nx_nxa_fk.nx

4089 B102 linesdepth 1pulls 1 transitivereach 3 importersview sourcekind librarytopic nxa
docsdependenciesstructsconstsfunctions

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

nx_itrig.nx nx_nxa_fk.nx nx_nxa_anim.nx nx_nxa_pose.nx nx_nxa_skin.nx

imports: nx_itrig.nx

imported by: nx_nxa_anim.nxnx_nxa_pose.nxnx_nxa_skin.nx

structs

none

consts

7const K_MAGIC_4096: i64 = 4096
8const K_MAGIC_100000000: i64 = 100000000
9const K_MAGIC_65536: i64 = 65536
10const K_MAGIC_2048: i64 = 2048
11const K_MAGIC_57296: i64 = 57296

functions

14func nf_qmul(a: *i64, b: *i64, r: *i64) -> i64
22func nf_isqrt(n: i64) -> i64
36func nf_qnorm(q: *i64) -> i64
called by 4: mainnf_qarcnp_samplemain calls 1: nf_isqrt
46func 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 }
called by 2: mainnf_qrotv
48func nf_eul2q(mdx: i64, mdy: i64, mdz: i64, out: *i64, scr: *i64) -> i64
71func nf_qarc(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64, out: *i64) -> i64
called by 1: main calls 2: nf_isqrtnf_qnorm
90func nf_qrotv(q: *i64, vx: i64, vy: i64, vz: i64, out3: *i64, scr: *i64) -> i64
called by 2: mainmain calls 2: nf_qconjnf_qmul