Как написать файл .mlp (проект meshlab) на C ++?

В настоящее время я пытаюсь открыть проект .mlp с помощью meshlab, который создается / пишется из программы на c ++ (все файлы, например, mesh, texture и .mlp находятся в одной папке).

Я пишу проект .mlp следующим образом:

wofstream myfile;
if (myfile.is_open())
{
myfile << L"<!DOCTYPE MeshLabDocument>\n<MeshLabProject>\n <MeshGroup>\n";
//[...]
myfile.close();

}

Проблема в том, что конечный файл не может быть открыт с помощью meshlab или он открыт, но не правильно: это показывает, что моя сетка загружена, но нет сетки / сетки с 0 вершинами.

Чтобы проверить на ошибки, я создал пример проекта в meshlab и сравнил полученный файл .mlp с моим в c ++ созданном файле .mlp: они выглядят одинаково (только значения матриц вращения / перевода немного отличаются).

Размер файла отличается на несколько байт (между 10 и 18), поэтому я добавил немного кода (нашел Вот) чтобы получить кодировку в UTF8:

myfile.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t, 0x10ffff, std::generate_header>));

К сожалению, это не решило проблему, и meshlab все еще не может прочитать мой проект …

Если у кого-то есть какие-либо советы или даже решение этой проблемы, я был бы очень благодарен!



К тому же:
Неработающий .mlp выглядит так:

<!DOCTYPE MeshLabDocument>
<MeshLabProject>
<MeshGroup>
<MLMesh filename="MeshedReconstruction1.ply" label="MeshedReconstruction1.ply">
<MLMatrix44>
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
</MLMatrix44>
</MLMesh>
</MeshGroup>
<RasterGroup>
<MLRaster label="examplePic1.png">
<VCGCamera RotationMatrix="0.999985 -0.005109 0.002027 0.000000 0.005126 0.999953 -0.008233 0.000000 -0.001985 0.008243 0.999964 0.000000 0 0 0 1" CenterPx="960 540" ViewportPx="1920 1080" TranslationVector="0.005810 -0.001382 -0.001205 1.000000" FocalMm="36.653561" LensDistortion="0 0" PixelSizeMm="0.0319256 0.0319256" CameraType="0"/>
<Plane semantic="1" fileName="examplePic1.png"/>
</MLRaster>
</RasterGroup>
</MeshLabProject>

Рабочий .mlp выглядит так:

<!DOCTYPE MeshLabDocument>
<MeshLabProject>
<MeshGroup>
<MLMesh filename="MeshedReconstruction1.ply" label="MeshedReconstruction1.ply">
<MLMatrix44>
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
</MLMatrix44>
</MLMesh>
</MeshGroup>
<RasterGroup>
<MLRaster label="examplePic1.png">
<VCGCamera RotationMatrix="0.999683 0.0245459 0.00566618 0 -0.0245495 0.999699 0.000560548 0 -0.00565071 -0.000699472 0.999984 0 0 0 0 1 " CenterPx="960 540" ViewportPx="1920 1080" TranslationVector="-0.0273756 0.00583069 -0.398988 1" FocalMm="46.0408" LensDistortion="0 0" PixelSizeMm="0.0317889 0.0317889" CameraType="0"/>
<Plane semantic="1" fileName="examplePic1.png"/>
</MLRaster>
</RasterGroup>
</MeshLabProject>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]