nx_face_feature_diag_t367.nx source
↩ module page · 39 lines · 1927 B
1// nx_face_feature_diag_t367.nx -- diagnostic candidate; no publication or serving registration.
2import "nx_syscalls.nx"
3import "nx_gatekit_lib.nx"
4import "nx_faceanat.nx"
5import "nx_sdfrender.nx"
6const D_FIELDS: i64 = 11
7const D_BYTES: i64 = D_FIELDS * 8
8const D_LEFT: i64 = 0 - 1
9const D_RIGHT: i64 = 1
10const D_ASCII0: i64 = 48
11const D_MINUS: i64 = 45
12const D_NL: i64 = 10
13func dnum(tag: *u8, v: i64) -> i64 {
14 let b: *u8 = sys_mmap(96)
15 let d: *u8 = sys_mmap(64)
16 var n: i64 = 0
17 var x: i64 = v
18 if x < 0 { b[n] = D_MINUS; n = n + 1; x = 0 - x }
19 var m: i64 = 0
20 if x == 0 { d[m] = D_ASCII0; m = m + 1 }
21 while x > 0 { let q: i64 = x / 10; d[m] = D_ASCII0 + (x - q * 10); m = m + 1; x = q }
22 while m > 0 { m = m - 1; b[n] = d[m]; n = n + 1 }
23 b[n] = D_NL; n = n + 1
24 sys_write(1, tag, gk_len(tag)); sys_write(1, b, n)
25 return 0
26}
27func main(argc: i64, argv: *i64) -> i64 {
28 let b: i64 = sys_mmap(sdf_bytes()) as i64
29 dnum("build=", faceanat_build(b))
30 let o: *i64 = sys_mmap(FA_PF_O_FIELDS * 8 + FA_LIP_SLACK) as *i64
31 let lr: i64 = fa_palpebral_fissure(b, D_LEFT, o)
32 dnum("left_return=", lr); dnum("left_reason=", o[FA_PF_O_REASON]); dnum("left_med_y=", o[FA_PF_O_MED_Y]); dnum("left_lat_y=", o[FA_PF_O_LAT_Y]); dnum("left_width=", o[FA_PF_O_WIDTH]); dnum("left_peak_depth=", o[FA_PF_O_PEAK_D])
33 let rr: i64 = fa_palpebral_fissure(b, D_RIGHT, o)
34 dnum("right_return=", rr); dnum("right_reason=", o[FA_PF_O_REASON]); dnum("right_med_y=", o[FA_PF_O_MED_Y]); dnum("right_lat_y=", o[FA_PF_O_LAT_Y]); dnum("right_width=", o[FA_PF_O_WIDTH])
35 let lip: *i64 = sys_mmap(FA_LIP_O_FIELDS * 8 + FA_LIP_SLACK) as *i64
36 let lpr: i64 = fa_lip_ratio(b, lip)
37 dnum("lip_return=", lpr); dnum("lip_reason=", lip[FA_LIP_O_REASON]); dnum("lip_upper=", lip[FA_LIP_O_UPPER_H]); dnum("lip_lower=", lip[FA_LIP_O_LOWER_H]); dnum("lip_stomion=", lip[FA_LIP_O_STOMION])
38 return 0
39}