#pragma once #include "vde/core/point.h" #include "vde/mesh/delaunay_3d.h" #include namespace vde::mesh { using core::Point2D; using core::Point3D; using core::Vector3D; /// Alpha Shapes: extract surface from point cloud /// For alpha → ∞, returns convex hull; for alpha → 0, returns all faces /// @param alpha Radius threshold: faces with circumradius > alpha are removed TetrahedronMesh alpha_shapes(const std::vector& points, double alpha); /// Convert alpha shapes tet mesh to triangle surface std::pair, std::vector>> alpha_shapes_surface(const TetrahedronMesh& tet_mesh); } // namespace vde::mesh