diff --git a/.gitignore b/.gitignore
index 1bee96c..31d3def 100644
--- a/.gitignore
+++ b/.gitignore
@@ -73,3 +73,5 @@ Thumbs.db
Desktop.ini
compile_commands.json
+
+*.puml
diff --git a/docs/diagrams/.clang-uml b/docs/diagrams/.clang-uml
new file mode 100644
index 0000000..f987536
--- /dev/null
+++ b/docs/diagrams/.clang-uml
@@ -0,0 +1,62 @@
+compilation_database_dir: ../..
+output_directory: .
+diagrams:
+
+ includes:
+ type: include
+ relative_to: ../..
+ glob:
+ - src/*.cpp
+ - include/*.h
+ generate_system_headers: true
+ include:
+ paths:
+ - src
+ - include
+ plantuml:
+ before:
+ - 'skinparam linetype ortho'
+
+ includes_no_external:
+ type: include
+ relative_to: ../..
+ glob:
+ - src/*.cpp
+ - include/*.h
+ include:
+ paths:
+ - src
+ - include
+ plantuml:
+ before:
+ - 'skinparam linetype ortho'
+
+ classes:
+ type: class
+ relative_to: ../..
+ glob:
+ - src/*.cpp
+ - include/*.h
+ include:
+ paths:
+ - src
+ - include
+ plantuml:
+ before:
+ - 'skinparam linetype ortho'
+
+ load_map_example_sequence:
+ type: sequence
+ relative_to: ../..
+ glob:
+ - src/*.cpp
+ - include/*.h
+ include:
+ paths:
+ - src
+ - include
+ start_from:
+ - function: "Map::loadMap(const char *,int,int)"
+ plantuml:
+ before:
+ - 'skinparam linetype ortho'
\ No newline at end of file
diff --git a/docs/diagrams/classes.svg b/docs/diagrams/classes.svg
new file mode 100644
index 0000000..f1154c0
--- /dev/null
+++ b/docs/diagrams/classes.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/diagrams/howto.md b/docs/diagrams/howto.md
new file mode 100644
index 0000000..01260b8
--- /dev/null
+++ b/docs/diagrams/howto.md
@@ -0,0 +1,12 @@
+Need [clang-uml](https://clang-uml.github.io/index.html)
+
+```sh
+clang-uml
+clang-uml --add-compile-flag -I/usr/lib/clang/16/include # might need additional flags, example for my machine
+clang-uml --print-from -n load_map_example_sequence # to get availabel commands for sequence diagram
+```
+
+then use plant uml to generate an actual `.svg` vector graphic
+```sh
+plantuml -tsvg *.puml
+```
\ No newline at end of file
diff --git a/docs/diagrams/includes.svg b/docs/diagrams/includes.svg
new file mode 100644
index 0000000..b2c3675
--- /dev/null
+++ b/docs/diagrams/includes.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/diagrams/includes_no_external.svg b/docs/diagrams/includes_no_external.svg
new file mode 100644
index 0000000..fa6e813
--- /dev/null
+++ b/docs/diagrams/includes_no_external.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/diagrams/sequence.svg b/docs/diagrams/sequence.svg
new file mode 100644
index 0000000..a396b19
--- /dev/null
+++ b/docs/diagrams/sequence.svg
@@ -0,0 +1 @@
+
\ No newline at end of file