code wiki / (root) / nx_face_feature_diag_t367.nx

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}