MEPP2 Project
Concepts compliance page
dot_inline_dotgraph_5.png
dot_inline_dotgraph_6.png

Diagram references:

Respective compliances are asserted through the following concept checking tests:

Expression CGAL::LCC CGAL::Surface_mesh CGAL::Polyhedron OpenMesh AiF
IncidenceGraph (boost) OK OK OK OK OK
BidirectionalGraph (boost) OK OK OK OK OK
VertexListGraph (boost) OK OK OK OK OK
EdgeListGraph (boost) OK OK OK OK OK
VertexMutableGraph (boost) OK OK OK OK OK
HalfedgeGraph (CGAL) OK OK OK OK OK
HalfedgeListGraph (CGAL) OK OK OK OK NP
FaceGraph (CGAL) OK OK OK OK OK
FaceListGraph (CGAL) OK OK OK OK OK
MutableHalfedgeGraph (CGAL) OK OK OK OK OK
MutableFaceGraph (CGAL) OK OK OK OK OK

Additional partially or totally FAILING concepts

Expression CGAL::LCC CGAL::Surface_mesh CGAL::Polyhedron OpenMesh Aif
EdgeMutableGraph (boost)
add_edge(u, v, g) FAIL FAIL FAIL FAIL OK
remove_edge(u, v ,g) FAIL FAIL FAIL FAIL OK
remove_edge(e, g) OK OK OK OK OK
clear_vertex(u, g) FAIL FAIL FAIL FAIL OK
MutableGraph (boost) FAIL FAIL FAIL FAIL OK
remove_edge(iter, g) FAIL NT FAIL NT NT
remove_out_edge_if(u, p, g) FAIL NT FAIL NT NT
remove_edge_if(p, g) FAIL NT FAIL NT NT
remove_in_edge_if(u, p, g) FAIL NT FAIL NT NT
AdjacencyGraph (boost) FAIL FAIL FAIL NT OK
PropertyGraph (boost) on vertex_point_t
get(p, g) OK OK OK OK OK
get(p, g, x) OK OK OK FAIL OK
put(p, g, x, v) OK OK OK NT OK
PropertyGraph (boost) on halfedge_index_t or face_index_t
get(p, g) NT NT NT NT NT
get(p, g, x) NT NT NT NT NT
put(p, g, x, v) NT NT NT NT NT
ReadablePropertyMap (boost) vertex_index_t

Legend:

  • NP: Not Possible either because against the implementation design or not implemented.
  • NT: Not Tested
  • FAIL: currently failing in the test suite

Open topics:

  • CGAL::HalfedgeGraph documentation announces that it refines (boost::)PropertyGraph. Yet we are unable (not good enough) to assert the concept with any of the data structures at hand...
  • No data structure at hand complies with boost:EdgeMutableGraph and thus with boost::MutableGraph. Refer to the notes (below) for the discrepancies between CGAL::MutableHalfedgeGraph and boost::MutableGraph concepts.