# t30007 - Package diagram layout hints test case ## Config ```yaml compilation_database_dir: .. output_directory: diagrams diagrams: t30007_package: type: package glob: - ../../tests/t30007/t30007.cc include: namespaces: - clanguml::t30007 using_namespace: - clanguml::t30007 layout: C: - up: 'A::AA' - left: B plantuml: before: - "' t30007 test package diagram" ``` ## Source code File t30007.cc ```cpp namespace clanguml { namespace t30007 { namespace B { struct BB { }; } /// \uml{note[top] Compare layout with t30006.} namespace A { namespace AA { struct A1 { B::BB *b; }; } } namespace C { struct CC { }; } /// \uml{note[bottom] Bottom A note.} namespace A { namespace AA { struct A2 { C::CC *c; }; } } } } ``` ## Generated UML diagrams ![t30007_package](./t30007_package.svg "Package diagram layout hints test case") ## Generated JSON models ```json { "diagram_type": "package", "elements": [ { "display_name": "clanguml", "elements": [ { "display_name": "clanguml::t30007", "id": "279529588091010017", "is_deprecated": false, "name": "t30007", "source_location": { "column": 11, "file": "../../tests/t30007/t30007.cc", "line": 2, "translation_unit": "../../tests/t30007/t30007.cc" }, "type": "namespace" } ], "id": "2174271399507040339", "is_deprecated": false, "name": "clanguml", "source_location": { "column": 11, "file": "../../tests/t30007/t30007.cc", "line": 1, "translation_unit": "../../tests/t30007/t30007.cc" }, "type": "namespace" }, { "display_name": "clanguml::t30007::B", "id": "1852704221005355550", "is_deprecated": false, "name": "B", "source_location": { "column": 11, "file": "../../tests/t30007/t30007.cc", "line": 4, "translation_unit": "../../tests/t30007/t30007.cc" }, "type": "namespace" }, { "comment": { "formatted": "\\uml{note[top] Compare layout with t30006.}", "raw": "/// \\uml{note[top] Compare layout with t30006.}" }, "display_name": "clanguml::t30007::A", "elements": [ { "display_name": "clanguml::t30007::A::AA", "id": "357722505818238170", "is_deprecated": false, "name": "AA", "source_location": { "column": 11, "file": "../../tests/t30007/t30007.cc", "line": 10, "translation_unit": "../../tests/t30007/t30007.cc" }, "type": "namespace" } ], "id": "870874615388866345", "is_deprecated": false, "name": "A", "source_location": { "column": 11, "file": "../../tests/t30007/t30007.cc", "line": 9, "translation_unit": "../../tests/t30007/t30007.cc" }, "type": "namespace" }, { "display_name": "clanguml::t30007::C", "id": "937791537887318363", "is_deprecated": false, "name": "C", "source_location": { "column": 11, "file": "../../tests/t30007/t30007.cc", "line": 17, "translation_unit": "../../tests/t30007/t30007.cc" }, "type": "namespace" } ], "metadata": { "clang_uml_version": "0.3.8-32-ge830195", "llvm_version": "Ubuntu clang version 15.0.7", "schema_version": 1 }, "name": "t30007_package", "relationships": [ { "destination": "1852704221005355550", "source": "357722505818238170", "type": "dependency" }, { "destination": "937791537887318363", "source": "357722505818238170", "type": "dependency" } ], "using_namespace": "clanguml::t30007" } ```