# t00060 - Parents (base classes) diagram filter test case ## Config ```yaml diagrams: t00060_class: type: class glob: - t00060.cc include: namespaces: - clanguml::t00060 parents: - clanguml::t00060::D - clanguml::t00060::H using_namespace: clanguml::t00060 ``` ## Source code File `tests/t00060/t00060.cc` ```cpp namespace clanguml { namespace t00060 { struct A { }; struct B : public A { }; struct C : public A { }; struct D : public B, public C { }; struct E : public C { }; struct F : public D { }; template struct G { T g; }; template struct H : public G { G h; P hh; }; } } ``` ## Generated PlantUML diagrams ![t00060_class](./t00060_class.svg "Parents (base classes) diagram filter test case") ## Generated Mermaid diagrams ![t00060_class](./t00060_class_mermaid.svg "Parents (base classes) diagram filter test case") ## Generated JSON models ```json { "diagram_type": "class", "elements": [ { "bases": [], "display_name": "A", "id": "1373615549846303472", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "A", "namespace": "clanguml::t00060", "source_location": { "column": 8, "file": "t00060.cc", "line": 3, "translation_unit": "t00060.cc" }, "template_parameters": [], "type": "class" }, { "bases": [ { "access": "public", "id": "1373615549846303472", "is_virtual": false, "name": "clanguml::t00060::A" } ], "display_name": "B", "id": "479650368930934571", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "B", "namespace": "clanguml::t00060", "source_location": { "column": 8, "file": "t00060.cc", "line": 4, "translation_unit": "t00060.cc" }, "template_parameters": [], "type": "class" }, { "bases": [ { "access": "public", "id": "1373615549846303472", "is_virtual": false, "name": "clanguml::t00060::A" } ], "display_name": "C", "id": "1827660844127264787", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "C", "namespace": "clanguml::t00060", "source_location": { "column": 8, "file": "t00060.cc", "line": 5, "translation_unit": "t00060.cc" }, "template_parameters": [], "type": "class" }, { "bases": [ { "access": "public", "id": "479650368930934571", "is_virtual": false, "name": "clanguml::t00060::B" }, { "access": "public", "id": "1827660844127264787", "is_virtual": false, "name": "clanguml::t00060::C" } ], "display_name": "D", "id": "1629687372290281981", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "D", "namespace": "clanguml::t00060", "source_location": { "column": 8, "file": "t00060.cc", "line": 6, "translation_unit": "t00060.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "G", "id": "1877304825033069517", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": true, "is_union": false, "members": [ { "access": "public", "is_static": false, "name": "g", "source_location": { "column": 7, "file": "t00060.cc", "line": 11, "translation_unit": "t00060.cc" }, "type": "T" } ], "methods": [], "name": "G", "namespace": "clanguml::t00060", "source_location": { "column": 30, "file": "t00060.cc", "line": 10, "translation_unit": "t00060.cc" }, "template_parameters": [ { "is_variadic": false, "kind": "template_type", "name": "T", "template_parameters": [] } ], "type": "class" }, { "bases": [ { "access": "public", "id": "1877304825033069517", "is_virtual": false, "name": "G" } ], "display_name": "H", "id": "1881610349123495638", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": true, "is_union": false, "members": [ { "access": "public", "is_static": false, "name": "h", "source_location": { "column": 10, "file": "t00060.cc", "line": 15, "translation_unit": "t00060.cc" }, "type": "G" }, { "access": "public", "is_static": false, "name": "hh", "source_location": { "column": 7, "file": "t00060.cc", "line": 16, "translation_unit": "t00060.cc" }, "type": "P" } ], "methods": [], "name": "H", "namespace": "clanguml::t00060", "source_location": { "column": 42, "file": "t00060.cc", "line": 14, "translation_unit": "t00060.cc" }, "template_parameters": [ { "is_variadic": false, "kind": "template_type", "name": "T", "template_parameters": [] }, { "is_variadic": false, "kind": "template_type", "name": "P", "template_parameters": [] } ], "type": "class" } ], "name": "t00060_class", "package_type": "namespace", "relationships": [ { "access": "public", "destination": "1373615549846303472", "source": "479650368930934571", "type": "extension" }, { "access": "public", "destination": "1373615549846303472", "source": "1827660844127264787", "type": "extension" }, { "access": "public", "destination": "479650368930934571", "source": "1629687372290281981", "type": "extension" }, { "access": "public", "destination": "1827660844127264787", "source": "1629687372290281981", "type": "extension" }, { "access": "public", "destination": "1877304825033069517", "label": "h", "source": "1881610349123495638", "type": "aggregation" }, { "access": "public", "destination": "1877304825033069517", "source": "1881610349123495638", "type": "extension" } ], "using_namespace": "clanguml::t00060" } ```