geodesic op• Data kinds: mesh → signal
• Call: import fullseye as fs; fs.ledger.geodesic_mesh(vertices: numpy.ndarray, faces: numpy.ndarray, source: int) -> numpy.ndarray (implementation को सीधे call करना हो तो import geodesic3d; geodesic3d.geodesic_mesh(vertices: numpy.ndarray, faces: numpy.ndarray, source: int) -> numpy.ndarray, registry से लेना हो तो ops3d.get("geodesic_mesh"))
triangle mesh के edge graph पर Dijkstra से source से हर vertex तक geodesic distance। → (V,) float।
हर triangle की 3 edges (0,1),(1,2),(2,0) को undirected edges के रूप में इकट्ठा करके, (min,max) से unique बनाकर, edge length = दोनों सिरों के vertices की Euclid दूरी को weight बनाकर sparse graph बनाता है, और dijkstra(directed=False) से source से shortest path length लौटाता है। d[source] = 0, और जो vertices source से edges द्वारा नहीं जुड़े वे inf होते हैं। इकाई vertex coordinates की इकाई है।
• vertices: (V,3) vertex coordinates (float64 में बदले जाते हैं)। faces: (M,3) vertex indices (int में बदले जाते हैं)।
• source: start vertex का index।
• faces ख़ाली हो तो सभी vertices के लिए inf लौटाता है (source सीमा में हो तो केवल वहाँ 0), और exception नहीं देता।
implementation के मुख्य बिंदु: csr_matrix में एक ही (i,j) बार-बार देने पर weights चुपचाप जुड़ जाते हैं, इसलिए duplicate faces, non-manifold और असंगत winding order वाले mesh में भी दूरी न फूले, इसके लिए edges unique बनाई जाती हैं। degenerate edges (i==j) हटा दी जाती हैं। दूरी edges के साथ polyline length है, इसलिए coarse mesh पर यह असली geodesic distance से लंबी होती है (edges किस तरह चलती हैं उस पर निर्भर anisotropy)। voxel_to_mesh या convex_hull से लौटे (verts, faces) को सीधे दिया जा सकता है।
• 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 के स्रोत।
• pcl_geodesic — py -3.11 examples_3d/pcl_geodesic.py
signal को input के रूप में लेते हैं)geodesic)geodesic_distances · farthest_point_sampling · knn_graph
*Provenance: geodesic3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.