#pragma once #include "vde/mesh/halfedge_mesh.h" #include "vde/core/point.h" #include namespace vde::mesh { using core::Point2D; using core::Point3D; using core::Vector3D; /// Tutte embedding (harmonic parameterization) for a mesh with fixed boundary /// Boundary vertices are mapped to a circle; interior vertices are solved via Laplacian /// Returns per-vertex UV coordinates as Point2D [[nodiscard]] std::vector tutte_parameterization(const HalfedgeMesh& mesh); /// LSCM (Least Squares Conformal Maps) — simplified version [[nodiscard]] std::vector lscm_parameterization(const HalfedgeMesh& mesh); } // namespace vde::mesh