# 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 `tests/t00054/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": "a", "id": "9270950236024596515", "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": "b", "id": "2019335998445389750", "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": "detail", "elements": [ { "bases": [], "display_name": "c", "id": "9344254677301759712", "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": "d", "id": "12556476966260377269", "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": "e", "id": "16300406667702870622", "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": "f", "id": "16989011633586567505", "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": "g", "id": "4763958358723026560", "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": "A", "id": "7341254596028038438", "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": "B", "id": "9886184362964504036", "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": "detail2", "elements": [ { "bases": [], "display_name": "C", "id": "4320439640653423141", "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": "detail3", "elements": [ { "bases": [], "display_name": "D", "id": "10131121575562587828", "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": "E", "id": "1079425719858040844", "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": "F", "id": "3573557537207225693", "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": "G", "id": "10926522093371166825", "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": "detail4", "elements": [ { "constants": [ "hhh" ], "display_name": "h", "id": "12741423994147129467", "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": "i", "id": "3532170587121787176", "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": "j", "id": "3994675475412698780", "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", "package_type": "namespace", "relationships": [], "using_namespace": "clanguml::t00054" } ```