Написание простой сетки поверхности с помощью CGAL выводит только 2 грани.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Написание простой сетки поверхности с помощью CGAL выводит только 2 грани.

Сообщение Anonymous »

Я тестирую библиотеку CGAL на машине с Linux. В рамках тестирования я хотел построить простую поверхностную сетку куба.
Это мой тест Catch2:
#include
#include

#include
#include
#include
#include

using Kernel = CGAL::Exact_predicates_inexact_constructions_kernel;
using Mesh = CGAL::Surface_mesh;

// Function to create an approximate parametric sphere
Mesh create_mesh(double size) {
Mesh mesh;

// Cube.
// Define the 8 vertices of the cube
auto v0 = mesh.add_vertex(Kernel::Point_3(0, 0, 0));
auto v1 = mesh.add_vertex(Kernel::Point_3(size, 0, 0));
auto v2 = mesh.add_vertex(Kernel::Point_3(size, size, 0));
auto v3 = mesh.add_vertex(Kernel::Point_3(0, size, 0));
auto v4 = mesh.add_vertex(Kernel::Point_3(0, 0, size));
auto v5 = mesh.add_vertex(Kernel::Point_3(size, 0, size));
auto v6 = mesh.add_vertex(Kernel::Point_3(size, size, size));
auto v7 = mesh.add_vertex(Kernel::Point_3(0, size, size));

// Define the 6 faces of the cube (each face is a quadrilateral made of 2 triangles)
mesh.add_face(v0, v1, v2, v3); // Bottom
mesh.add_face(v4, v5, v6, v7); // Top
mesh.add_face(v0, v4, v7, v3); // Left
mesh.add_face(v1, v5, v6, v2); // Right
mesh.add_face(v0, v4, v5, v1); // Front
mesh.add_face(v3, v7, v6, v2); // Back

return mesh;
}

TEST_CASE("OBJ Export of Cube") {
const std::string filename = "test_output.obj";

// Remove file if it exists, to start fresh
std::remove(filename.c_str());

auto mesh = create_mesh(1);
// Use CGAL to save the combined mesh to OBJ format
CGAL::IO::write_OBJ(filename, mesh);

REQUIRE(std::ifstream(filename).good());
}


Проблема
К моему удивлению, куб не завершен. В OBJ-файл куба записано только две грани. Я этого не понимаю. Что я делаю не так?
Это файл test_output.obj:
# file written from a CGAL tool in Wavefront obj format
# 8 vertices
# 16 halfedges
# 2 facets

# 8 vertices
# ------------------------------------------

v 0 0 0
v 1 0 0
v 1 1 0
v 0 1 0
v 0 0 1
v 1 0 1
v 1 1 1
v 0 1 1

# 2 facets
# ------------------------------------------

f 1 2 3 4
f 5 6 7 8

# End of Wavefront obj format #



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

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

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

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

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

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