polyhedron_clip_halfspace — DRIVE polygrav op

• 데이터 종류: any × any × any → any

• 호출: import fullseye as fs; fs.ledger.polyhedron_clip_halfspace(mesh, point, normal)(구현을 직접 호출하려면 import polygrav; polygrav.polyhedron_clip_halfspace(mesh, point, normal), 원장에서 가져오려면 opsdrive.get("polyhedron_clip_halfspace"))

• GPU: 없음(CPU 참조 구현만)

사용법

닫힌 메시를 평면으로 잘라 (x − point)·normal ≥ 0 쪽을 닫힌 입체로 반환한다 → (vertices, faces).

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

切り口(平面上の多角形)は point からの扇の三角形で塞ぐ。切り口が非凸でも、point が切り口の外でも、扇の三角形は向き付きで重なって打ち消し合うので、面について線形な量(polyhedron_gravity の重力・ mesh_volume の体積・重心)はそのまま正しい(見た目の三角形は重なることがある)。辺と平面の交点は辺ごとに 1 回だけ作るので、返りのメッシュは有向辺がちょうど打ち消す(閉じている)。平面の上にちょうど乗る頂点は残す側に数える。

Parameters

mesh : (vertices (N,3), faces (M,3))

閉じた三角形メッシュ(外向きの巻き)。

point : (3,)

平面上の 1 点(切り口の扇の中心にもなる)。

normal : (3,)

残す側を向く平面の法線(正規化する)。

Returns

(vertices (N',3), faces (M',3))

残した側の閉じたメッシュ(使わない頂点は落とす)。切り口の三角形は末尾に並ぶ。

平面がメッシュに交わらない(全部が片側)ときは、残す側に全部あればそのまま、全部が反対側なら ValueError。メッシュが閉じていない・非有限・範囲外の索引も ValueError。空の入力(mesh の面が 0 個)は ValueError で拒否する。

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• itokawa_gravity_tour — py -3.11 examples/itokawa_gravity_tour.py

타입이 이어지는 다음 연산자(any 를 입력으로 받는 것)

course_crank · course_s_curve · course_turnaround · course_slope · course_intersection · course_parallel_parking · course_crossing · course_road

같은 카테고리(polygrav)

polyhedron_gravity


*Provenance: polygrav.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.