Files
茂之钳 4c9ee4f760
CI / Build & Test (push) Failing after 29s
CI / Release Build (push) Failing after 38s
docs: doxygen annotations for curves + mesh + sketch
2026-07-24 11:04:04 +00:00

39 lines
1.3 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#include "vde/mesh/delaunay_2d.h"
#include "vde/core/line.h"
#include <vector>
namespace vde::mesh {
using core::Point2D;
using core::Point3D;
using core::Vector3D;
/**
* @brief 约束 Delaunay 三角化(CDT
*
* 在标准 Delaunay 三角化基础上强制指定的约束边必须出现在三角化中。
* 通过边翻转(edge flip)反复消除与约束边相交的三角形边,直到所有
* 约束边都成为三角形边。
*
* 约束边在输出三角化中一定存在(作为三角形边),但不保证满足
* 空圆性质——靠近约束边的三角形可能违反 Delaunay 条件。
*
* @param points 输入 2D 点集
* @param constraints 约束边列表,每项为 {起点索引, 终点索引}
* @return DelaunayResult 含约束边的三角化结果
*
* @note 约束边不能相交(否则行为未定义);自相交约束需先分割交点
* @code{.cpp}
* // 带孔洞的三角化:约束边标记孔洞边界
* auto result = constrained_delaunay_2d(points,
* {{0,1}, {1,2}, {2,1}, {3,0}});
* @endcode
* @see delaunay_2d
* @ingroup mesh
*/
DelaunayResult constrained_delaunay_2d(
const std::vector<Point2D>& points,
const std::vector<std::pair<int, int>>& constraints);
} // namespace vde::mesh