# t00093 - Test case for bridge design pattern ## Config ```yaml diagrams: t00093_class: type: class glob: - t00093.cc include: namespaces: - clanguml::t00093 using_namespace: clanguml::t00093 ``` ## Source code File `tests/t00093/t00093.cc` ```cpp #include #include #include namespace clanguml { namespace t00093 { class Renderer { public: virtual ~Renderer() = default; virtual void render_circle(double x, double y, double radius) = 0; virtual void render_rectangle( double x, double y, double width, double height) = 0; }; class VectorRenderer : public Renderer { public: void render_circle(double x, double y, double radius) override { } void render_rectangle( double x, double y, double width, double height) override { } void set_stroke_width(double width) { stroke_width = width; } void set_fill_color(const std::string &color) { fill_color = color; } private: double stroke_width{1.0}; std::string fill_color{"black"}; }; class RasterRenderer : public Renderer { public: void render_circle(double x, double y, double radius) override { } void render_rectangle( double x, double y, double width, double height) override { } void set_dpi(int dpi) { this->dpi = dpi; } void set_anti_aliasing(bool enabled) { anti_aliasing = enabled; } private: int dpi{72}; bool anti_aliasing{true}; }; class Shape { public: explicit Shape(std::shared_ptr renderer) : renderer_bridge_(std::move(renderer)) { } virtual ~Shape() = default; virtual void draw() = 0; virtual void move(double dx, double dy) = 0; protected: std::shared_ptr renderer_bridge_; double x_{0.0}; double y_{0.0}; }; class Circle : public Shape { public: Circle(std::shared_ptr renderer, double radius) : Shape(std::move(renderer)) , radius_(radius) { } void draw() override { renderer_bridge_->render_circle(x_, y_, radius_); } void move(double dx, double dy) override { x_ += dx; y_ += dy; } void set_radius(double radius) { radius_ = radius; } double get_radius() const { return radius_; } private: double radius_; }; class Rectangle : public Shape { public: Rectangle(std::shared_ptr renderer, double width, double height) : Shape(std::move(renderer)) , width_(width) , height_(height) { } void draw() override { renderer_bridge_->render_rectangle(x_, y_, width_, height_); } void move(double dx, double dy) override { x_ += dx; y_ += dy; } void set_dimensions(double width, double height) { width_ = width; height_ = height; } double get_width() const { return width_; } double get_height() const { return height_; } private: double width_; double height_; }; class DrawingApplication { public: DrawingApplication(std::shared_ptr renderer) : renderer_(std::move(renderer)) { } void create_circle(double radius) { auto circle = std::make_unique(renderer_, radius); shapes_.push_back(std::move(circle)); } void create_rectangle(double width, double height) { auto rectangle = std::make_unique(renderer_, width, height); shapes_.push_back(std::move(rectangle)); } void draw_all() { for (const auto &shape : shapes_) { shape->draw(); } } void move_all(double dx, double dy) { for (const auto &shape : shapes_) { shape->move(dx, dy); } } private: std::shared_ptr renderer_; std::vector> shapes_; }; } // namespace t00093 } // namespace clanguml ``` ## Generated PlantUML diagrams ![t00093_class](./t00093_class.svg "Test case for bridge design pattern") ## Generated Mermaid diagrams ![t00093_class](./t00093_class_mermaid.svg "Test case for bridge design pattern") ## Generated JSON models ```json { "diagram_type": "class", "elements": [ { "bases": [], "display_name": "Renderer", "id": "7515812632800921463", "is_abstract": true, "is_nested": false, "is_struct": false, "is_template": false, "is_union": false, "members": [], "methods": [ { "access": "public", "display_name": "~Renderer", "is_const": false, "is_consteval": false, "is_constexpr": true, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": true, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "~Renderer", "parameters": [], "source_location": { "column": 13, "file": "t00093.cc", "line": 10, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "render_circle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": true, "is_static": false, "is_virtual": true, "name": "render_circle", "parameters": [ { "name": "x", "type": "double" }, { "name": "y", "type": "double" }, { "name": "radius", "type": "double" } ], "source_location": { "column": 18, "file": "t00093.cc", "line": 11, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "render_rectangle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": true, "is_static": false, "is_virtual": true, "name": "render_rectangle", "parameters": [ { "name": "x", "type": "double" }, { "name": "y", "type": "double" }, { "name": "width", "type": "double" }, { "name": "height", "type": "double" } ], "source_location": { "column": 18, "file": "t00093.cc", "line": 12, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" } ], "name": "Renderer", "namespace": "clanguml::t00093", "source_location": { "column": 7, "file": "t00093.cc", "line": 8, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "class" }, { "bases": [ { "access": "public", "id": "7515812632800921463", "is_virtual": false } ], "display_name": "VectorRenderer", "id": "16028587466059689823", "is_abstract": false, "is_nested": false, "is_struct": false, "is_template": false, "is_union": false, "members": [ { "access": "private", "is_static": false, "name": "stroke_width", "source_location": { "column": 12, "file": "t00093.cc", "line": 28, "translation_unit": "t00093.cc" }, "type": "double" }, { "access": "private", "is_static": false, "name": "fill_color", "source_location": { "column": 17, "file": "t00093.cc", "line": 29, "translation_unit": "t00093.cc" }, "type": "std::string" } ], "methods": [ { "access": "public", "display_name": "render_circle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "render_circle", "parameters": [ { "name": "x", "type": "double" }, { "name": "y", "type": "double" }, { "name": "radius", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 18, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "render_rectangle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "render_rectangle", "parameters": [ { "name": "x", "type": "double" }, { "name": "y", "type": "double" }, { "name": "width", "type": "double" }, { "name": "height", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 19, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "set_stroke_width", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "set_stroke_width", "parameters": [ { "name": "width", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 24, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "set_fill_color", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "set_fill_color", "parameters": [ { "name": "color", "type": "const std::string &" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 25, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" } ], "name": "VectorRenderer", "namespace": "clanguml::t00093", "source_location": { "column": 7, "file": "t00093.cc", "line": 16, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "class" }, { "bases": [ { "access": "public", "id": "7515812632800921463", "is_virtual": false } ], "display_name": "RasterRenderer", "id": "8868095716427291368", "is_abstract": false, "is_nested": false, "is_struct": false, "is_template": false, "is_union": false, "members": [ { "access": "private", "is_static": false, "name": "dpi", "source_location": { "column": 9, "file": "t00093.cc", "line": 44, "translation_unit": "t00093.cc" }, "type": "int" }, { "access": "private", "is_static": false, "name": "anti_aliasing", "source_location": { "column": 10, "file": "t00093.cc", "line": 45, "translation_unit": "t00093.cc" }, "type": "bool" } ], "methods": [ { "access": "public", "display_name": "render_circle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "render_circle", "parameters": [ { "name": "x", "type": "double" }, { "name": "y", "type": "double" }, { "name": "radius", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 34, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "render_rectangle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "render_rectangle", "parameters": [ { "name": "x", "type": "double" }, { "name": "y", "type": "double" }, { "name": "width", "type": "double" }, { "name": "height", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 35, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "set_dpi", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "set_dpi", "parameters": [ { "name": "dpi", "type": "int" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 40, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "set_anti_aliasing", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "set_anti_aliasing", "parameters": [ { "name": "enabled", "type": "bool" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 41, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" } ], "name": "RasterRenderer", "namespace": "clanguml::t00093", "source_location": { "column": 7, "file": "t00093.cc", "line": 32, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "Shape", "id": "15822342402667944661", "is_abstract": true, "is_nested": false, "is_struct": false, "is_template": false, "is_union": false, "members": [ { "access": "protected", "is_static": false, "name": "renderer_bridge_", "source_location": { "column": 31, "file": "t00093.cc", "line": 60, "translation_unit": "t00093.cc" }, "type": "std::shared_ptr" }, { "access": "protected", "is_static": false, "name": "x_", "source_location": { "column": 12, "file": "t00093.cc", "line": 61, "translation_unit": "t00093.cc" }, "type": "double" }, { "access": "protected", "is_static": false, "name": "y_", "source_location": { "column": 12, "file": "t00093.cc", "line": 62, "translation_unit": "t00093.cc" }, "type": "double" } ], "methods": [ { "access": "public", "display_name": "Shape", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": true, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "Shape", "parameters": [ { "name": "renderer", "type": "std::shared_ptr" } ], "source_location": { "column": 14, "file": "t00093.cc", "line": 50, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "~Shape", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": true, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "~Shape", "parameters": [], "source_location": { "column": 13, "file": "t00093.cc", "line": 55, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "draw", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": true, "is_static": false, "is_virtual": true, "name": "draw", "parameters": [], "source_location": { "column": 18, "file": "t00093.cc", "line": 56, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "move", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": true, "is_static": false, "is_virtual": true, "name": "move", "parameters": [ { "name": "dx", "type": "double" }, { "name": "dy", "type": "double" } ], "source_location": { "column": 18, "file": "t00093.cc", "line": 57, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" } ], "name": "Shape", "namespace": "clanguml::t00093", "source_location": { "column": 7, "file": "t00093.cc", "line": 48, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "class" }, { "bases": [ { "access": "public", "id": "15822342402667944661", "is_virtual": false } ], "display_name": "Circle", "id": "15170974831419498086", "is_abstract": false, "is_nested": false, "is_struct": false, "is_template": false, "is_union": false, "members": [ { "access": "private", "is_static": false, "name": "radius_", "source_location": { "column": 12, "file": "t00093.cc", "line": 85, "translation_unit": "t00093.cc" }, "type": "double" } ], "methods": [ { "access": "public", "display_name": "Circle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": true, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "Circle", "parameters": [ { "name": "renderer", "type": "std::shared_ptr" }, { "name": "radius", "type": "double" } ], "source_location": { "column": 5, "file": "t00093.cc", "line": 67, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "draw", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "draw", "parameters": [], "source_location": { "column": 10, "file": "t00093.cc", "line": 73, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "move", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "move", "parameters": [ { "name": "dx", "type": "double" }, { "name": "dy", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 75, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "set_radius", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "set_radius", "parameters": [ { "name": "radius", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 81, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "get_radius", "is_const": true, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "get_radius", "parameters": [], "source_location": { "column": 12, "file": "t00093.cc", "line": 82, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "double" } ], "name": "Circle", "namespace": "clanguml::t00093", "source_location": { "column": 7, "file": "t00093.cc", "line": 65, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "class" }, { "bases": [ { "access": "public", "id": "15822342402667944661", "is_virtual": false } ], "display_name": "Rectangle", "id": "12375550317572858605", "is_abstract": false, "is_nested": false, "is_struct": false, "is_template": false, "is_union": false, "members": [ { "access": "private", "is_static": false, "name": "width_", "source_location": { "column": 12, "file": "t00093.cc", "line": 118, "translation_unit": "t00093.cc" }, "type": "double" }, { "access": "private", "is_static": false, "name": "height_", "source_location": { "column": 12, "file": "t00093.cc", "line": 119, "translation_unit": "t00093.cc" }, "type": "double" } ], "methods": [ { "access": "public", "display_name": "Rectangle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": true, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "Rectangle", "parameters": [ { "name": "renderer", "type": "std::shared_ptr" }, { "name": "width", "type": "double" }, { "name": "height", "type": "double" } ], "source_location": { "column": 5, "file": "t00093.cc", "line": 90, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "draw", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "draw", "parameters": [], "source_location": { "column": 10, "file": "t00093.cc", "line": 97, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "move", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": true, "name": "move", "parameters": [ { "name": "dx", "type": "double" }, { "name": "dy", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 102, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "set_dimensions", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "set_dimensions", "parameters": [ { "name": "width", "type": "double" }, { "name": "height", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 108, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "get_width", "is_const": true, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "get_width", "parameters": [], "source_location": { "column": 12, "file": "t00093.cc", "line": 114, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "double" }, { "access": "public", "display_name": "get_height", "is_const": true, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "get_height", "parameters": [], "source_location": { "column": 12, "file": "t00093.cc", "line": 115, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "double" } ], "name": "Rectangle", "namespace": "clanguml::t00093", "source_location": { "column": 7, "file": "t00093.cc", "line": 88, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "class" }, { "bases": [], "display_name": "DrawingApplication", "id": "17095177180264382182", "is_abstract": false, "is_nested": false, "is_struct": false, "is_template": false, "is_union": false, "members": [ { "access": "private", "is_static": false, "name": "renderer_", "source_location": { "column": 31, "file": "t00093.cc", "line": 156, "translation_unit": "t00093.cc" }, "type": "std::shared_ptr" }, { "access": "private", "is_static": false, "name": "shapes_", "source_location": { "column": 41, "file": "t00093.cc", "line": 157, "translation_unit": "t00093.cc" }, "type": "std::vector>" } ], "methods": [ { "access": "public", "display_name": "DrawingApplication", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": true, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "DrawingApplication", "parameters": [ { "name": "renderer", "type": "std::shared_ptr" } ], "source_location": { "column": 5, "file": "t00093.cc", "line": 124, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "create_circle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "create_circle", "parameters": [ { "name": "radius", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 129, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "create_rectangle", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "create_rectangle", "parameters": [ { "name": "width", "type": "double" }, { "name": "height", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 135, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "draw_all", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "draw_all", "parameters": [], "source_location": { "column": 10, "file": "t00093.cc", "line": 141, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" }, { "access": "public", "display_name": "move_all", "is_const": false, "is_consteval": false, "is_constexpr": false, "is_constructor": false, "is_copy_assignment": false, "is_coroutine": false, "is_defaulted": false, "is_deleted": false, "is_move_assignment": false, "is_noexcept": false, "is_operator": false, "is_pure_virtual": false, "is_static": false, "is_virtual": false, "name": "move_all", "parameters": [ { "name": "dx", "type": "double" }, { "name": "dy", "type": "double" } ], "source_location": { "column": 10, "file": "t00093.cc", "line": 148, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "void" } ], "name": "DrawingApplication", "namespace": "clanguml::t00093", "source_location": { "column": 7, "file": "t00093.cc", "line": 122, "translation_unit": "t00093.cc" }, "template_parameters": [], "type": "class" } ], "name": "t00093_class", "package_type": "namespace", "relationships": [ { "access": "public", "destination": "7515812632800921463", "source": "16028587466059689823", "type": "extension" }, { "access": "public", "destination": "7515812632800921463", "source": "8868095716427291368", "type": "extension" }, { "access": "protected", "destination": "7515812632800921463", "label": "renderer_bridge_", "source": "15822342402667944661", "type": "association" }, { "access": "public", "destination": "7515812632800921463", "source": "15170974831419498086", "type": "dependency" }, { "access": "public", "destination": "15822342402667944661", "source": "15170974831419498086", "type": "extension" }, { "access": "public", "destination": "7515812632800921463", "source": "12375550317572858605", "type": "dependency" }, { "access": "public", "destination": "15822342402667944661", "source": "12375550317572858605", "type": "extension" }, { "access": "private", "destination": "7515812632800921463", "label": "renderer_", "source": "17095177180264382182", "type": "association" }, { "access": "private", "destination": "15822342402667944661", "label": "shapes_", "source": "17095177180264382182", "type": "aggregation" } ], "using_namespace": "clanguml::t00093" } ``` ## Generated GraphML models ```xml clanguml::t00093 class abstract false class false class false class abstract false class false class false class false extension public extension public association renderer_bridge_ protected dependency public extension public dependency public extension public association renderer_ private aggregation shapes_ private ```