code wiki / (root) / nx_fbx_affine_t32.nx

nx_fbx_affine_t32.nx

buildroot/runtime/nx_fbx_affine_t32.nx

14389 B235 linesdepth 10pulls 25 transitivereach 10 importersview sourcekind librarytopic fbx
docsdependenciesstructsconstsfunctions

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

nx_nxa_anim_t30.nx nx_nxa_bind.nx nx_vecmath.nx nx_f32_sincos.nx nx_fbx_affine_t32.nx nx_fbx_affine_gate_t32.nx nx_nxa_affine_palette_t34.nx

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

15struct FbxAffineModel { id:i64,parent:i64,values:*i64,channels:*i64, }
16struct FbxAffineCurve { times:*u8,values:*u8,count:i64, }
17struct FbxAffineScene { models:*FbxAffineModel,count:i64,curves:*FbxAffineCurve,curve_count:i64,graph:*FbxClipGraph,selection:*FbxClipSelection, }

consts

7const AF_UNSUPPORTED:i64=0-50
8const AF_CHANNEL:i64=0-51
9const AF_TIMING:i64=0-52
10const AF_CAPACITY:i64=0-53
11const AF_COMPONENT_LIMIT:i64=FBB_I64_MAX/(2*FBB_Q)
12const AF_RAD_PER_DEG_F32:i64=1016003125
13const AF_FULL_DEG_Q20:i64=360*FBB_Q
14const AF_HALF_DEG_Q20:i64=180*FBB_Q

functions

18func af_model(s:*FbxAffineScene,i:i64)->*FbxAffineModel{return ((s.models as i64)+i*__size_of(FbxAffineModel)) as *FbxAffineModel}
19func af_curve(s:*FbxAffineScene,i:i64)->*FbxAffineCurve{return ((s.curves as i64)+i*__size_of(FbxAffineCurve)) as *FbxAffineCurve}
20func 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}
called by 3: mainaf_modelsaf_curves calls 1: af_model
22func af_properties(b:*u8,n:i64,start:i64,end:i64,big:i64,v:*i64)->i64
64func af_template(b:*u8,n:i64,big:i64,v:*i64)->i64
called by 1: af_models calls 2: fbxc_name_isaf_properties
83func af_models(b:*u8,n:i64,g:*FbxClipGraph,max_models:i64,s:*FbxAffineScene)->i64
107func af_linear(b:*u8,n:i64,offset:i64,nk:i64)->i64
129func af_curves(b:*u8,n:i64,G:*i64,s:*FbxAffineScene,max_keys:i64)->i64
167func af_load(b:*u8,n:i64,stack:i64,array_budget:i64,depth_budget:i64,max_models:i64,max_keys:i64,s:*FbxAffineScene)->i64
179func af_sample(c:*FbxAffineCurve,ticks:i64)->i64
191func 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
192func 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)}
called by 1: af_local calls 2: nx_f32_mulvm_int_to_f32
194func af_local(v:*i64,out:*i64)->i64
209func af_evaluate(s:*FbxAffineScene,ticks:i64,use_curves:i64,out:*i64,out_words:i64)->i64