Я пытаюсь уничтожить сетку с помощью OpenMesh. я следовал сам пример, который указывается в Doc:OpenMesh Decimater не уменьшает число вершин
cout << "Vertices: " << mesh->n_vertices() << endl;
DecimaterT<Mesh> decimater(*mesh); // a decimater object, connected to a mesh
ModQuadricT<Mesh>::Handle hModQuadric; // use a quadric module
decimater.add(hModQuadric); // register module at the decimater
decimater.initialize(); // let the decimater initialize the mesh and the
// modules
decimater.decimate_to(15000); // do decimation
cout << "Vertices: " << decimater.mesh().n_vertices() << endl;
метод decimate_to корректно завершается и возвращает 56000, который является число вершин, которые должны были разрушились.
Однако, я могу сказать по журналу, что число вершин на сетке не изменилось. Как это возможно?
Вы сделали свой день. Благодарю. У вас есть указатель на то, где указано это поведение в официальных документах? ^^ – Lake
@Lake Существует общее объяснение [удаления элементов геометрии] (http://www.openmesh.org/media/Documentations/OpenMesh-6.2- Документы/a00060.html). К сожалению, тот факт, что 'decimate_to' не запускает сборку мусора, как представляется, документируется только комментарием исходного кода в реализации в' DecimaterT.cpp'. – jsb
@Lake По состоянию на OpenMesh 6.3 соответствующая документация обновлена. – jsb