nx_mesh_neutral_gate_t346.nx source
↩ module page · 33 lines · 4461 B
1import "nx_mesh2glb_neutral_candidate_t346.nx"
2import "nx_gltf_render_descriptor_candidate_t181.nx"
3import "nx_gate_verdict.nx"
4func ng_equal(a:*u8,b:*u8,n:i64)->i64{var i:i64=0;while i<n{if a[i]!=b[i]{return 0};i=i+1};return 1}
5func main()->i64{
6 let c:*i64=gv_ctr();let ln:*i64=sys_mmap(16) as *i64
7 let source:*u8=sys_read_file("knowledge/gates/body-semantic-v2-t345.nxmesh",ln);let sourceBytes:i64=ln[0];if (source as i64)==0{return 1}
8 let range:*i64=sys_mmap(16) as *i64;let hdr:i64=nm_tri_base(source);let totalTris:i64=nm_ntris(source)
9 gv_check("actual named skin layer validated with complete source labels",mg_layer_window(source,sourceBytes,"skin",range)==0&&range[0]==nm_u32(source,NM_HDR+16)&&range[1]==nm_u32(source,NM_HDR+20),c)
10 let count:i64=range[1];let path:*u8="knowledge/gates/body-semantic-neutral-t346.glb"
11 gv_check("existing provenance door and neutral-layer converter emit actual source",mg_dispatch_layer_neutral("knowledge/gates/body-semantic-v2-t345.nxmesh",path,"skin",PV_JRNL_DEFAULT)==0,c)
12 let output:*u8=sys_read_file(path,ln);let outputBytes:i64=ln[0];let cx:*i64=sys_mmap(GLD_CONTEXT_WORDS*8) as *i64;if gltf_view_open(output,outputBytes,cx)!=0{return 2}
13 let state:*i64=cx[5] as *i64;let pv:*i64=sys_mmap(GLD_VIEW_WORDS*8) as *i64;let nv:*i64=sys_mmap(GLD_VIEW_WORDS*8) as *i64;let iv:*i64=sys_mmap(GLD_VIEW_WORDS*8) as *i64
14 if gltf_accessor_view(cx,0,state[2],pv)!=0||gltf_accessor_view(cx,1,state[2],nv)!=0||gltf_accessor_view(cx,3,state[2],iv)!=0{return 3}
15 var identical:i64=1;var t:i64=0;while t<count{var k:i64=0;while k<9{if nm_u32(source,hdr+(range[0]+t)*NM_TRI_REC+k*4)!=gll_ru32(cx[8] as *u8,pv[0]+t*36+k*4){identical=0};k=k+1};t=t+1}
16 gv_check("selected raw FLOAT32 position bits and all triangles preserved",identical==1&&pv[1]==count*3&&iv[1]==count*3,c)
17 var ordered:i64=1;t=0;while t<iv[1]{if gll_ru32(cx[8] as *u8,iv[0]+t*iv[2])!=t{ordered=0};t=t+1};gv_check("index order and winding unchanged",ordered,c)
18 let mesh:i64=gld_nth(cx,0,"meshes",0);let primitive:i64=gld_nth(cx,mesh,"primitives",0);let span:*i64=cx[4] as *i64;if gli_member(cx,primitive,"attributes")!=1{return 4};let attributes:i64=span[0]
19 gv_check("neutral mode omits unsupported color binding explicitly",gli_member(cx,attributes,"COLOR_0")==0&&gld_int(cx,primitive,"material",-1)==0,c)
20 let w:*i64=sys_mmap(32) as *i64;let rc:i64=gltf_render_static_descriptor(cx,0,w);let descriptorBytes:i64=w[2];let desc:*u8=sys_mmap(descriptorBytes);w[0]=desc as i64;w[1]=descriptorBytes;w[2]=0;w[3]=0
21 gv_check("canonical static descriptor accepts physical scale and source normals",rc==0&&gltf_render_static_descriptor(cx,0,w)==0&&w[2]==descriptorBytes,c)
22 if atomic_rewrite_checked("knowledge/gates/body-semantic-neutral-t346.json",desc,descriptorBytes)!=0{return 5}
23 var refused:i64=1;if mg_convert_layer_neutral(source,sourceBytes,"absent",path)!=MG_EXIT_REFUSE{refused=0}
24 if mg_convert_layer_neutral(source,hdr+totalTris*NM_TRI_REC,"skin",path)!=MG_EXIT_REFUSE{refused=0}
25 let save:i64=nm_u32(source,hdr);nm_put_u32(source,hdr,0x7fc00000);if mg_convert_layer_neutral(source,sourceBytes,"skin",path)!=MG_EXIT_REFUSE{refused=0};nm_put_u32(source,hdr,save)
26 let labelOff:i64=hdr+totalTris*NM_TRI_REC;let label:i64=nm_u32(source,labelOff);nm_put_u32(source,labelOff,1);if mg_convert_layer_neutral(source,sourceBytes,"skin",path)!=MG_EXIT_REFUSE{refused=0};nm_put_u32(source,labelOff,label)
27 let later:*u8=sys_read_file(path,ln);gv_check("invalid layer/truncation/nonfinite/label refusals preserve prior output",refused==1&&ln[0]==outputBytes&&ng_equal(output,later,outputBytes)==1,c)
28 let fix:*u8="knowledge/gates/mesh-neutral-legacy-fixture-t346.nxmesh";let legacyPath:*u8="knowledge/gates/mesh-neutral-legacy-candidate-t346.glb";if mg_convert(fix,legacyPath)!=0{return 6}
29 let candidate:*u8=sys_read_file(legacyPath,ln);let candidateBytes:i64=ln[0];let baseline:*u8=sys_read_file("knowledge/gates/mesh-neutral-legacy-baseline-t346.glb",ln)
30 gv_check("legacy invocation output remains byte-identical",candidateBytes==ln[0]&&ng_equal(candidate,baseline,candidateBytes)==1,c)
31 gv_puts("source_triangles=");gv_num(totalTris);gv_puts(" selected_triangles=");gv_num(count);gv_puts(" normal_precision=GN_IN_MAX sourceColorCalibration=unknown material=existing-neutral-diagnostic\n")
32 gltf_view_close(cx);return gv_verdict("NXMSH-NEUTRAL-LAYER",c,"explicit mm-to-metre node scale; source unit-normal precision; no anatomical or skin calibration claim")
33}