diff options
Diffstat (limited to 'docs/class-diag.puml')
-rw-r--r-- | docs/class-diag.puml | 42 |
1 files changed, 34 insertions, 8 deletions
diff --git a/docs/class-diag.puml b/docs/class-diag.puml index 9a37256..b20b3e1 100644 --- a/docs/class-diag.puml +++ b/docs/class-diag.puml @@ -98,31 +98,57 @@ rectangle Group_ParsingDeserialization as "Parsing & deserialization" <<group>> TXTParser -r[hidden] XMLParser } -rectangle Group_Algorithms as "Algorithms" <<group>> { - class PathfindingContext { - + PathfindingContext(Museum &) - } - together { +rectangle Group_Collisions as "Collisions" <<group>> { class CollisionContext { + CollisionContext(Museum &) + + update() + + get_checker() : shared<CollisionChecker> + + cycle_method() + -- + - museum : Museum & + - checker : shared<CollisionChecker> + - checker_index : size_t + - create_checker() : shared<CollisionChecker> } class CollisionChecker <<abstract>> { + CollisionChecker(Museum &) + compare(Artist & a, Artist & b) + check() <<pure virtual>> + -- + # museum : Museum & } class QuadTreeCollisionChecker { - + QuadTree(Museum &) - + QuadTree(parent : QuadTree *, boundary : Rectangle &) + + constructor(Museum &) + - constructor(parent : this, boundary : const Rectangle &) + -- + + get_boundary() : const Rectangle & + + subtree : uniq<QuadTreeCollisionChecker>[4] + + check() + -- + - capacity : const int + - artists : forward_list<Artist *> + - artists_size : size_t + - boundary : Rectangle <<+get>> + -- + - subdivide() + - cull() } class NaiveCollisionChecker { + + check() + } + class NullCollisionChecker { + + check() } CollisionChecker <|-- QuadTreeCollisionChecker CollisionChecker <|-- NaiveCollisionChecker + CollisionChecker <|-- NullCollisionChecker CollisionContext -> CollisionChecker +} +rectangle Group_Pathfinding as "Pathfinding" <<group>> { + class PathfindingContext { + + PathfindingContext(Museum &) } - } rectangle Group_Model as "Model" <<group>> { class Museum { |