Как написать файл OBJ с нормали лица, используя OpenMesh? - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь экспортировать сетку в виде файла OBJ, используя OpenMesh с нормалями лица.Есть ли способ сделать это?

Документация OpenMesh :: IO показывает, что формат OBJ поддерживает нормали лица.Но когда я пытаюсь экспортировать сетку после запроса нормалей лица, я получаю эту ошибку:

[OBJWriter] : FaceNormal not supported by OBJ Writer

Это моя попытка экспортировать простой тетраэдр, используя нормали лица.

MyMesh mesh;

MyMesh::VertexHandle vhandle[4];
vhandle[0] = mesh.add_vertex(MyMesh::Point(-1, 0, 0));
vhandle[1] = mesh.add_vertex(MyMesh::Point( 1, 0, 0));
vhandle[2] = mesh.add_vertex(MyMesh::Point( 0, 1, 0));
vhandle[3] = mesh.add_vertex(MyMesh::Point( 0, 0, 1));

std::vector<MyMesh::VertexHandle> face_vhandles;

face_vhandles.clear();
face_vhandles.push_back(vhandle[0]);
face_vhandles.push_back(vhandle[1]);
face_vhandles.push_back(vhandle[3]);
mesh.add_face(face_vhandles);

face_vhandles.clear();
face_vhandles.push_back(vhandle[1]);
face_vhandles.push_back(vhandle[2]);
face_vhandles.push_back(vhandle[3]);
mesh.add_face(face_vhandles);

face_vhandles.clear();
face_vhandles.push_back(vhandle[2]);
face_vhandles.push_back(vhandle[0]);
face_vhandles.push_back(vhandle[3]);
mesh.add_face(face_vhandles);

face_vhandles.clear();
face_vhandles.push_back(vhandle[0]);
face_vhandles.push_back(vhandle[2]);
face_vhandles.push_back(vhandle[1]);
mesh.add_face(face_vhandles);

mesh.request_face_normals();

OpenMesh::IO::Options wopt;
wopt += OpenMesh::IO::Options::FaceNormal;

if (!OpenMesh::IO::write_mesh(mesh, "teste.obj", wopt))
{
    return EXIT_FAILURE;
}
...