nx_fbx_import.nx
buildroot/runtime/nx_fbx_import.nx
about
nx_fbx_import.nx -- binary FBX GEOMETRY extraction. Format knowledge lives in nx_fbx_core; this
file only knows what it wants (Vertices + PolygonVertexIndex -> fx1024 triangles).
★CONSOLIDATED (seq1788). The node walk was written twice -- here and in nx_fbx_rig.nx (the rig
survey: joints, skin clusters, weights, animation curves, emits nothing by design). The purposes
differ; the FORMAT READING did not. Both now share nx_fbx_core, so a node-format bug has one home.
The consolidation also FIXED A REAL CAPABILITY GAP for free: this reader used to REFUSE v7500+
outright while nx_fbx_rig already handled u64 offsets. Sharing the header decoder means geometry
extraction inherits that instead of re-deriving it.
★POLYGON INDICES ARE XOR-TERMINATED: a NEGATIVE index marks the last vertex of a polygon and its
true value is -v-1. Missing that reads every polygon one vertex short and silently yields a
shredded mesh -- plausible counts over garbage, the failure shape this lane keeps meeting.
usage as a lib: fbx_read(path, vbuf, fbuf, vcap, fcap, counts) -> 0 ok, negative on error
counts[0]=nv counts[1]=ntri counts[2]=nodes counts[3]=nVertices
counts[4]=nPolyIdx counts[5]=nGeometry counts[6]=max_arraylen counts[7]=decode_fails
license_tier: ORIGINAL
dependencies 1 imports · 6 importers
imports: nx_fbx_core.nx
imported by: nx_fbx2nxa.nxnx_fbx_probe.nxnx_knight_bind_t24.nxnx_nxa_bind.nxnx_nxa_bind_gate_t29.nxnx_nxa_bind_t29.nx
structs
| none |
consts
| none |
functions
| 22 | func fbx_walk(buf: *u8, n: i64, pos0: i64, end: i64, st: *i64) -> i64 |
| 126 | func fbx_read(path: *u8, vbuf: *i64, fbuf: *i64, vcap: i64, fcap: i64, counts: *i64) -> i64 |