I'm trying to gain a better understanding of how to navigate the mesh topology. Could you please point me in the right direction when it comes to the following operations?
-
Face/Edge/Vertex Selection
Given a ray, how can I select the intersecting mesh element? The function below returns a MeshTriPoint, is there a way to retrieve the corresponding Face, Edge or Vertex?
|
MRMESH_API std::optional<MeshIntersectionResult> rayMeshIntersect( const MeshPart& meshPart, const Line3f& line, |
|
float rayStart = 0.0f, float rayEnd = FLT_MAX, const IntersectionPrecomputes<float>* prec = nullptr, bool closestIntersect = true ); |
-
Internal Face Selection
Given a closed edge loop (cyan), select all internal faces (yellow):


-
Hole & Boundary Selection
Given a single edge (cyan), select the entire edge loop forming the hole boundary (yellow). Same applies to external boundaries:


-
Expanding/Shrinking Selection
Given an arbitrary amount of selected faces expand or shrink the selection to include the neighboring faces:


I'm trying to gain a better understanding of how to navigate the mesh topology. Could you please point me in the right direction when it comes to the following operations?
Face/Edge/Vertex Selection
Given a ray, how can I select the intersecting mesh element? The function below returns a
MeshTriPoint, is there a way to retrieve the corresponding Face, Edge or Vertex?MeshLib/source/MRMesh/MRMeshIntersect.h
Lines 30 to 31 in 20f169b
Internal Face Selection


Given a closed edge loop (cyan), select all internal faces (yellow):
Hole & Boundary Selection


Given a single edge (cyan), select the entire edge loop forming the hole boundary (yellow). Same applies to external boundaries:
Expanding/Shrinking Selection


Given an arbitrary amount of selected faces expand or shrink the selection to include the neighboring faces: