我有一个多面体,面点(对于每个面)基本上是共面的,但 CGAL 说它们不是,这是有道理的,因为这些点是从文件中读取的,并且只有 14 个有效数字,因此它们不会完全共面. 有没有办法考虑假设面点共面的容差,以便不具有某些 1e-17 阶的体积的镶嵌?例如,如何告诉 CGAL 说 (0, 0.0000) 和 (1, 0.0001) 在同一行?甚至有可能吗?
目前,我只是在计算体积后忽略了条子,并得到了一个不错的非退化 tets 的三角剖分(当然,根据 CGAL 标准,所得的船体不会是凸面的),我将其用作分区来集成多面体上的函数。如果这是最快的方法,我很高兴,是吗?我正在使用 EPIC 内核。
感谢任何提示或参考,因为我对 CGAL 还很陌生。谢谢。
c++ delaunay cgal computational-geometry degenerate-dimension
我是 C++ 的新手,大括号初始化(或统一初始化)确实令人困惑。当函数返回花括号中的参数列表时究竟会发生什么?非常感谢您的澄清。
std::vector<double> foo()
{
return {1, 2}; // is this the same as: std::vector<double>{1, 2} or std::vector<double>(1, 2)? or something else?
}
Run Code Online (Sandbox Code Playgroud) 如果我想为 std::vector 成员(或可移动对象)定义一个类似于 setter 的方法,我可以这样做:
void set(const std::vector<int>& v) { _v = v; }
Run Code Online (Sandbox Code Playgroud)
但我还需要添加
void set(std::vector<int>&& v) { _v = std::move(v); }
Run Code Online (Sandbox Code Playgroud)
正确的?为了处理可以移动的临时对象,最好同时定义两者吗?那么所有二传手都会加倍吗?谢谢。
c++ ×3
c++11 ×1
c++20 ×1
cgal ×1
constructor ×1
curly-braces ×1
delaunay ×1
return ×1
setter ×1