nx_nxa_hierarchy_correction_candidate_t332.nx
buildroot/runtime/nx_nxa_hierarchy_correction_candidate_t332.nx
about
World-space rigid correction of an existing inverse-bind skin palette.
Pj=Wj*inverse(Bj); C*Pj=(C*Wj)*inverse(Bj). Descendant relative pose is retained.
This does not choose contact angles, classify anatomy, or convert affine rigs to DQ.
dependencies 1 imports · 2 importers
imports: nx_linalg_affine_t34.nx
imported by: nx_nxa_hierarchy_correction_gate_t332.nxnx_nxa_hierarchy_dq_gate_t332.nx
structs
| none |
consts
| 5 | const HC_RIGID:i64=1 |
| 12 | const HC_Q30_COMPONENT_ERROR:i64=1 |
| 13 | const HC_F32_COMPONENT_ERROR:i64=(FQ_ONE>>24)+1 |
| 14 | const HC_Q30_BUDGET:i64=3*(HC_Q30_COMPONENT_ERROR+2*(2*HC_Q30_COMPONENT_ERROR+2)+2) |
| 15 | const HC_F32_BUDGET:i64=3*(HC_F32_COMPONENT_ERROR+2*(2*HC_F32_COMPONENT_ERROR+2)+2) |
| 17 | const HC_BAD_GRAPH:i64=0-170 |
| 18 | const HC_BAD_DOMAIN:i64=0-171 |
| 19 | const HC_NONRIGID:i64=0-172 |
| 20 | const HC_STORAGE:i64=0-173 |
| 71 | const HC_DQ_DUAL_MAX:i64=LA_AFFINE_MAX/16 |
functions
| 21 | func hc_matrix(p:*i64,j:i64)->*i64{return ((p as i64)+j*128) as *i64} |
| 22 | func hc_disjoint(a:*i64,aw:i64,b:*i64,bw:i64)->i64 |
| 28 | func hc_rigid(a:*i64,budget:i64)->i64 |
| 44 | func hc_apply(parents:*i64,n:i64,palette:*i64,kind:i64,anchor:i64,correction:*i64,budget:i64,out:*i64,out_words:i64,scratch:*i64,scratch_words:i64)->i64 |
| 72 | func hc_qmul(a:*i64,b:*i64,o:*i64)->i64 |
| 78 | func hc_dq_real(q:*i64)->i64 |
| 85 | func hc_dq_apply(parents:*i64,n:i64,rows:*i64,kind:i64,anchor:i64,correction:*i64,out:*i64,out_words:i64,scratch:*i64,scratch_words:i64)->i64 |
| 126 | func hc_dq_anchor_correction(source:*i64,target:*i64,n:i64,j:i64,out:*i64,scratch:*i64,scratch_words:i64)->i64 |