optics op• Data kinds: vector × normals → normals
• Call: import fullseye as fs; fs.ledger.reflect(d, n) (implementation को सीधे call करना हो तो import match3d; match3d.reflect(d, n), registry से लेना हो तो ops3d.get("reflect"))
incident direction d को normal n वाली surface पर specular reflect करता है। r = d − 2(d·n)n।
d, n भीतर unit किए जाते हैं (लंबाई मायने नहीं रखती), इसलिए लौटाया गया r भी unit vector होता है। अंतिम axis को vector माना जाता है, इसलिए (3,) हो या (N,3) का batch, दोनों चलते हैं (2-D का (2,) भी)। n की दिशा मायने नहीं रखती (n और −n से एक ही r)। d को "surface की ओर जाती" दिशा (ray के चलने की दिशा) में दें। zero vector को 1e-12 से भाग देकर 0 ही लौटाया जाता है (exception नहीं आता)।
उपयोग: normal_from_reflection की inverse problem, specular rendering में दृष्टि-रेखा का ray tracing (refract के साथ जोड़ी)।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• sensor_seg — py -3.11 examples_3d/sensor_seg.py
• snell_refraction — py -3.11 examples_3d/snell_refraction.py
normals को input के रूप में लेते हैं)icp_point2plane · compute_fpfh · shot_descriptor · fuse_to_voxel · refract · normal_consistency · ransac_cylinder · orient_normals
optics)refract · fresnel_reflectance · normal_from_reflection · snell_angle
*Provenance: match3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.