76 lines
985 B
Plaintext
76 lines
985 B
Plaintext
@startuml
|
|
skinparam classAttributeIconSize 0
|
|
|
|
class SpaceObject {
|
|
x
|
|
y
|
|
radius
|
|
color
|
|
mass
|
|
update()
|
|
draw()
|
|
}
|
|
|
|
class Star {
|
|
name
|
|
planets
|
|
add_planet()
|
|
set_position()
|
|
update()
|
|
draw()
|
|
}
|
|
|
|
class Planet {
|
|
star
|
|
orbit_number
|
|
orbit_radius
|
|
angle
|
|
speed
|
|
angular_speed
|
|
linear_speed
|
|
direction
|
|
calculate_position()
|
|
update()
|
|
draw_orbit()
|
|
draw()
|
|
}
|
|
|
|
class SolarSystem {
|
|
width
|
|
height
|
|
stars
|
|
show_orbits
|
|
paused
|
|
create_system()
|
|
get_direction()
|
|
resize()
|
|
update()
|
|
draw()
|
|
toggle_pause()
|
|
toggle_orbits()
|
|
get_all_objects()
|
|
get_total_mass()
|
|
get_planet_count()
|
|
}
|
|
|
|
class SolarApp {
|
|
screen
|
|
clock
|
|
system
|
|
save_callback
|
|
draw_panel()
|
|
handle_events()
|
|
run()
|
|
}
|
|
|
|
class save_system_to_file
|
|
|
|
SpaceObject <|-- Star
|
|
SpaceObject <|-- Planet
|
|
SolarSystem *-- Star
|
|
Star *-- Planet
|
|
SolarApp --> SolarSystem
|
|
SolarApp --> save_system_to_file
|
|
|
|
@enduml
|