fullseye

reflect_points — 3D symmetry op

使い方

点群を平面(点 plane_point・法線 plane_normal)で鏡映。→ (N,3)。

各点 p の平面からの符号付き距離 d = (p - plane_point) · n(n は正規化した法線)を取り、 p' = p - 2 d n を返す(Householder 鏡映)。平面上の点は動かず、平面の両側の点が入れ替わる。 点の並び順は保たれるので p'[i]p[i] の鏡像。座標の単位はそのまま。

注意: 法線はノルムに 1e-12 を足して割るため、ゼロベクトルを渡しても例外にならず点群がほぼ そのまま返る(fail-closed ではない)。reflection_symmetry_score / detect_reflection_symmetry の内部で使うほか、検出した対称面で欠損側を埋める(鏡像を元の 点群に連結する)形状補完にも使える。

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

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

型が繋がる次の op(points を入力に取れる)

points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d

同カテゴリ(symmetry)

detect_reflection_symmetry · detect_rotational_symmetry · reflection_symmetry_score


Provenance: symmetry3d.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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