小编luc*_*obz的帖子

是否可以考虑在 CGAL Delaunay 三角剖分(或任何其他支持的三角剖分)中共面的点,即使它们不是?

我有一个多面体,面点(对于每个面)基本上是共面的,但 CGAL 说它们不是,这是有道理的,因为这些点是从文件中读取的,并且只有 14 个有效数字,因此它们不会完全共面. 有没有办法考虑假设面点共面的容差,以便不具有某些 1e-17 阶的体积的镶嵌?例如,如何告诉 CGAL 说 (0, 0.0000) 和 (1, 0.0001) 在同一行?甚至有可能吗?

目前,我只是在计算体积后忽略了条子,并得到了一个不错的非退化 tets 的三角剖分(当然,根据 CGAL 标准,所得的船体不会是凸面的),我将其用作分区来集成多面体上的函数。如果这是最快的方法,我很高兴,是吗?我正在使用 EPIC 内核。

感谢任何提示或参考,因为我对 CGAL 还很陌生。谢谢。

c++ delaunay cgal computational-geometry degenerate-dimension

5
推荐指数
0
解决办法
75
查看次数

在大括号中返回构造函数参数?

我是 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)

c++ constructor return curly-braces c++11

5
推荐指数
1
解决办法
95
查看次数

定义 set 方法的 const&amp; 和 &amp;&amp; 版本时的最佳实践是什么?

如果我想为 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++ setter pass-by-reference move-semantics c++20

2
推荐指数
1
解决办法
168
查看次数