19 lines
595 B
C++
19 lines
595 B
C++
|
|
#pragma once
|
|||
|
|
#include "vde/mesh/halfedge_mesh.h"
|
|||
|
|
#include <vector>
|
|||
|
|
|
|||
|
|
namespace vde::mesh {
|
|||
|
|
|
|||
|
|
struct CurvatureResult {
|
|||
|
|
std::vector<double> gaussian; // per-vertex Gaussian curvature
|
|||
|
|
std::vector<double> mean; // per-vertex mean curvature
|
|||
|
|
std::vector<double> 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
|