namespace geode::detail

namespace detail {

// global functions

template <index_t dimension>
absl::optional<local_index_t> snapping_detection(
    const SolidMesh<dimension>& solid,
    index_t polyhedron,
    const Point<dimension>& point
    );

template <index_t dimension>
absl::optional<local_index_t> snapping_detection(
    const SolidMesh<dimension>& solid,
    const PolyhedronFacet& facet,
    const Point<dimension>& point
    );

template <index_t dimension>
absl::optional<local_index_t> snapping_detection(
    const SurfaceMesh<dimension>& surface,
    index_t polygon,
    const Point<dimension>& point
    );

} // namespace detail