mesh_edge_lengths — 3D terrain op

• Data kinds: mesh → signal

• Call: import fullseye as fs; fs.ledger.mesh_edge_lengths(V, F, *, per: 'str' = 'vertex') -> 'np.ndarray' (implementation को सीधे call करना हो तो import render3d; render3d.mesh_edge_lengths(V, F, *, per: 'str' = 'vertex') -> 'np.ndarray', registry से लेना हो तो ops3d.get("mesh_edge_lengths"))

उपयोग

triangle mesh की local edge length, हर vertex, हर face या हर unique edge के लिए।

प्रति vertex (N,) (जुड़े edges का mean), प्रति face (M,) (उसके 3 edges का mean) या प्रति unique edge (E,) लौटाता है।

यह mesh की अपनी इकाइयों में उसका resolution map है: कोई region *geometry* के रूप में जो सबसे छोटी wavelength वहन कर सकता है, वह स्थानीय edge की लगभग दोगुनी है (Nyquist), और यही mesh_subdivide (target_edge) और displacement_band_weights उपयोग करते हैं। deterministic; degenerate meshes / अज्ञात per पर fail-closed।

undirected unique edges (E,2) लेकर हर edge की लंबाई (mesh इकाई, float64) एकत्र करता है।

• per='vertex': vertex से जुड़े edges की लंबाई का mean (N,)। जो isolated vertex किसी face में नहीं है उसके कोई edge नहीं होते, इसलिए उसमें चुपचाप सभी edges का mean भर दिया जाता है (शून्य नहीं)।

• per='face': face के 3 edges का mean (M,)।

• per='edge': unique edges की अपनी लंबाई (E,)। edges का क्रम np.unique का lexicographic क्रम है (vertex index के बढ़ते क्रम में), और यह F के क्रम से मेल नहीं खाता।

per ऊपर के 3 के अलावा हो, vertices/faces खाली हों, face index सीमा से बाहर हो या coordinates non-finite हों तो ValueError। displacement_band_weights का local_edge या mesh_subdivide का target_edge तय करने के लिए उपयोग होता है (उदाहरण: median का आधा)।

संदर्भ (sample data, साहित्य)

• 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 के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• itokawa_regolith_hero — py -3.11 examples_3d/itokawa_regolith_hero.py

वे अगले ops जिनसे type जुड़ता है (signal को input के रूप में लेते हैं)

fuse_to_voxel

इसी category के (terrain)

mesh_displace_fbm · terrain_region_mask · mesh_scatter_boulders · mesh_subdivide · displacement_band_weights · mesh_displace_spectrum · bump_normals_fbm


*Provenance: render3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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