nx_fbx_affine_t32.nx
buildroot/runtime/nx_fbx_affine_t32.nx
about
Private affine qualification in the existing FBX/NXA animation ownership chain.
Native full matrices are evaluation output only; no new NXA channel or playback claim.
dependencies 4 imports · 2 importers
imports: nx_nxa_anim_t30.nxnx_nxa_bind.nxnx_vecmath.nxnx_f32_sincos.nx
imported by: nx_fbx_affine_gate_t32.nxnx_nxa_affine_palette_t34.nx
structs
| 15 | struct FbxAffineModel { id:i64,parent:i64,values:*i64,channels:*i64, } |
| 16 | struct FbxAffineCurve { times:*u8,values:*u8,count:i64, } |
| 17 | struct FbxAffineScene { models:*FbxAffineModel,count:i64,curves:*FbxAffineCurve,curve_count:i64,graph:*FbxClipGraph,selection:*FbxClipSelection, } |
consts
| 7 | const AF_UNSUPPORTED:i64=0-50 |
| 8 | const AF_CHANNEL:i64=0-51 |
| 9 | const AF_TIMING:i64=0-52 |
| 10 | const AF_CAPACITY:i64=0-53 |
| 11 | const AF_COMPONENT_LIMIT:i64=FBB_I64_MAX/(2*FBB_Q) |
| 12 | const AF_RAD_PER_DEG_F32:i64=1016003125 |
| 13 | const AF_FULL_DEG_Q20:i64=360*FBB_Q |
| 14 | const AF_HALF_DEG_Q20:i64=180*FBB_Q |
functions
| 18 | func af_model(s:*FbxAffineScene,i:i64)->*FbxAffineModel{return ((s.models as i64)+i*__size_of(FbxAffineModel)) as *FbxAffineModel} |
| 19 | func af_curve(s:*FbxAffineScene,i:i64)->*FbxAffineCurve{return ((s.curves as i64)+i*__size_of(FbxAffineCurve)) as *FbxAffineCurve} |
| 20 | func af_find(s:*FbxAffineScene,id:i64)->i64{var i:i64=0;while i<s.count{if af_model(s,i).id==id{return i};i=i+1};return FC_MISSING} |
| 22 | func af_properties(b:*u8,n:i64,start:i64,end:i64,big:i64,v:*i64)->i64 |
| 64 | func af_template(b:*u8,n:i64,big:i64,v:*i64)->i64 |
| 83 | func af_models(b:*u8,n:i64,g:*FbxClipGraph,max_models:i64,s:*FbxAffineScene)->i64 |
| 107 | func af_linear(b:*u8,n:i64,offset:i64,nk:i64)->i64 |
| 129 | func af_curves(b:*u8,n:i64,G:*i64,s:*FbxAffineScene,max_keys:i64)->i64 |
| 167 | func af_load(b:*u8,n:i64,stack:i64,array_budget:i64,depth_budget:i64,max_models:i64,max_keys:i64,s:*FbxAffineScene)->i64 |
| 179 | func af_sample(c:*FbxAffineCurve,ticks:i64)->i64 |
| 191 | func af_identity(m:*i64)->i64{var i:i64=0;while i<16{m[i]=0;i=i+1};m[0]=FBB_Q;m[5]=FBB_Q;m[10]=FBB_Q;m[15]=FBB_Q;return 0} called by 1: af_local |
| 192 | func af_angle(value:i64)->i64{var angle:i64=value%AF_FULL_DEG_Q20;if angle>AF_HALF_DEG_Q20{angle=angle-AF_FULL_DEG_Q20};if angle<0-AF_HALF_DEG_Q20{angle=angle+AF_FULL_DEG_Q20};return nx_f32_mul(vm_int_to_f32(angle,FBB_Q),AF_RAD_PER_DEG_F32)} |
| 194 | func af_local(v:*i64,out:*i64)->i64 |
| 209 | func af_evaluate(s:*FbxAffineScene,ticks:i64,use_curves:i64,out:*i64,out_words:i64)->i64 |