---
# System prepended metadata

title: Diagramme des classes

---

# Diagramme des classes

```mermaid
classDiagram

class Boid {
    -pos
    -velocity
    -acceleration
    -colors
    -coefficient
    
    +update(Container c, double delta)
    +setCoefficient(double)
    #separationRule(Container c)
    #cohesionRule(Container c)
    #alignementRule(Container c)
    #gradientRule(Container c)
}

class BoidsContainer {
    -listBoids
    
    +getBoidsNear(double radius, pos) list
    +addBoid(Boid boid)
    +update(double delta)
    +setSetting(double value)
}

class Polygon {
    +setFill()
    (...)
}

Polygon <|-- Boid

class Collection {
    +add()
    (...)
}

Collection <|-- BoidsContainer

class BoidSim {
    -scenes
    
    +switchScene()
}

class Application {
    +init()
    (...)
}

class MainMenu {
    -setting
    +start()
    +settings()
}

class SettingsMenu {
    -volume
    -theme
    +show()
}

class InGameMenu {
    Collection c
    +show()
}

class Simulation {
    Collection c
    +show()
}

class PauseMenu {
    Collection c
    +show()
}

class Scene {
    +setRoot()
    (...)
}

Scene <|-- SettingsMenu
Scene <|-- MainMenu
Scene <|-- PauseMenu
Scene <|-- InGameMenu
Scene <|-- Simulation

Boid *-- BoidsContainer

Application <|-- BoidSim
Scene *-- BoidSim
BoidsContainer *-- BoidSim

```