#pragma once #include "vde/mesh/halfedge_mesh.h" namespace vde::mesh { using core::Point2D; using core::Point3D; using core::Vector3D; struct SimplifyOptions { double target_ratio = 0.5; // Target face ratio (0, 1) int max_iterations = 100; bool preserve_boundary = true; }; /// QEM (Quadric Error Metrics) mesh simplification /// Returns simplified mesh with ~target_ratio * original face count HalfedgeMesh simplify_mesh(const HalfedgeMesh& mesh, const SimplifyOptions& opts = {}); } // namespace vde::mesh