Skip to content

Mesh Traversal #1377

Closed
Closed

Description

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?

  1. 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 );

  2. Internal Face Selection
    Given a closed edge loop (cyan), select all internal faces (yellow):
    image
    image

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions