#pragma once #include "vde/mesh/halfedge_mesh.h" #include namespace vde::mesh { struct CurvatureResult { std::vector gaussian; // per-vertex Gaussian curvature std::vector mean; // per-vertex mean curvature std::vector area; // per-vertex Voronoi area }; /// Discrete curvature using Cotan formula (Meyer et al. 2003) /// Gaussian: K(v) = (2π - Σθ_j) / A_v (interior vertices) /// Mean: H(v) = ||Σ(cot α + cot β)·e|| / (2·A_v) CurvatureResult compute_curvature(const HalfedgeMesh& mesh); } // namespace vde::mesh