visibility op• 데이터 종류: mesh → indices
• 호출: import fullseye as fs; fs.ledger.cad_visible_faces(mesh, K=None, R=None, t=None, width=64, height=64, cull_backfaces=True, strict=True)(구현을 직접 호출하려면 import cadmap; cadmap.cad_visible_faces(mesh, K=None, R=None, t=None, width=64, height=64, cull_backfaces=True, strict=True), 원장에서 가져오려면 opscadmap.get("cad_visible_faces"))
이 카메라에서 실제로 보이는 면의 ID(오름차순, indices sort).
영상 격자(width x height, 화소 중심은 정수 좌표)로 광선을 쏘아, 가장앞쪽에 온 면을 모은다. 뒷면(법선이 카메라를 향하지 않음)과, 앞쪽 면에완전히 가려진 면은 들어가지 않는다. 검사 커버리지 — "이 시점에서 CAD의 어느 면을본 것이 되는가" — 를 그대로 반환하는 양이며, mesh_area와 조합하면 "미검사 면적"이 나온다.
격자의 분해능보다 작게 찍히는 면은 놓친다(샘플링이므로 당연). 놓침을 "가려져 있다"로 바꿔 말하지 않기 위해, 반환되는 것은 "보인 면"이지 "보이지 않는 면의 여집합"이 아니다.
★여기만 strict의 기본값이 True(다른 3개는 False). 반환이 맨첨자 배열이므로, 감김을 고쳤다는 사실을 실을 곳이 없기 때문이며, "조용히 고친다"를 피하려면 여기서는 거부할 수밖에 없다. cull_backfaces=True 그대로 안쪽으로 감긴 닫힌 메시를 넘기면 ValueError가 된다. 자동 수정을 원할때는 strict=False를 호출 측에서 명시할 것 — 그때는 사용자가수정을 요구한 것이므로, 반환값에 실리지 않더라도 조용히 한 것은 아니다. cull_backfaces=False라면 감김 방향은 결과에 영향을 주지 않으므로 검사도 하지 않는다.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• defect_to_cad — py -3.11 examples/defect_to_cad.py
indices 를 입력으로 받는 것)—
visibility)—
*Provenance: cadmap.py — CADMAP 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.