- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我用 macports 安装了 cgal:
$ sudo port install cgal
然后使用 cmake 构建我的示例代码:
$ cgal_create_CMakeLists -s out
$ cmake .
$ make
cmake
成功返回:
-- Requested component: MPFR
-- Requested component: GMP
-- Boost version: 1.54.0
-- Configuring done
-- Generating done
-- Build files have been written to: [...]
但是当我尝试在我的 .cpp 文件中使用 Exact_predicates_exact_constructions_kernel_with_sqrt
内核时,make
在链接阶段失败并出现以下错误。 Exact_predicates_exact_constructions_kernel
工作正常。
Linking CXX executable out
Undefined symbols for architecture x86_64:
"CORE::EscapePrec", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::core_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool)", referenced from:
CORE::filteredFp::operator/(CORE::filteredFp const&) const in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Add>::computeApproxValue(CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeApproxValue(CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
CORE::filteredFp::sqrt() const in hello-really-exact.cpp.o
"CORE::defAbsPrec", referenced from:
CORE::Real::Real(CORE::BigRat const&) in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigRat>::BigFloatValue() const in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigRat>::sqrt(CORE::extLong const&) const in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigRat>::sqrt(CORE::extLong const&, CORE::BigFloat const&) const in hello-really-exact.cpp.o
"CORE::defRelPrec", referenced from:
CORE::Real::Real(CORE::BigRat const&) in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigRat>::BigFloatValue() const in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigRat>::sqrt(CORE::extLong const&) const in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigRat>::sqrt(CORE::extLong const&, CORE::BigFloat const&) const in hello-really-exact.cpp.o
"CORE::BigFloatRep::add(CORE::BigFloatRep const&, CORE::BigFloatRep const&)", referenced from:
CORE::Real CORE::_real_add::eval<CORE::BigFloat>(CORE::BigFloat const&, CORE::BigFloat const&) in hello-really-exact.cpp.o
"CORE::BigFloatRep::div(CORE::BigInt const&, CORE::BigInt const&, CORE::extLong const&, CORE::extLong const&)", referenced from:
CORE::BigFloat::approx(CORE::BigRat const&, CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
CORE::BigFloat::BigFloat(CORE::BigRat const&, CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
"CORE::BigFloatRep::sub(CORE::BigFloatRep const&, CORE::BigFloatRep const&)", referenced from:
CORE::Real CORE::_real_sub::eval<CORE::BigFloat>(CORE::BigFloat const&, CORE::BigFloat const&) in hello-really-exact.cpp.o
"CORE::BigFloatRep::sqrt(CORE::BigFloatRep const&, CORE::extLong const&)", referenced from:
CORE::BigFloat::sqrt(CORE::extLong const&) const in hello-really-exact.cpp.o
"CORE::BigFloatRep::sqrt(CORE::BigFloatRep const&, CORE::extLong const&, CORE::BigFloat const&)", referenced from:
CORE::BigFloat::sqrt(CORE::extLong const&, CORE::BigFloat const&) const in hello-really-exact.cpp.o
"CORE::BigFloatRep::trunc(CORE::BigInt const&, CORE::extLong const&, CORE::extLong const&)", referenced from:
CORE::Realbase_for<long>::approx(CORE::extLong const&, CORE::extLong const&) const in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigInt>::approx(CORE::extLong const&, CORE::extLong const&) const in hello-really-exact.cpp.o
"CORE::BigFloatRep::approx(CORE::BigFloatRep const&, CORE::extLong const&, CORE::extLong const&)", referenced from:
CORE::Realbase_for<CORE::BigFloat>::approx(CORE::extLong const&, CORE::extLong const&) const in hello-really-exact.cpp.o
"CORE::InvalidFlag", referenced from:
CORE::sqrt(CORE::Expr const&) in hello-really-exact.cpp.o
CORE::operator/(CORE::Expr const&, CORE::Expr const&) in hello-really-exact.cpp.o
"CORE::fpFilterFlag", referenced from:
CORE::filteredFp::isOK() const in hello-really-exact.cpp.o
"CORE::EscapePrecFlag", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::EscapePrecWarning", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::rationalReduceFlag", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::progressiveEvalFlag", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::defInitialProgressivePrec", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::Add::name", referenced from:
CORE::AddSubRep<CORE::Add>::op() const in hello-really-exact.cpp.o
"CORE::Sub::name", referenced from:
CORE::AddSubRep<CORE::Sub>::op() const in hello-really-exact.cpp.o
"CORE::clLg(long)", referenced from:
CORE::Realbase_for<long>::length() const in hello-really-exact.cpp.o
CORE::Realbase_for<long>::height() const in hello-really-exact.cpp.o
"CORE::clLg(unsigned long)", referenced from:
CORE::Realbase_for<long>::ULV_E(CORE::extLong&, CORE::extLong&, CORE::extLong&, CORE::extLong&, CORE::extLong&, CORE::extLong&) const in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigFloat>::clLgErr() const in hello-really-exact.cpp.o
"CORE::flrLg(long)", referenced from:
CORE::Real::Real(long) in hello-really-exact.cpp.o
"CORE::flrLg(unsigned long)", referenced from:
CORE::_real_binary_op<CORE::_real_add>::eval(CORE::RealRep const&, CORE::RealRep const&) in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigFloat>::flrLgErr() const in hello-really-exact.cpp.o
CORE::_real_binary_op<CORE::_real_sub>::eval(CORE::RealRep const&, CORE::RealRep const&) in hello-really-exact.cpp.o
"CORE::ExprRep::degreeBound()", referenced from:
CORE::sqrt(CORE::Expr const&) in hello-really-exact.cpp.o
CORE::operator/(CORE::Expr const&, CORE::Expr const&) in hello-really-exact.cpp.o
CORE::Expr::cmp(CORE::Expr const&) const in hello-really-exact.cpp.o
"CORE::ExprRep::getAppValue(CORE::extLong const&, CORE::extLong const&)", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Add>::computeApproxValue(CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeApproxValue(CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
"CORE::ExprRep::computeBound()", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::ExprRep::reduceToZero()", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::ExprRep::reduceToBigRat(CORE::BigRat const&)", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::ExprRep::reduceTo(CORE::ExprRep const*)", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::ExprRep::ExprRep()", referenced from:
CORE::DivRep::DivRep(CORE::ExprRep*, CORE::ExprRep*) in hello-really-exact.cpp.o
CORE::MultRep::MultRep(CORE::ExprRep*, CORE::ExprRep*) in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Add>::AddSubRep(CORE::ExprRep*, CORE::ExprRep*) in hello-really-exact.cpp.o
CORE::Expr::operator-() const in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::AddSubRep(CORE::ExprRep*, CORE::ExprRep*) in hello-really-exact.cpp.o
CORE::Expr::Expr(int) in hello-really-exact.cpp.o
CORE::Expr::Expr() in hello-really-exact.cpp.o
...
"CORE::extLong::getNegInfty()", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::_real_binary_op<CORE::_real_add>::eval(CORE::RealRep const&, CORE::RealRep const&) in hello-really-exact.cpp.o
CORE::Real::Real(long) in hello-really-exact.cpp.o
CORE::Realbase_for<long>::flrLgErr() const in hello-really-exact.cpp.o
CORE::Realbase_for<long>::clLgErr() const in hello-really-exact.cpp.o
CORE::Real::Real(CORE::BigInt const&) in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigInt>::flrLgErr() const in hello-really-exact.cpp.o
...
"CORE::extLong::getPosInfty()", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::_real_binary_op<CORE::_real_add>::eval(CORE::RealRep const&, CORE::RealRep const&) in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
CORE::_real_binary_op<CORE::_real_sub>::eval(CORE::RealRep const&, CORE::RealRep const&) in hello-really-exact.cpp.o
"CORE::extLong::operator-=(CORE::extLong const&)", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Add>::computeApproxValue(CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigRat>::ULV_E(CORE::extLong&, CORE::extLong&, CORE::extLong&, CORE::extLong&, CORE::extLong&, CORE::extLong&) const in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeApproxValue(CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
"CORE::extLong::operator*=(CORE::extLong const&)", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
"CORE::extLong::operator+=(CORE::extLong const&)", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Add>::computeApproxValue(CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
CORE::_real_binary_op<CORE::_real_add>::eval(CORE::RealRep const&, CORE::RealRep const&) in hello-really-exact.cpp.o
CORE::Real::Real(CORE::BigRat const&) in hello-really-exact.cpp.o
CORE::Real::Real(CORE::BigFloat const&) in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigFloat>::flrLgErr() const in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigFloat>::clLgErr() const in hello-really-exact.cpp.o
...
"CORE::BinOpRep::initNodeInfo()", referenced from:
vtable for CORE::AddSubRep<CORE::Add> in hello-really-exact.cpp.o
vtable for CORE::AddSubRep<CORE::Sub> in hello-really-exact.cpp.o
"CORE::BinOpRep::count()", referenced from:
vtable for CORE::AddSubRep<CORE::Add> in hello-really-exact.cpp.o
vtable for CORE::AddSubRep<CORE::Sub> in hello-really-exact.cpp.o
"CORE::BinOpRep::clearFlag()", referenced from:
vtable for CORE::AddSubRep<CORE::Add> in hello-really-exact.cpp.o
vtable for CORE::AddSubRep<CORE::Sub> in hello-really-exact.cpp.o
"CORE::io_write(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, __mpq_struct const*)", referenced from:
CORE::Realbase_for<CORE::BigRat>::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const in hello-really-exact.cpp.o
"CORE::io_write(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, __mpz_struct const*)", referenced from:
CORE::Realbase_for<CORE::BigInt>::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const in hello-really-exact.cpp.o
"CORE::AbortFlag", referenced from:
CORE::sqrt(CORE::Expr const&) in hello-really-exact.cpp.o
CORE::operator/(CORE::Expr const&, CORE::Expr const&) in hello-really-exact.cpp.o
"CORE::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, CORE::extLong const&)", referenced from:
CORE::AddSubRep<CORE::Add>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Add>::computeApproxValue(CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeExactFlags() in hello-really-exact.cpp.o
CORE::AddSubRep<CORE::Sub>::computeApproxValue(CORE::extLong const&, CORE::extLong const&) in hello-really-exact.cpp.o
"CORE::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, CORE::ExprRep&)", referenced from:
_main in hello-really-exact.cpp.o
"CORE::BigFloatRep::compareMExp(CORE::BigFloatRep const&) const", referenced from:
CORE::BigFloat::longValue() const in hello-really-exact.cpp.o
"CORE::BigFloatRep::toLong() const", referenced from:
CORE::BigFloat::longValue() const in hello-really-exact.cpp.o
"CORE::BigFloatRep::toBigInt() const", referenced from:
CORE::Realbase_for<CORE::BigFloat>::BigIntValue() const in hello-really-exact.cpp.o
"CORE::BigFloatRep::toDouble() const", referenced from:
CORE::Realbase_for<CORE::BigFloat>::doubleValue() const in hello-really-exact.cpp.o
"CORE::BigFloatRep::toDecimal(unsigned int, bool) const", referenced from:
CORE::Realbase_for<CORE::BigFloat>::toString(long, bool) const in hello-really-exact.cpp.o
CORE::Realbase_for<CORE::BigFloat>::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const in hello-really-exact.cpp.o
"CORE::extLong::operator-() const", referenced from:
CORE::_real_binary_op<CORE::_real_add>::eval(CORE::RealRep const&, CORE::RealRep const&) in hello-really-exact.cpp.o
CORE::_real_binary_op<CORE::_real_sub>::eval(CORE::RealRep const&, CORE::RealRep const&) in hello-really-exact.cpp.o
"CORE::BinOpRep::debugList(int, int) const", referenced from:
vtable for CORE::AddSubRep<CORE::Add> in hello-really-exact.cpp.o
vtable for CORE::AddSubRep<CORE::Sub> in hello-really-exact.cpp.o
"CORE::BinOpRep::debugTree(int, int, int) const", referenced from:
vtable for CORE::AddSubRep<CORE::Add> in hello-really-exact.cpp.o
vtable for CORE::AddSubRep<CORE::Sub> in hello-really-exact.cpp.o
"typeinfo for CORE::BinOpRep", referenced from:
typeinfo for CORE::AddSubRep<CORE::Add> in hello-really-exact.cpp.o
typeinfo for CORE::AddSubRep<CORE::Sub> in hello-really-exact.cpp.o
"vtable for CORE::UnaryOpRep", referenced from:
CORE::UnaryOpRep::~UnaryOpRep() in hello-really-exact.cpp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for CORE::ConstDoubleRep", referenced from:
CORE::Expr::Expr(int) in hello-really-exact.cpp.o
CORE::Expr::Expr() in hello-really-exact.cpp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for CORE::DivRep", referenced from:
CORE::DivRep::DivRep(CORE::ExprRep*, CORE::ExprRep*) in hello-really-exact.cpp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for CORE::NegRep", referenced from:
CORE::Expr::operator-() const in hello-really-exact.cpp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for CORE::MultRep", referenced from:
CORE::MultRep::MultRep(CORE::ExprRep*, CORE::ExprRep*) in hello-really-exact.cpp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for CORE::SqrtRep", referenced from:
CORE::SqrtRep::SqrtRep(CORE::ExprRep*) in hello-really-exact.cpp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for CORE::BinOpRep", referenced from:
CORE::BinOpRep::~BinOpRep() in hello-really-exact.cpp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [out] Error 1
make[1]: *** [CMakeFiles/out.dir/all] Error 2
make: *** [all] Error 2
我在 Mac OS X 10.9.0 上
最佳答案
如 installation documentation 中所述, cgal_create_CMakeLists
采用参数来指定它应该链接的 CGAL 和 BOOST 组件。在这种情况下,您需要 -c Core
。对需要哪些组件的自动检测相当有限,因此您通常需要自己指定它们。
$ cgal_create_CMakeLists -c Core -s out
$ cmake .
$ make
另一种方法是在同一目录中创建一个名为 cgal_cmake_options
的文件,或者在您的主目录中创建一个名为 .cgal_cmake_options_rc
的文件,其中包含:
CGAL_COMPONENT Core
请注意,如果您使用其中的几种方法,脚本不会累积选项。
关于c++ - Mac OS X 上的 CGAL 链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19619569/
我想知道是否有办法让我选择CGAL中使用的浮点位宽。 例如下面的代码只是直接从CGAL手册中拷贝过来的一个凸包例子: #include #include #include typedef CGA
我正在创建一个网格实用程序库,我想包含的功能之一是能够拆分网格的不相交分区。为此,我正在尝试编写一个接受 CGAL::Surface_mesh 的方法。并返回 std::vector ,其中每个元素都
在 CGAL 中有一个任意的多面体(可以是凸面、凹面,甚至是有孔的)如何对它的面进行三角剖分,以便我可以创建 OpenGL 缓冲区进行渲染? 我已经看到convex_hull_3()返回一个具有三角面
我想检查一个点是否位于带孔的多边形内部或外部。具体来说,我感兴趣的是给定点是否位于带孔多边形的“填充区域”内;如果该点位于孔内,我会认为它位于带孔的多边形之外。 我知道有一个 CGAL 函数 chec
假设我有一个非简单的多边形, CGAL 如何帮助我将其划分为一组简单的多边形? 例如,给定一个由一系列 2D 点表示的多边形: (1, 1) (1, -1) (-1, 1) (-1, -1) 我想获得
我正在尝试使用 CGAL 执行一些简单的 2D CSG 操作。这是两个多边形相交的示例。 实际问题是在生成的多边形中追踪每个线段的原点(用颜色标记)。 我想知道这是否可能,也许对 CGAL 本身进行一
我从 CGAL 开始。我想做的是创建坐标为数字 ~ 2^51 的点。 typedef CGAL::Exact_predicates_exact_constructions_kernel K; type
我从 CGAL 开始。我想做的是创建坐标为数字 ~ 2^51 的点。 typedef CGAL::Exact_predicates_exact_constructions_kernel K; type
我是 CGAL 库的新手。但是,我认为这是一个非常适合我想做的事情的包。 我有一组表示 3D 表面的点(如图 1 所示)。 我想在这个表面上安装一个 3d 三角剖分。曲面不是封闭的,因此不占据体积。
我开始学习如何处理复杂与简单的多边形,确定点是否在多边形内部/外部等(例如http://geomalgorithms.com/a09-_intersect-3.html和相关页面)。我希望找到一个 R
这是论坛上的常见问题,但我找不到解决方案。 Windows 10 64 位、CGAL 4.11、Cmake 3.9.2、Boost 1.65.1、Qt5 for MSVS 2017、libQGLVie
我发现 CGAL 示例无法在 Mac OS X 10.9 (Mavericks) 下编译。您可以成功编译主要的 CGAL 4.3 库并链接它,但是当使用某些类型的库时,我会收到如下所示的错误。 具体来
我是 CGAL 的新手,我在 Ubuntu 16.04 上使用 CGAL 4.7-4。我正在尝试编译并运行一个非常简单的 .cpp。这是代码: #include #include int main
在 CGAL 手册中,它说 here : Scattered data interpolation solves the following problem: given measures of a
我刚刚开始在飞机上使用Nef多面体-下面的简单程序创建了一个半平面,由y=0行定义,然后由CGAL Explorer探索该半平面。 #include #include #include #inc
我正在使用 CGAL 进行几何处理。进行 delaunay 三角剖分后,我需要检查一个点是在 2D 网格内部还是外部: 最佳答案 如果你使用过CGAL的二维网格生成器,你可以: 首先,在三角剖分中定位
我一直在使用 LSCM 参数化器来展开网格。我想获得一个具有精确测量值的二维平面模型,这样如果您 Papercut ,就可以将其物理地包裹回原始模型。 似乎 SMP::parameterize() 正
大家好堆垛机, 我想编写一个函数,循环遍历 CGAL 常规 3D 三角剖分的所有有限边,并计算共享该边的所有面(面)对之间的角度。在引用指南中,我找到了一个名为 incident_facets 的方法
如果我在多边形的 2 个顶点之间有一个线段,是否可以使用 CGAL 扩展该线段直到它到达多边形边界? (如果至少一个顶点是反射顶点,就会发生这种情况)。 最佳答案 您可以通过mySegment.sup
我目前正在学习使用 CGAL 执行 3D 三角剖分,到目前为止,我已经通过插入和三角剖分 4 个顶点设法创建了一个正四面体。但是当我尝试遍历四面体的边缘并获得与该边缘对应的顶点时,我将原点作为顶点或先
我是一名优秀的程序员,十分优秀!