nx_faceanat.nx
buildroot/runtime/nx_faceanat.nx
about
dependencies 2 imports · 26 importers
diagram shows first 10 each side; +0 more imports, +16 more importers in the complete lists below.
imports: nx_syscalls.nxnx_sdfrender.nx
imported by: nx_eline_gate.nxnx_face_feature_diag_t367.nxnx_face_feature_diag_t368.nxnx_face_feature_gate_t367.nxnx_face_feature_gate_t367r1.nxnx_face_feature_gate_t367r2.nxnx_face_feature_gate_t367r3.nxnx_face_feature_gate_t367r4.nxnx_face_feature_gate_t367r5.nxnx_face_support_capture_t239.nxnx_faceanat_gate.nxnx_faceanat_hires_gate.nxnx_faceanat_mesh_gate.nxnx_faceanat_morph_gate.nxnx_faceanat_neutral_capture_t239.nxnx_faceanat_scale_gate.nxnx_faceanat_stereo_gate.nxnx_faceanat_texbake_gate.nxnx_faceprofile_gate.nxnx_fissure_gate.nxnx_gsplat_aniso_gate.nxnx_gsplat_face_gate.nxnx_gsplat_photofit_gate.nxnx_gsplat_showcase.nxnx_lipratio_gate.nxnx_persongen.nx
structs
| none |
consts
| 18 | const MMU: i64 = 35 |
| 24 | const MMU_X10_DERIVED: i64 = 78 |
| 49 | const FA_EYE_CX: i64 = 258 |
| 50 | const FA_EYE_CY: i64 = 178 |
| 51 | const FA_EYE_CZ: i64 = 0 - 560 |
| 52 | const FA_GLOBE_L: i64 = 18 |
| 53 | const FA_GLOBE_R: i64 = 19 |
| 54 | const FA_LID_L: i64 = 27 |
| 55 | const FA_LID_R: i64 = 28 |
| 56 | const FA_LID_RIN: i64 = 106 |
| 57 | const FA_LID_T: i64 = 20 |
| 58 | const FA_LID_CAP: i64 = 126 |
| 59 | const FA_LID_HALFW: i64 = 110 |
| 60 | const FA_LID_UP: i64 = 50 |
| 61 | const FA_LID_LOW: i64 = 36 |
| 62 | const FA_LID_K: i64 = 6 // a crisp margin: the face default (18) would fillet most of a 20-unit step away |
| 84 | const FA_LIP_U: i64 = 10 |
| 85 | const FA_LIP_L: i64 = 11 |
| 86 | const FA_MOUTH_SLIT: i64 = 20 |
| 87 | const FA_PERIORAL_UP: i64 = 33 |
| 88 | const FA_PERIORAL_LOW: i64 = 34 |
| 89 | const FA_STOMION_Y: i64 = 0 - 390 |
| 90 | const FA_LIP_HALFW_U: i64 = 150 |
| 91 | const FA_LIP_HALFW_L: i64 = 140 |
| 92 | const FA_LIP_H_L: i64 = 78 |
| 93 | const FA_LIP_UL_CANON_PERMIL: i64 = 625 // knowledge/facecanon.conf upper_over_lower_lip target |
| 94 | const FA_LIP_BOW_PERMIL: i64 = 170 |
| 95 | const FA_LIP_H_U: i64 = FA_LIP_H_L * FA_LIP_UL_CANON_PERMIL / (SDF_PERMIL - FA_LIP_BOW_PERMIL) |
| 96 | const FA_LIP_D_U: i64 = 62 |
| 97 | const FA_LIP_D_L: i64 = 66 |
| 98 | const FA_LIP_AXIS_Z_U: i64 = 0 - 650 |
| 99 | const FA_LIP_AXIS_Z_L: i64 = 0 - 640 |
| 100 | const FA_LIP_ARCH: i64 = 90 |
| 101 | const FA_LIP_TAPER: i64 = 350 |
| 102 | const FA_LIP_BOW_HW: i64 = 180 |
| 103 | const FA_LIP_UP_SIDE: i64 = 1 |
| 104 | const FA_LIP_DOWN_SIDE: i64 = 0 - 1 |
| 105 | const FA_LIP_K: i64 = 8 // the vermilion border is crisp; the mound below it blends softly at the face default |
| 106 | const FA_NPARTS: i64 = 35 |
| 107 | const FA_FILL_UP_L: i64 = 29 |
| 108 | const FA_FILL_UP_R: i64 = 30 |
| 109 | const FA_FILL_LOW_L: i64 = 31 |
| 110 | const FA_FILL_LOW_R: i64 = 32 |
| 111 | const FA_FILL_K_UP: i64 = 30 |
| 112 | const FA_FILL_K_LOW: i64 = 40 |
| 113 | const FA_PART_FIELDS: i64 = 6 |
| 114 | const FA_F_CX: i64 = 0 |
| 115 | const FA_F_CY: i64 = 1 |
| 116 | const FA_F_CZ: i64 = 2 |
| 117 | const FA_F_RX: i64 = 3 |
| 118 | const FA_F_RY: i64 = 4 |
| 119 | const FA_F_RZ: i64 = 5 |
| 144 | const FA_EG_TILT: i64 = 0 // canthal tilt in deg10, positive when the lateral canthus sits above the medial |
| 145 | const FA_EG_OPEN: i64 = 1 // opening height, percent of the canon height |
| 146 | const FA_EG_WIDTH: i64 = 2 // opening width, percent of the canon width |
| 147 | const FA_EG_UPSHARE: i64 = 3 // the upper arc's share of the opening height, permil |
| 148 | const FA_EG_DTILT: i64 = 4 // right-minus-left tilt difference, deg10 |
| 149 | const FA_EG_DOPEN: i64 = 5 // right-minus-left opening height difference, percent points |
| 150 | const FA_EG_N: i64 = 6 |
| 151 | const FA_EG_TILT_LO: i64 = 0 - 20 |
| 152 | const FA_EG_TILT_HI: i64 = 100 |
| 153 | const FA_EG_TILT_CANON: i64 = 50 |
| 154 | const FA_EG_OPEN_LO: i64 = 80 |
| 155 | const FA_EG_OPEN_HI: i64 = 120 |
| 156 | const FA_EG_WIDTH_LO: i64 = 92 |
| 157 | const FA_EG_WIDTH_HI: i64 = 108 |
| 158 | const FA_EG_PCT_CANON: i64 = 100 |
| 159 | const FA_EG_UPSHARE_LO: i64 = 540 |
| 160 | const FA_EG_UPSHARE_HI: i64 = 640 |
| 161 | const FA_EG_DTILT_LO: i64 = 0 - 10 |
| 162 | const FA_EG_DTILT_HI: i64 = 10 |
| 163 | const FA_EG_DOPEN_LO: i64 = 0 - 4 |
| 164 | const FA_EG_DOPEN_HI: i64 = 4 |
| 165 | const FA_EG_PERMIL: i64 = 1000 |
| 166 | const FA_EG_DEG10_HALF_TURN: i64 = 1800 // deg10 in half a turn: rad4096 = deg10 * IT_PI / 1800 |
| 517 | const FA_LIP_UNMEASURED: i64 = 0 - 1 |
| 518 | const FA_LIP_Y_TOP: i64 = 0 - 180 |
| 536 | const FA_LIP_Y_BOT: i64 = 0 - 640 |
| 537 | const FA_LIP_YSTEP: i64 = 4 |
| 538 | const FA_LIP_N: i64 = 116 |
| 539 | const FA_LIP_Z_START: i64 = 0 - 1000 |
| 540 | const FA_LIP_Z_END: i64 = 200 |
| 541 | const FA_LIP_ZSTEP: i64 = 2 |
| 542 | const FA_LIP_NOSURF: i64 = 999999 |
| 543 | const FA_LIP_PERMIL: i64 = 1000 |
| 544 | const FA_LIP_O_RATIO: i64 = 0 |
| 545 | const FA_LIP_O_UPPER_H: i64 = 1 |
| 546 | const FA_LIP_O_LOWER_H: i64 = 2 |
| 547 | const FA_LIP_O_STOMION: i64 = 3 |
| 548 | const FA_LIP_O_UPBORDER: i64 = 4 |
| 549 | const FA_LIP_O_LOBORDER: i64 = 5 |
| 550 | const FA_LIP_O_UPPEAK: i64 = 6 |
| 551 | const FA_LIP_O_LOPEAK: i64 = 7 |
| 557 | const FA_LIP_O_REASON: i64 = 8 |
| 560 | const FA_LIP_O_UPSULCUS: i64 = 9 |
| 561 | const FA_LIP_O_LOSULCUS: i64 = 10 |
| 562 | const FA_LIP_O_FIELDS: i64 = 11 |
| 563 | const FA_LIP_R_OK: i64 = 0 |
| 564 | const FA_LIP_R_NOSURF: i64 = 1 |
| 565 | const FA_LIP_R_NO_STOMION: i64 = 2 |
| 566 | const FA_LIP_R_NO_UPPER_PEAK: i64 = 3 |
| 567 | const FA_LIP_R_NO_LOWER_PEAK: i64 = 4 |
| 569 | const FA_LIP_R_NO_PHILTRAL_CREASE: i64 = 5 |
| 570 | const FA_LIP_R_NO_SULCUS_IN_BAND: i64 = 6 |
| 571 | const FA_LIP_R_NO_VERMILION_FIELD: i64 = 7 // the body declares no lip sweep, so there is no vermilion line to find |
| 572 | const FA_LIP_R_NO_UPPER_VERMILION: i64 = 8 // walking up from the stomion the surface never enters the upper vermilion |
| 573 | const FA_LIP_R_NO_LOWER_VERMILION: i64 = 9 // walking down from the stomion the surface never enters the lower vermilion |
| 574 | const FA_LIP_R_VERMILION_PAST_BAND: i64 = 10 // a vermilion runs off the sampled band: its border is the window, not a landmark |
| 575 | const FA_LIP_SLACK: i64 = 16 |
| 606 | const FA_LIP_EDGE_NEVER: i64 = 0 - 1 |
| 607 | const FA_LIP_EDGE_PAST: i64 = 0 - 2 |
| 608 | const FA_LIP_REFINE_STEP: i64 = 1 // one model unit: the landmarks are refined to the grid the part numbers themselves live on |
| 770 | const FA_LS_O_STOMION: i64 = 0 |
| 771 | const FA_LS_O_LS: i64 = 1 // labrale superius: the upper vermilion line at the midline (the bottom of the bow) |
| 772 | const FA_LS_O_LI: i64 = 2 // labrale inferius: the lower vermilion line at the midline |
| 773 | const FA_LS_O_UPPER_H: i64 = 3 |
| 774 | const FA_LS_O_LOWER_H: i64 = 4 |
| 775 | const FA_LS_O_RATIO: i64 = 5 // upper over lower, permil: the canon row upper_over_lower_lip |
| 776 | const FA_LS_O_CHEILION_X: i64 = 6 // the commissure's half-width (each cheilion at +- this x) |
| 777 | const FA_LS_O_CHEILION_Y: i64 = 7 // the seam's height at the commissure |
| 778 | const FA_LS_O_FIELDS: i64 = 8 |
| 813 | const FA_EL_YSTEP: i64 = 4 |
| 816 | const FA_EL_NOSE_Y0: i64 = 0 - 40 |
| 817 | const FA_EL_NOSE_Y1: i64 = 0 - 240 |
| 822 | const FA_EL_POG_Y0: i64 = 0 - 560 |
| 823 | const FA_EL_POG_Y1: i64 = 0 - 660 |
| 824 | const FA_EL_ULIP_Y0: i64 = 0 - 260 |
| 825 | const FA_EL_ULIP_Y1: i64 = 0 - 370 |
| 826 | const FA_EL_LLIP_Y0: i64 = 0 - 400 |
| 827 | const FA_EL_LLIP_Y1: i64 = 0 - 500 |
| 828 | const FA_EL_O_ULIP: i64 = 0 |
| 829 | const FA_EL_O_LLIP: i64 = 1 |
| 830 | const FA_EL_O_PRN_Y: i64 = 2 |
| 831 | const FA_EL_O_PRN_Z: i64 = 3 |
| 832 | const FA_EL_O_POG_Y: i64 = 4 |
| 833 | const FA_EL_O_POG_Z: i64 = 5 |
| 834 | const FA_EL_O_LS_Y: i64 = 6 |
| 835 | const FA_EL_O_LS_Z: i64 = 7 |
| 836 | const FA_EL_O_LI_Y: i64 = 8 |
| 837 | const FA_EL_O_LI_Z: i64 = 9 |
| 838 | const FA_EL_O_REASON: i64 = 10 |
| 846 | const FA_EL_O_ULIP_U: i64 = 11 |
| 847 | const FA_EL_O_LLIP_U: i64 = 12 |
| 848 | const FA_EL_O_FIELDS: i64 = 13 |
| 849 | const FA_EL_R_OK: i64 = 0 |
| 850 | const FA_EL_R_NO_PRONASALE: i64 = 1 |
| 851 | const FA_EL_R_NO_POGONION: i64 = 2 |
| 852 | const FA_EL_R_NO_UPPER_LIP: i64 = 3 |
| 853 | const FA_EL_R_NO_LOWER_LIP: i64 = 4 |
| 854 | const FA_EL_R_DEGENERATE: i64 = 5 |
| 855 | const FA_EL_MM10_NUM: i64 = 100 |
| 919 | const FA_PF_XSTEP: i64 = 4 |
| 920 | const FA_PF_YSTEP: i64 = 4 |
| 921 | const FA_PF_EYE_CX: i64 = 258 |
| 922 | const FA_PF_XSPAN: i64 = 170 |
| 923 | const FA_PF_Y_TOP: i64 = 250 |
| 924 | const FA_PF_Y_BOT: i64 = 110 |
| 927 | const FA_PF_NS: i64 = (FA_PF_Y_TOP - FA_PF_Y_BOT) / FA_PF_YSTEP + 1 |
| 928 | const FA_PF_MIN_STEPS: i64 = 3 |
| 929 | const FA_PF_DY_FLOOR: i64 = 0 // the column record: floor y, opening height, upper crest y, lower crest y |
| 930 | const FA_PF_DY_UP: i64 = 2 |
| 931 | const FA_PF_DY_DN: i64 = 3 |
| 932 | const FA_PF_DY_SLOTS: i64 = 4 |
| 933 | const FA_PF_O_MED_X: i64 = 0 |
| 934 | const FA_PF_O_MED_Y: i64 = 1 |
| 935 | const FA_PF_O_LAT_X: i64 = 2 |
| 936 | const FA_PF_O_LAT_Y: i64 = 3 |
| 937 | const FA_PF_O_WIDTH: i64 = 4 |
| 938 | const FA_PF_O_PEAK_D: i64 = 5 |
| 939 | const FA_PF_O_PEAK_X: i64 = 6 |
| 940 | const FA_PF_O_REASON: i64 = 7 |
| 941 | const FA_PF_O_PEAK_SPAN: i64 = 8 |
| 942 | const FA_PF_O_FIELDS: i64 = 9 |
| 943 | const FA_PF_R_OK: i64 = 0 |
| 944 | const FA_PF_R_NO_SURFACE: i64 = 1 |
| 945 | const FA_PF_R_NO_APERTURE: i64 = 2 |
| 946 | const FA_PF_R_NO_CLOSURE: i64 = 3 |
| 1067 | const FA_CORNER_LATERAL: i64 = 1 |
| 1068 | const FA_CORNER_MEDIAL: i64 = 0 - 1 |
| 1069 | const FA_PF_CORNER_WINDOW: i64 = 24 // three millimetres at the derived scale: wider than the unresolvable tip, narrower than any neighbour |
| 1073 | const FA_PF_CORNER_XSTEP: i64 = 1 |
functions
| 25 | func fa_mmu_x10() -> i64 { return MMU_X10_DERIVED } |
| 26 | func fa_mmu_relief_legacy_x10() -> i64 { return MMU } called by 1: main |
| 33 | func fa_tissue_z(base_z: i64, depth_mm10: i64) -> i64 { return base_z - depth_mm10 * MMU / 100 } // proud toward -z (camera); mm*10 in called by 1: faceanat_build |
| 122 | func fa_is_eye_unit(i: i64) -> i64 |
| 131 | func fa_scale_prim(base: i64, idx: i64, pct: i64) -> i64 |
| 167 | func fa_eye_gene_name(k: i64) -> *u8 |
| 175 | func fa_eye_gene_lo(k: i64) -> i64 |
| 183 | func fa_eye_gene_hi(k: i64) -> i64 |
| 192 | func fa_eye_gene_canon(k: i64) -> i64 |
| 201 | func fa_eye_apply(base: i64, idx: i64, roll_deg10: i64, open_pct: i64, width_pct: i64, upshare: i64) -> i64 |
| 213 | func faceanat_eye_genes(base: i64, eg: *i64) -> i64 |
| 224 | func fa_lip_prims(base: i64, idx: i64, bow: i64, bow_hw: i64, side: i64) -> i64 |
| 234 | func fa_scale_lip_prims(base: i64, idx: i64, pct: i64) -> i64 |
| 239 | func faceanat_build(base: i64) -> i64 called by 27: mainmainmainmainmainmain+21 calls 11: sdf_clear_opssdf_set_floorsdf_set_mtx_ampfa_tissue_zsdf_set_opfa_lip_prims+5 |
| 362 | func faceanat_scale(base: i64, pct: i64) -> i64 |
| 380 | func fa_scale(base: i64, idx: i64, field: i64, pct: i64) -> i64 |
| 387 | func faceanat_morph_width(base: i64, pct: i64) -> i64 |
| 397 | func faceanat_morph_length(base: i64, pct: i64) -> i64 |
| 405 | func faceanat_morph_jaw(base: i64, pct: i64) -> i64 { fa_scale(base,2,3,pct); fa_scale(base,3,3,pct); return 0 } |
| 407 | func faceanat_morph_eyes(base: i64, pct: i64) -> i64 |
| 420 | func faceanat_morph_lips(base: i64, pct: i64) -> i64 { fa_scale(base,10,4,pct); fa_scale(base,11,4,pct); return 0 } |
| 429 | func faceanat_morph_lipratio(base: i64, pct: i64) -> i64 |
| 436 | func faceanat_morph_nose(base: i64, pct: i64) -> i64 { fa_scale(base,4,4,pct); fa_scale(base,5,4,pct); return 0 } |
| 438 | func faceanat_morph_cheek(base: i64, pct: i64) -> i64 { fa_scale(base,6,5,pct); fa_scale(base,7,5,pct); return 0 } |
| 455 | func fa_expr_morph(base: i64, chan: i64, pct: i64) -> i64 |
| 585 | func fa_surface_z(base: i64, x: i64, y: i64) -> i64 |
| 594 | func fa_midline_z(base: i64, y: i64) -> i64 { return fa_surface_z(base, 0, y) } called by 5: fa_lip_border_refinefa_lip_stomion_refinefa_lip_ratiofa_el_apexmain calls 1: fa_surface_z |
| 609 | func fa_lip_vermilion_edge(base: i64, ys: *i64, zs: *i64, si: i64, dir: i64) -> i64 |
| 628 | func fa_lip_border_refine(base: i64, y_in: i64, dir: i64) -> i64 |
| 642 | func fa_lip_stomion_refine(base: i64, y0: i64) -> i64 |
| 657 | func fa_lip_ratio(base: i64, out: *i64) -> i64 |
| 779 | func fa_lip_stated(base: i64, out: *i64) -> i64 |
| 860 | func fa_el_apex(base: i64, y0: i64, y1: i64, out: *i64, oy: i64, oz: i64) -> i64 |
| 879 | func fa_eline_offset(base: i64, out: *i64) -> i64 |
| 971 | func fa_pf_column(base: i64, x: i64, ytop: i64, zs: *i64, dy: *i64) -> i64 |
| 1023 | func fa_lid_corner(base: i64, eye_sign: i64, which: i64, out2: *i64) -> i64 |
| 1043 | func fa_lid_corner_z(base: i64, eye_sign: i64, x: i64, y: i64) -> i64 |
| 1074 | func fa_pf_corner(base: i64, ex: i64, ey: i64, dir: i64, ytop: i64, zs: *i64, dy: *i64, out: *i64, slot_x: i64) -> i64 |
| 1097 | func fa_palpebral_fissure(base: i64, eye_sign: i64, out: *i64) -> i64 |