nx_garment_boundary_gate_t128.nx source
↩ module page · 40 lines · 2847 B
1import "nx_garment_boundary_candidate_t128.nx"
2import "nx_gate_verdict.nx"
3func gbc_valid(out:*i64,n:i64,dist:*i64)->i64 {
4 var i:i64=0
5 while i<n {let p:i64=i*4;let d:i64=out[p+3]
6 if d<=0||out[p]<0||out[p+1]<0||out[p+2]<0{return 0}
7 if out[p]+out[p+1]+out[p+2]!=d{return 0}
8 if out[p]*dist[0]+out[p+1]*dist[1]+out[p+2]*dist[2]<0{return 0}
9 i=i+1
10 };return 1
11}
12func main()->i64 {
13 let ctr:*i64=gv_ctr();gv_head("GARMENT-BOUNDARY-CLIP-V1")
14 let d:*i64=sys_mmap(24) as *i64;let out:*i64=sys_mmap(24*8) as *i64
15 var i:i64=0;while i<24{out[i]=919;i=i+1}
16 d[0]=1;d[1]=1;d[2]=1
17 var n:i64=gmg_clip_triangle_bary_v1(d,out,16)
18 gv_check("all-inside preserves three original vertices",n==3&&out[0]==1&&out[1]==0&&out[4]==0&&out[5]==1&&out[10]==1,ctr)
19 d[0]=1;d[1]=-1;d[2]=-1;n=gmg_clip_triangle_bary_v1(d,out,16)
20 gv_check("one-inside creates expected three-vertex polygon",n==3&&out[0]==1&&out[2]==1&&out[3]==2&&out[4]==1&&out[7]==1&&out[8]==1&&out[9]==1&&out[11]==2,ctr)
21 gv_check("one-inside exact normalized provenance remains inside",gbc_valid(out,n,d)==1,ctr)
22 d[0]=1;d[1]=1;d[2]=-1;n=gmg_clip_triangle_bary_v1(d,out,16)
23 gv_check("two-inside produces quad in winding order",n==4&&out[0]==1&&out[2]==1&&out[4]==1&&out[9]==1&&out[13]==1&&out[14]==1,ctr)
24 gv_check("two-inside exact normalized provenance remains inside",gbc_valid(out,n,d)==1,ctr)
25 d[0]=2;d[1]=-1;d[2]=-1;n=gmg_clip_triangle_bary_v1(d,out,16)
26 gv_check("non-dyadic crossings retain exact thirds",n==3&&out[0]==1&&out[2]==2&&out[3]==3&&out[8]==1&&out[9]==2&&out[11]==3,ctr)
27 let prior:i64=out[0];out[0]=out[0]+1
28 gv_bite("negative corrupted barycentric sum detected",gbc_valid(out,n,d)==0,0,ctr);out[0]=prior
29 d[0]=-1;d[1]=-1;d[2]=-1;n=gmg_clip_triangle_bary_v1(d,out,16)
30 gv_check("all-outside yields no polygon",n==0,ctr)
31 d[0]=0;n=gmg_clip_triangle_bary_v1(d,out,16);gv_check("single touching vertex is not a face",n==0,ctr)
32 d[1]=0;n=gmg_clip_triangle_bary_v1(d,out,16);gv_check("touching edge is not a face",n==0,ctr)
33 d[2]=1;n=gmg_clip_triangle_bary_v1(d,out,16);gv_check("boundary endpoints retained once",n==3&&gbc_valid(out,n,d)==1,ctr)
34 out[0]=919;gv_check("capacity refusal precedes write",gmg_clip_triangle_bary_v1(d,out,15)==GMG_CLIP_E_CAP&&out[0]==919,ctr)
35 d[0]=GMG_CLIP_DISTANCE_MAX+1;gv_check("range refusal precedes write",gmg_clip_triangle_bary_v1(d,out,16)==GMG_CLIP_E_INPUT&&out[0]==919,ctr)
36 d[0]=GMG_CLIP_DISTANCE_MAX;d[1]=0-GMG_CLIP_DISTANCE_MAX;d[2]=d[1];n=gmg_clip_triangle_bary_v1(d,out,16)
37 gv_check("maximum supported distances preserve exact ratio",n==3&&out[3]==2*GMG_CLIP_DISTANCE_MAX&&gbc_valid(out,n,d)==1,ctr)
38 gv_check("output canary intact",out[16]==919&&out[23]==919,ctr)
39 return gv_verdict("GARMENT-BOUNDARY-CLIP",ctr,"Native scalar-field triangle clipping with exact source barycentrics; no asset consumer or visible improvement claimed")
40}