aboutsummaryrefslogtreecommitdiff
path: root/docs/class-diag.puml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/class-diag.puml')
-rw-r--r--docs/class-diag.puml39
1 files changed, 34 insertions, 5 deletions
diff --git a/docs/class-diag.puml b/docs/class-diag.puml
index cfa954d..389395a 100644
--- a/docs/class-diag.puml
+++ b/docs/class-diag.puml
@@ -129,10 +129,24 @@ rectangle Group_Model as "Model" <<group>> {
+ remove_artist(Artist &)
+ get_artists() : forward_list<Artist *>
--
- - artists : forward_list<Artist>
+ - artists : forward_list<Artist *>
+ - artist_count : size_t
+ - museum : Museum &
+ --
+ - deleted_artists : forward_list<Artist *>
+ - cleanup()
}
class Tile {
+ data : TileData
+ + color : Color
+ + behavior : uniq<TileBehaviorStrategy>
+ + set_data(TileData &)
+ + set_type(type : const string &)
+ + update()
+ + step(Artist *)
+ + get_neighbor(dx, dy) : Tile *
+ --
+ - museum : Museum &
}
struct TileData {
+ x : unsigned int
@@ -141,8 +155,12 @@ rectangle Group_Model as "Model" <<group>> {
}
class Artist {
+ update()
+ + step : bool
+ + color : Color
+ + data : ArtistData
--
- data : ArtistData
+ - museum : Museum &
}
struct ArtistData {
+ x : float
@@ -288,10 +306,10 @@ rectangle Group_Visualization as "Visualization" <<group>> {
width : unsigned int
height : unsigned int
}
- enum Scancode {
- }
-
+ enum MouseCode { }
+ enum KeyboardCode { }
package SDL3 { }
+
class View {
+ window_size(width, height)
+ dialog_file(callback : fn(files : vec<string>, data), data)
@@ -306,11 +324,21 @@ rectangle Group_Visualization as "Visualization" <<group>> {
}
class ViewController {
+ update()
+ + ev_keydown(KeyboardCode);
+ + ev_mousedown(MouseCode);
+ + ev_mousemove(x, y);
+ --
+ - draw_artists : bool <<+get>> <<+set>>
+ - cmd_base : const Command *
}
ViewController ..> View
ViewController <-- View
- View -> SDL3
+ View --> SDL3
+
+ View .> Rectangle
+ ViewController .> KeyboardCode
+ ViewController .> MouseCode
}
} /' LAYOUT '/
@@ -327,6 +355,7 @@ main -d-> Museum
main -u-> LoadFilesCommand
main -[norank]> Deserializer
main -[norank]> View
+main .l> Exception
' LAYOUT
Group_TileBehavior -r[hidden] Group_TileAppearance