face_normals — 3D mesh_process op

• Data kinds: mesh → normals

• Call: import fullseye as fs; fs.ledger.face_normals(mesh) -> 'np.ndarray' (implementation को सीधे call करना हो तो import mesh_props; mesh_props.face_normals(mesh) -> 'np.ndarray', registry से लेना हो तो ops3d.get("face_normals"))

उपयोग

triangle mesh के face normals (हर triangle का unit normal vector)। → (M,3)।

normal = normalise किया गया cross(v1−v0, v2−v0)। दिशा faces के winding order (winding) से एकरूप ढंग से तय होती है (PCA जैसी sign की अनिश्चितता नहीं)। closed mesh को बाहर की ओर winding से बनाएँ तो सभी normals बाहर की ओर होते हैं।

Args:

mesh: (vertices (N,3), faces (M,3)) का tuple।

Returns:

(M,3) के unit face normals।

Raises:

ValueError: shape अमान्य, index सीमा से बाहर, या degenerate (शून्य area) triangle के कारण normal परिभाषित न हो सके तब।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• blender_interop — Blender के साथ उपयोग — shape बनाएँ, fullseye से मापें (सावधानियाँ: axes, units, ground truth)

संदर्भ (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 करते हैं)

• mesh_props — py -3.11 examples_3d/mesh_props.py

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

icp_point2plane · compute_fpfh · shot_descriptor · fuse_to_voxel · reflect · refract · normal_consistency · ransac_cylinder

इसी category के (mesh_process)

laplacian_smooth · taubin_smooth · decimate_qem · vertex_normals · mesh_area · vertex_curvature · face_areas · mesh_volume


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

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