fullseye

polyhedron_clip_halfspace — DRIVE polygrav op

使い方

閉じたメッシュを平面で切り、(x − point)·normal ≥ 0 の側を閉じた立体として返す → (vertices, faces)。

切り口(平面上の多角形)は point からの扇の三角形で塞ぐ。切り口が非凸でも、point が切り口の外でも、 扇の三角形は向き付きで重なって打ち消し合うので、面について線形な量(:func: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 で拒否する。

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(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 operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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