fullseye

cad_pixel_to_surface — CADMAP raycast op

使い方

画素 (N,2) → CAD 面上の (face_id, 重心座標, 3-D 点)(閉形式)。

画素ごとに視線を作り(camera.py 規約: 中心は整数座標、u = 列、 v = 行)、Möller-Trumbore で全三角形と交差させ、最も手前の当たりを 採る。当たらない画素には face_id = -1 を返し、最寄りの面へは絶対に 丸めない(検査で「欠陥が背景に載っていた」を「面 17 の欠陥」に化けさせない ため)。cull_backfaces=True(既定)では法線がカメラを向いていない面は 当たりにしない。

返りは dict:

cull_backfaces=True(既定)で mesh が閉じていて符号つき体積が負なら、 既定では巻きを直して winding_fixed=True を返す。strict=True にすると 直さず ValueError で拒否する。cull_backfaces=False のときは裏面判定を しないので巻き方向は結果に効かず、検査もせず winding_fixed は常に False(normal は入力の巻きどおりの符号で返る)。詳細は :func:_orient_for_culling

K/R/t を省くと mesh を画像に収める既定カメラを作る (R = I、カメラは重心の -Z 側)。image_size を省くと与えた画素の 外接箱から画像サイズを決める — 既定カメラが画素のある場所を見るように するためで、K を明示したときは in_image 判定にしか効かない。

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

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

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

同カテゴリ(raycast)


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

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