# t00054 - Test case for `together` layout hint in class diagram with rendered namespaces ## Config ```yaml diagrams: t00054_class: type: class glob: - t00054.cc include: namespaces: - clanguml::t00054 using_namespace: clanguml::t00054 generate_packages: true layout: a: - together: [f] "detail::c": - together: [detail::e] A: - together: [B,G] "detail2::detail3::D": - together: [detail2::detail3::E] "detail4::h": - together: [detail4::i,detail4::j] ``` ## Source code File t00054.cc ```cpp namespace clanguml { namespace t00054 { struct a { }; struct b { }; namespace detail { struct c { }; struct d { }; struct e { }; } // namespace detail struct f { }; struct g { }; struct A { }; struct B { }; namespace detail2 { struct C { }; namespace detail3 { struct D { }; struct E { }; } // namespace detail3 struct F { }; } // namespace detail2 struct G { }; namespace detail4 { enum class h { hhh }; enum class i { iii }; enum class j { jjj }; } // namespace detail4 } } ``` ## Generated PlantUML diagrams ![t00054_class](./t00054_class.svg "Test case for `together` layout hint in class diagram with rendered namespaces") ## Generated Mermaid diagrams ![t00054_class](./t00054_class_mermaid.svg "Test case for `together` layout hint in class diagram with rendered namespaces") ## Generated JSON models ```json { "diagram_type": "class", "elements": [ { "bases": [], "display_name": "clanguml::t00054::a", "id": "1158868779503074564", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "a", "namespace": "clanguml::t00054", "source_location": { "column": 8, "file": "t00054.cc", "line": 3, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00054::b", "id": "252416999805673718", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "b", "namespace": "clanguml::t00054", "source_location": { "column": 8, "file": "t00054.cc", "line": 4, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "display_name": "clanguml::t00054::detail", "elements": [ { "bases": [], "display_name": "clanguml::t00054::detail::c", "id": "1168031834662719964", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "c", "namespace": "clanguml::t00054::detail", "source_location": { "column": 8, "file": "t00054.cc", "line": 7, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00054::detail::d", "id": "1569559620782547158", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "d", "namespace": "clanguml::t00054::detail", "source_location": { "column": 8, "file": "t00054.cc", "line": 8, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00054::detail::e", "id": "2037550833462858827", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "e", "namespace": "clanguml::t00054::detail", "source_location": { "column": 8, "file": "t00054.cc", "line": 9, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" } ], "name": "detail", "type": "namespace" }, { "bases": [], "display_name": "clanguml::t00054::f", "id": "2123626454198320938", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "f", "namespace": "clanguml::t00054", "source_location": { "column": 8, "file": "t00054.cc", "line": 11, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00054::g", "id": "595494794840378320", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "g", "namespace": "clanguml::t00054", "source_location": { "column": 8, "file": "t00054.cc", "line": 12, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00054::A", "id": "917656824503504804", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "A", "namespace": "clanguml::t00054", "source_location": { "column": 8, "file": "t00054.cc", "line": 14, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00054::B", "id": "1235773045370563004", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "B", "namespace": "clanguml::t00054", "source_location": { "column": 8, "file": "t00054.cc", "line": 15, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "display_name": "clanguml::t00054::detail2", "elements": [ { "bases": [], "display_name": "clanguml::t00054::detail2::C", "id": "540054955081677892", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "C", "namespace": "clanguml::t00054::detail2", "source_location": { "column": 8, "file": "t00054.cc", "line": 18, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "display_name": "clanguml::t00054::detail2::detail3", "elements": [ { "bases": [], "display_name": "clanguml::t00054::detail2::detail3::D", "id": "1266390196945323478", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "D", "namespace": "clanguml::t00054::detail2::detail3", "source_location": { "column": 8, "file": "t00054.cc", "line": 20, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "clanguml::t00054::detail2::detail3::E", "id": "134928214982255105", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "E", "namespace": "clanguml::t00054::detail2::detail3", "source_location": { "column": 8, "file": "t00054.cc", "line": 21, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" } ], "name": "detail3", "type": "namespace" }, { "bases": [], "display_name": "clanguml::t00054::detail2::F", "id": "446694692150903211", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "F", "namespace": "clanguml::t00054::detail2", "source_location": { "column": 8, "file": "t00054.cc", "line": 23, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" } ], "name": "detail2", "type": "namespace" }, { "bases": [], "display_name": "clanguml::t00054::G", "id": "1365815261671395853", "is_abstract": false, "is_nested": false, "is_struct": true, "is_template": false, "is_union": false, "members": [], "methods": [], "name": "G", "namespace": "clanguml::t00054", "source_location": { "column": 8, "file": "t00054.cc", "line": 25, "translation_unit": "t00054.cc" }, "template_parameters": [], "type": "class" }, { "display_name": "clanguml::t00054::detail4", "elements": [ { "constants": [ "hhh" ], "display_name": "clanguml::t00054::detail4::h", "id": "1592677999268391183", "is_nested": false, "name": "h", "namespace": "clanguml::t00054::detail4", "source_location": { "column": 12, "file": "t00054.cc", "line": 28, "translation_unit": "t00054.cc" }, "type": "enum" }, { "constants": [ "iii" ], "display_name": "clanguml::t00054::detail4::i", "id": "441521323390223397", "is_nested": false, "name": "i", "namespace": "clanguml::t00054::detail4", "source_location": { "column": 12, "file": "t00054.cc", "line": 29, "translation_unit": "t00054.cc" }, "type": "enum" }, { "constants": [ "jjj" ], "display_name": "clanguml::t00054::detail4::j", "id": "499334434426587347", "is_nested": false, "name": "j", "namespace": "clanguml::t00054::detail4", "source_location": { "column": 12, "file": "t00054.cc", "line": 30, "translation_unit": "t00054.cc" }, "type": "enum" } ], "name": "detail4", "type": "namespace" } ], "name": "t00054_class", "relationships": [], "using_namespace": "clanguml::t00054" } ```