From f4edeab30c5343d2e6a0a045ebf91156bb3daad8 Mon Sep 17 00:00:00 2001 From: nkwn <148709510+phthtgvi@users.noreply.github.com> Date: Wed, 13 Dec 2023 13:23:12 +0700 Subject: [PATCH] Update Color and Group class diagrams --- docs/diagrams/Color.png | Bin 0 -> 16210 bytes docs/diagrams/Color.puml | 51 +++++++++++++++++++++++++++++++++++++++ docs/diagrams/Group.png | Bin 0 -> 12945 bytes docs/diagrams/Group.puml | 41 +++++++++++++++++++++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 docs/diagrams/Color.png create mode 100644 docs/diagrams/Color.puml create mode 100644 docs/diagrams/Group.png create mode 100644 docs/diagrams/Group.puml diff --git a/docs/diagrams/Color.png b/docs/diagrams/Color.png new file mode 100644 index 0000000000000000000000000000000000000000..578b602985ed0da0ad0f9b7c94f7790a35a36461 GIT binary patch literal 16210 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

H4+i3u1WM_Y@=qTh>Iipt?iJwh={2J``Jy~|O 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 X@?~-xD-wRbfk2?drSE5oYQFkErR0;j literal 0 HcmV?d00001 diff --git a/docs/diagrams/Color.puml b/docs/diagrams/Color.puml new file mode 100644 index 00000000..9a0438e7 --- /dev/null +++ b/docs/diagrams/Color.puml @@ -0,0 +1,51 @@ +@startuml + + + + + +/' Objects '/ + +class mColor { + +mColor() + +mColor(int red, int green, int blue, int alpha) + +mColor(int color) + +a : int + +b : int + +g : int + +r : int + +{static} Black : static const mColor + +{static} Blue : static const mColor + +{static} Cyan : static const mColor + +{static} Green : static const mColor + +{static} Magenta : static const mColor + +{static} Red : static const mColor + +{static} Transparent : static const mColor + +{static} White : static const mColor + +{static} Yellow : static const mColor + +operator<<(std::ostream& os, const mColor& color) : std :: ostream& +} + + + + + +/' Inheritance relationships '/ + + + + +/' Aggregation relationships '/ + +.mColor "9" *-- .mColor + + + + + + +/' Nested objects '/ + + + +@enduml diff --git a/docs/diagrams/Group.png b/docs/diagrams/Group.png new file mode 100644 index 0000000000000000000000000000000000000000..d55e45d18540cd4404362f586c61e99bc01e477a GIT binary patch literal 12945 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 NjKoXv(&vVL{{_HqBS!!L literal 0 HcmV?d00001 diff --git a/docs/diagrams/Group.puml b/docs/diagrams/Group.puml new file mode 100644 index 00000000..a0411e92 --- /dev/null +++ b/docs/diagrams/Group.puml @@ -0,0 +1,41 @@ +@startuml + + + + + +/' Objects '/ + +class Group { + +Group() + +Group(Attributes attributes) + +~Group() + -attributes : Attributes + +getAttributes() : Attributes {query} + +getClass() : std::string {query} + +getElements() : std::vector {query} + -shapes : std::vector + +addElement(SVGElement* shape) : void + +printData() : void {query} +} + + + + + +/' Inheritance relationships '/ + + + + +/' Aggregation relationships '/ + + + + + +/' Nested objects '/ + + + +@enduml