@startuml
class SpaceObject {
  x
  y
  radius
  color
  update()
  draw()
}

class Star {
  name
  planets
  add_planet()
  set_position()
  update()
  draw()
}

class Planet {
  star
  orbit_number
  orbit_radius
  angle
  speed
  direction
  calculate_position()
  update()
  draw_orbit()
  draw()
}

class SolarSystem {
  stars
  show_orbits
  paused
  create_system()
  resize()
  update()
  draw()
  toggle_pause()
  toggle_orbits()
}

class SolarApp {
  system
  handle_events()
  draw_panel()
  run()
}

SpaceObject <|-- Star
SpaceObject <|-- Planet
Star "1" o-- "many" Planet
SolarSystem "1" o-- "2" Star
SolarApp --> SolarSystem
@enduml
