# t00053 - Test case for `together` layout hint in class diagram ## Config ```yaml compilation_database_dir: .. output_directory: puml diagrams: t00053_class: type: class glob: - ../../tests/t00053/t00053.cc include: namespaces: - clanguml::t00053 using_namespace: - clanguml::t00053 layout: a: - together: [c,e,f] A: - together: [C,E,F] h: - together: [j] ``` ## Source code File t00053.cc ```cpp namespace clanguml { namespace t00053 { struct a { }; struct b { }; struct c { }; struct d { }; struct e { }; struct f { }; struct g { }; struct A { }; struct B { }; struct C { }; struct D { }; struct E { }; struct F { }; struct G { }; enum class h { hhh }; enum class i { iii }; enum class j { jjj }; } } ``` ## Generated UML diagrams ![t00053_class](./t00053_class.svg "Test case for `together` layout hint in class diagram") ## Generated JSON models ```json { "diagram_type": "class", "elements": [ { "bases": [], "display_name": "clanguml::t00053::a", "id": "347629837292519144", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "a", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 3 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::b", "id": "1376344645244260547", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "b", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 4 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::c", "id": "504463801094568803", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "c", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 5 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::d", "id": "1264455164862224089", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "d", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 6 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::e", "id": "907921963776939609", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "e", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 7 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::f", "id": "1421289128664274084", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "f", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 8 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::g", "id": "200227126708762001", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "g", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 9 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::A", "id": "322642841130459425", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "A", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 11 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::B", "id": "876623970071162908", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "B", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 12 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::C", "id": "1248473990784124468", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "C", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 13 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::D", "id": "470228045297785394", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "D", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 14 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::E", "id": "1038384764221361257", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "E", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 15 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::F", "id": "530253748811039667", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "F", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 16 }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00053::G", "id": "1031614323468823578", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "G", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 17 }, "template_parameters": [], "type": "class" }, { "constants": [ "hhh" ], "display_name": "clanguml::t00053::h", "id": "190978367074032185", "is_nested": false, "name": "h", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 19 }, "type": "enum" }, { "constants": [ "iii" ], "display_name": "clanguml::t00053::i", "id": "1473214620883985930", "is_nested": false, "name": "i", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 20 }, "type": "enum" }, { "constants": [ "jjj" ], "display_name": "clanguml::t00053::j", "id": "965083605473661435", "is_nested": false, "name": "j", "namespace": "clanguml::t00053", "source_location": { "file": "../../tests/t00053/t00053.cc", "line": 21 }, "type": "enum" } ], "metadata": { "clang_uml_version": "0.3.4-28-g3eb1c47", "llvm_version": "Ubuntu clang version 15.0.6", "schema_version": 1 }, "name": "t00053_class", "relationships": [], "using_namespace": "clanguml::t00053" } ```