Meshlab: Как обновить сетку после выполнения сглаживания VertexCoordLaplacian()C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Meshlab: Как обновить сетку после выполнения сглаживания VertexCoordLaplacian()

Сообщение Anonymous »

В настоящее время я разрабатываю собственный плагин в MeshLab. На основе шаблона edit_select я пытаюсь использовать функцию VertexCoordLaplacian() для выполнения сглаживания Лапласа на выбранных гранях. Функция выполняется успешно и выводит результат, но обновленная сетка не отображается в интерфейсе MeshLab в режиме реального времени.
Вот мой код:

Код: Выделить всё

m.updateDataMask(MeshModel::MM_FACEFACETOPO);
vcg::tri::UpdateTopology::FaceFace(m.cm);

m.updateDataMask(MeshModel::MM_VERTFACETOPO);
vcg::tri::UpdateTopology::VertexFace(m.cm);

tri::UpdateFlags::FaceBorderFromNone(m.cm);

// Update vertex selection based on selected faces
m.cm.svn = tri::UpdateSelection::VertexFromFaceStrict(m.cm);

// Update data mask for coordinates
m.updateDataMask(MeshModel::MM_VERTCOORD);

tri::Smooth::VertexCoordLaplacian(m.cm, 3, true, true); // Vertex smoothing

// Update bounding box and normals
m.updateBoxAndNormals();

// Update data mask to indicate modified vertices and normals
m.updateDataMask(
MeshModel::MM_VERTCOORD |    // Vertex coordinates modified
MeshModel::MM_VERTNORMAL |   // Vertex normals modified
MeshModel::MM_FACENORMAL     // Face normals modified
);
Я не уверен, что этот подход верен. Может ли кто-нибудь подсказать мне, как обеспечить обновление сетки в реальном времени в MeshLab после выполнения таких операций, как сглаживание по Лапласу?
Любые предложения или исправления будут очень признательны!Я пытался вызвать плагин filter_unsharp в edit_select, но мне это не удалось.
Я подозреваю, что причина в том, что я не заплатил достаточно внимания механизму обновления сетки на основе OpenGL в МешЛаб. Еще я пытался отследить процесс режима FP_LAPLACIAN_SMOOTH в filter_unsharp, но не смог найти, где именно он обновляет сетку. Для меня это немного сложно. Кто-нибудь может мне помочь?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -smoothing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»