2015-05-11 4 views
3

Я хочу загрузить файл сетки, используя библиотеку TetGen в C++, но я не знаю правильной процедуры или того, что переключается для активации в моем коде, чтобы показать сетку Constrained Delaunay.Загрузить файл сетки с TetGen в C++

Я пытался что-то основную нагрузку a dinosaur mesh (from rocq.inria.fr) с поведением по умолчанию:

tetgenio in, out; 
in.firstnumber = 0; 
in.load_medit("TetGen\\parasaur1_cut.mesh",0); 
tetgenbehavior *b = new tetgenbehavior(); 
tetrahedralize(b, &in, &out); 

Форма должна быть такой:

enter image description here

При использовании TetView она прекрасно работает. Но с моим кодом, я получил следующий результат:

dinosaur mesh result

Я попытался активировать Piecewise Linear Complex (plc) свойства для Делона Constraint:

b->plc = 1; 

и я получил только несколько деталей из сетки:

a few more parts from dinosaur mesh

Возможно, есть больше деталей, но я не знаю, как их получить.

+0

Где вы нашли исходную сетку? Можете ли вы предоставить ссылку на него? Правильно ли эта сетка загружается в какой-либо другой программе, и если да, то какой? У вас был успех с более простыми примерами? И т. Д. Это кажется довольно большим случаем для изучения, и, вероятно, было бы лучше двигаться в меньших шагах. – HostileFork

+0

@HostileFork Эй, я пробовал некоторые .poly и .smesh файлы со своего сайта и прекрасно работает, но есть всего несколько примеров. Для .mesh fiels я взял файлы из ссылки, предложенной в документации TetGen https://www.rocq.inria.fr/gamma/download/ (ссылка изменилась во времени). В TetView эти сетки работают отлично. Поэтому я знаю, что это должно быть чем-то вроде того, как я загружаю сетку. – CrSe

+0

* «Итак, я знаю, что это должно быть чем-то вроде того, как я загружаю сетку». * Поскольку TetView, по-видимому, [закрытый и распределенный только для двоичных] (http://wias-berlin.de/software/tetgen/tetview .html), вы можете много чего не знать. Возможно, версия библиотеки TetGen, с которой она была составлена, была старше и работала правильно? Возможно, вы захотите связаться с автором и спросить, не выпустит ли он источник TetView ... ссылаясь на этот вопрос как на один из тех случаев, когда было бы полезно сделать сравнение, пройдя через и увидев, что другое. – HostileFork

ответ

1

Это похоже на то, что вы можете загружать квадратную сетку в виде треугольной сетки или наоборот. Ясно одно: вы получаете поплавки из файла, так как границы объекта выглядят примерно правильно. Убедитесь, что вы загружаете строго треугольную или квадратную сетку. Если это формат, который вы можете загрузить в Blender, я бы порекомендовал его загружать, триангулировать и реэкспортировать, на всякий случай, когда поли пробирается туда.

Другая возможность - это индексирование одной ошибкой. Вы уверены, что получаете каждый треугольник/квадрат в правильном порядке? Иными словами, убедитесь, что вы загружаете треугольники 123 123 123 и NOT 1 231 231 231.

Еще одна возможность, если этот формат индексирует все вершины, а затем перечисляет индексы вершин, вы можете правильно загрузите все вершины, а затем перепутайте индексы треугольников/квадов, как описано в предыдущих двух параграфах. Я думаю, что это так, потому что похоже, что все ваши точки верны, но линии, соединяющие их, неверны.

 Смежные вопросы

  • Нет связанных вопросов^_^