2026-07-23 05:27:51 +00:00
|
|
|
#pragma once
|
|
|
|
|
#include "vde/mesh/halfedge_mesh.h"
|
|
|
|
|
|
|
|
|
|
namespace vde::mesh {
|
2026-07-23 08:19:24 +00:00
|
|
|
using core::Point2D;
|
|
|
|
|
using core::Point3D;
|
|
|
|
|
using core::Vector3D;
|
2026-07-23 05:27:51 +00:00
|
|
|
|
|
|
|
|
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
|