Skip to content

feat: add static Compute() overloads accepting levelRatio and minCoarseVertices #68

Description

@csparker247

HierarchicalLSCM::setLevelRatio() and setMinCoarseVertices() are only accessible via the instance API. Users who want non-default hierarchy parameters with the static convenience API must construct an instance, configure it, and call compute() instead of the simpler Compute(mesh) form.

Add static overloads:

static void Compute(Mesh::Pointer& mesh, std::size_t levelRatio, std::size_t minCoarseVerts);
static void Compute(Mesh::Pointer& mesh, std::size_t pin0, std::size_t pin1, std::size_t levelRatio, std::size_t minCoarseVerts);

Identified during code review of PR #44 (low priority).

Status (2026-06-15)

PR #93 introduced the PinMap interface, so the second proposed signature was adapted to:

static void Compute(Mesh::Pointer& mesh, const PinMap& pins, std::size_t levelRatio, std::size_t minCoarseVerts);

That overload has been implemented (track A10).

The first overload — Compute(mesh, levelRatio, minCoarseVerts) — cannot be added today: its (Mesh::Pointer&, size_t, size_t) signature collides with the still-present [[deprecated]] Compute(mesh, pin0Idx, pin1Idx) overload. It is blocked by #96 (remove 3.0-deprecated LSCM/HLSCM functions); once that lands, this overload can be added in a follow-up.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions