Разбор файлов .ply без утечек памяти

Я загрузил файлы .ply из Стэнфордского репозитория 3D-сканирования и использую код Стэнфорда. с этой страницы (ply.h, plyfile.c) для их анализа. Однако, глядя на этот код, я вижу, что он изобилует malloc, которые никогда не освобождаются. Я мог бы закрыть глаза и посмотреть в другую сторону, но от этого у меня чешутся зубы.

Я могу придумать два обходных пути:

Один из них заключается в использовании сборщика мусора Ганса Бема или чего-то подобного, который переопределяет malloc, чтобы он делал это внутри сборщика мусора. Я никогда не пользовался этой библиотекой, но, возможно, есть способ заставить ее работать только с malloc в коде Стэнфорда и нигде больше.

Другой обходной путь — использовать другой синтаксический анализатор, предпочтительно C++, с удобным управлением памятью в стиле RAII. Я вижу несколько альтернативных парсеров и конвертеров, перечисленных по ссылке выше, но вместо того, чтобы убить день или два, пытаясь их все, я надеялся получить рекомендацию здесь.

Может ли кто-нибудь порекомендовать способ парсить файлы .ply без утечек памяти, либо сдерживая утечки памяти в синтаксическом анализаторе Стэнфорда, либо используя другой синтаксический анализатор, либо какой-то третий метод, о котором я не подумал?


person SuperElectric    schedule 09.11.2010    source источник


Ответы (3)


Попробуйте также RPly.

person lhf    schedule 14.04.2011

Эта библиотека выглядит многообещающе; пока кто-то другой не ответит на этот вопрос, я буду отмечать это как ответ: http://assimp.sourceforge.net/

person SuperElectric    schedule 08.02.2011

Другая библиотека используется MeshLab.

http://vcg.sourceforge.net/index.php/Tutorial

person ALoopingIcon    schedule 14.04.2011