code wiki / (root) / nx_breast_drape_pose_test.nx

nx_breast_drape_pose_test.nx source

↩ module page · 42 lines · 1836 B

1import "nx_syscalls.nx" 2import "nx_breast_drape_pose.nx" 3 4func main() -> i64 { 5 let result: *i64 = (sys_mmap(NX_DRAPE_RES_FIELDS * 8 + 16)) as *i64 6 7 // T1: Image #46 scenario — LEANING_FORWARD pose but breast shape is 8 // standing-teardrop (height=120, width=110, centroid offset=72). 9 // aspect = 120*1024/110 = 1117 (in standing range, NOT leaning) 10 // centroid = 72*1024/120 = 614 (high, NOT pendant) 11 // Expected for leaning: aspect 1331+, centroid 768+ 12 nx_breast_drape_score(120, 110, 72, 13 NX_DRAPE_POSE_LEANING_FORWARD, result) 14 let v1: i64 = result[NX_DRAPE_RES_VERDICT] 15 if v1 == NX_DRAPE_VERDICT_NATURAL { return 1 } 16 17 // T2: Proper pendant for leaning forward: height=180, width=110, centroid=144. 18 // aspect = 180*1024/110 = 1676 (in leaning range) 19 // centroid = 144*1024/180 = 819 (in leaning range) 20 nx_breast_drape_score(180, 110, 144, 21 NX_DRAPE_POSE_LEANING_FORWARD, result) 22 let v2: i64 = result[NX_DRAPE_RES_VERDICT] 23 if v2 != NX_DRAPE_VERDICT_NATURAL { return 10 } 24 let composite2: i64 = result[NX_DRAPE_RES_COMPOSITE] 25 if composite2 < 768 { return 11 } 26 27 // T3: Lying back — wider than tall expected. 28 // height=80, width=110, centroid=40 -> aspect=744, centroid=512. 29 nx_breast_drape_score(80, 110, 40, 30 NX_DRAPE_POSE_LAYING_BACK, result) 31 let v3: i64 = result[NX_DRAPE_RES_VERDICT] 32 if v3 != NX_DRAPE_VERDICT_NATURAL { return 20 } 33 34 // T4: Standing teardrop classic — height=130, width=110, centroid=85. 35 // aspect=1210, centroid=669. 36 nx_breast_drape_score(130, 110, 85, 37 NX_DRAPE_POSE_STANDING_FACING, result) 38 let v4: i64 = result[NX_DRAPE_RES_VERDICT] 39 if v4 != NX_DRAPE_VERDICT_NATURAL { return 30 } 40 41 return 0 42}