首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C++中用TetGen加载网格文件

在C++中用TetGen加载网格文件
EN

Stack Overflow用户
提问于 2015-05-11 13:39:47
回答 1查看 785关注 0票数 3

我想在C++中使用TetGen库加载一个网格文件,但我不知道正确的过程,也不知道在我的代码中要激活什么开关才能显示Constrained Delaunay网格。

我尝试了一些使用默认行为加载a dinosaur mesh (from rocq.inria.fr)的基本方法:

代码语言:javascript
复制
tetgenio in, out;
in.firstnumber = 0;
in.load_medit("TetGen\\parasaur1_cut.mesh",0);
tetgenbehavior *b = new tetgenbehavior();
tetrahedralize(b, &in, &out);

形状应该是这样的:

当使用TetView时,它可以完美地工作。但是使用我的代码,我得到了以下结果:

我尝试激活Delaunay约束的Piecewise Linear Complex (plc)属性:

代码语言:javascript
复制
b->plc = 1;

我只从网格中得到了几个部分:

也许有更多的部分,但我不知道如何获得它们。

EN

回答 1

Stack Overflow用户

发布于 2015-09-30 03:34:59

这看起来很像是将四边形网格加载为三角形网格,反之亦然。有一件事是明确的,你将从文件中获得浮点数,因为对象的边界看起来大致正确。确保加载的是严格的三角形或基于四边形的网格。如果它是一种可以加载到Blender中的格式,我建议您加载它,对它进行三角测量,然后重新导出它,以防一个多边形偷偷地进入其中。

另一种可能是索引被一个错误关闭。您确定每个三角形/四边形的顺序正确吗?也就是说,确保加载的是三角形123 123 123,而不是1231 231 231。

另一种可能是,如果这种格式索引所有顶点,然后列出顶点的索引,您可能会正确加载所有顶点,然后获得混乱的三角形/四边形的索引,如前两段所述。我认为情况就是这样,因为看起来你所有的观点都是正确的,但连接它们的线条却大错特错。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30160330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档