@startuml class FlightSimulator { +run() +step() +initialize() +handleEvents() +checkTermination() +updateMotors() } class ForcesModel { +computeNetForce() +computeNetMoment() +computeThrust() +computeAerodynamicDrag() +computeGravity() } class FlightState { +getPosition() +setPosition() +getVelocity() +setVelocity() +getAcceleration() +setAcceleration() +getOrientation() +setOrientation() +getAngularVelocity() +setAngularVelocity() +getTime() +setTime() } class Environment { +getAirDensity() +getGravity() } class Integrator { +step() +eulerIntegration() } FlightSimulator --> ForcesModel FlightSimulator --> Integrator FlightSimulator --> FlightState FlightSimulator --> Environment ForcesModel --> Rocket ForcesModel --> Environment Integrator --> Rocket Integrator --> ForcesModel @enduml