我试图使用CGAL创建六面体网格。到目前为止,我能够创建一个六面体,但无法从中提取面和边缘信息。我可以使用point_of_vertex_attribute
typedef CGAL::Linear_cell_complex_for_combinatorial_map<3> LCC;
typedef LCC::Point Point;
.....
Dart_handle dh1 = lcc.make_hexahedron(
Point(0, 0, 0), Point(5, 0, 0), Point(5, 5, 0), Point(0, 5, 0),
Point(0, 5, 4), Point(0, 0, 4), Point(5, 0, 4), Point(5, 5, 4));
Dart_handle dh2 = lcc.make_hexahedron(
Point(5, 0, 0), Point(10, 0, 0), Point(10, 5, 0), Point(5, 5, 0),
Point(5, 5, 4), Point(5, 0, 4), Point(10, 0, 4), Point(10, 5, 4));
lcc.sew<3>(lcc.beta(dh1, 1, 1, 2), lcc.beta(dh2, 2));
答案 0 :(得分:0)
默认情况下(上面的示例就是这种情况),线性单元格复合体没有与其单元格关联的ID。如果您确实需要这些ID,则应定义自己的商品类,并在创建后将其关联。但是通常您不需要这些ID。您可以使用迭代器直接迭代线性单元复合体的单元。 cf.此处的文档doc.cgal.org/latest/Combinatorial_map/index.html。