nx_face_feature_gate_t367r5.nx source
↩ module page · 35 lines · 1669 B
1// nx_face_feature_gate_t367r5.nx -- exact native buffer reuse pattern with contract checks.
2import "nx_syscalls.nx"
3import "nx_gatekit_lib.nx"
4import "nx_sdfrender.nx"
5import "nx_faceanat.nx"
6const X_USAGE:i64=2
7const X_REFUSE:i64=1
8const X_SIZE:i64=1
9const X_LEFT:i64=0-1
10const X_RIGHT:i64=1
11const X_A0:i64=48
12const X_MINUS:i64=45
13const X_NL:i64=10
14func xnum(t:*u8,v:i64)->i64 {
15 let b:*u8=sys_mmap(96); let d:*u8=sys_mmap(64); var n:i64=0; var x:i64=v
16 if x<0 { b[n]=X_MINUS; n=n+1; x=0-x }; var m:i64=0
17 if x==0 { d[m]=X_A0; m=m+1 }; while x>0 { let q:i64=x/10; d[m]=X_A0+(x-q*10); m=m+1; x=q }
18 while m>0 { m=m-1; b[n]=d[m]; n=n+1 }; b[n]=X_NL; n=n+1; sys_write(1,t,gk_len(t)); sys_write(1,b,n); return v
19}
20func main(argc:i64,argv:*i64)->i64 {
21 if argc!=X_SIZE { return X_USAGE }
22 let b:i64=sys_mmap(sdf_bytes()) as i64
23 xnum("build=",faceanat_build(b))
24 let o:*i64=sys_mmap(FA_PF_O_FIELDS*8+FA_LIP_SLACK) as *i64
25 let l1:i64=fa_palpebral_fissure(b,X_LEFT,o); xnum("l1=",l1); xnum("l1r=",o[FA_PF_O_REASON])
26 let q:*i64=sys_mmap(FA_LIP_O_FIELDS*8+FA_LIP_SLACK) as *i64
27 let p1:i64=fa_lip_ratio(b,q); xnum("p1=",p1); xnum("p1r=",q[FA_LIP_O_REASON])
28 let g:*i64=sys_mmap(6*8) as *i64; g[0]=50;g[1]=100;g[2]=100;g[3]=581;g[4]=0;g[5]=0
29 xnum("g=",faceanat_eye_genes(b,g)); xnum("rebuild=",faceanat_build(b))
30 let l2:i64=fa_palpebral_fissure(b,X_LEFT,o); xnum("l2=",l2); xnum("l2r=",o[FA_PF_O_REASON])
31 let r2:i64=fa_palpebral_fissure(b,X_RIGHT,o); xnum("r2=",r2); xnum("r2r=",o[FA_PF_O_REASON])
32 let p2:i64=fa_lip_ratio(b,q); xnum("p2=",p2); xnum("p2r=",q[FA_LIP_O_REASON])
33 if l1!=0||r2!=0||p1==FA_LIP_UNMEASURED||p2==FA_LIP_UNMEASURED { return X_REFUSE }
34 return 0
35}