@startuml

' TODO : add dependency between logger and yaml_cpp
' TODO : add logger dependency

package controller
package model
package view
package astar
package shapes
package arguments
package application
package filesystem
package messages
package agent
package timer
package logger
package wxWidgets #Grey
package boost #Grey
package yaml_cpp #Grey

application --> controller
application --> wxWidgets
wxWidgets <-- view
application --> arguments
controller --> model
controller --> view
agent --> messages
view -> model
view --> agent
agent --> astar
model --> yaml_cpp
model --> logger
model --> shapes
agent --> timer
model --> filesystem
model <--> agent
agent -> logger
messages -> boost
logger -> filesystem

' Styling
filesystem -[hidden]right->shapes
shapes -[hidden]right-> yaml_cpp
messages -[hidden]left->timer
timer -[hidden]left-> astar

@enduml
