|
|
Ergh
|
|
|
|
|
|
```plantuml
|
|
|
```
|
|
|
|
|
|
<!--
|
|
|
```plantuml
|
|
|
|
|
|
#namespace fargOCA {
|
|
|
class SimulationTracker
|
|
|
#class CompoundTracker {}
|
|
|
#class ConcreteTracker {}
|
|
|
#class TrackerBuilder {
|
|
|
# virtual SimulationTracker& make(Simulation const& simu, Config cfg);
|
|
|
#}
|
|
|
#class ConcreteTrackerBuilder {}
|
|
|
#class Simulation {}
|
|
|
#}
|
|
|
class Simulation {
|
|
|
+ step(real dt)
|
|
|
-- internal --
|
|
|
# subStep1(real dt)
|
|
|
# subSTepN(real dt)
|
|
|
}
|
|
|
class SimulationTracker {
|
|
|
+{abstract} beforeStep()
|
|
|
+{abstract} afterStep()
|
|
|
+{abstract} planetsChanged()
|
|
|
+{abstract} gasAccreted(momentum)
|
|
|
}
|
|
|
class CompoundTracker {
|
|
|
+{abstract} beforeStep()
|
|
|
+{abstract} afterStep()
|
|
|
+{abstract} planetsChanged()
|
|
|
+{abstract} gasAccreted(momentum)
|
|
|
}
|
|
|
class ConcreteTrackerA {
|
|
|
+{abstract} beforeStep()
|
|
|
+{abstract} afterStep()
|
|
|
+{abstract} planetsChanged()
|
|
|
+{abstract} gasAccreted(momentum)
|
|
|
}
|
|
|
class ConcreteTrackerB {
|
|
|
+{abstract} beforeStep()
|
|
|
+{abstract} afterStep()
|
|
|
+{abstract} planetsChanged()
|
|
|
+{abstract} gasAccreted(momentum)
|
|
|
}
|
|
|
Simulation*--CompoundTracker
|
|
|
SimulationTracker--Simulation
|
|
|
SimulationTracker<|--CompoundTracker
|
|
|
SimulationTracker<|--ConcreteTrackerA
|
|
|
SimulationTracker<|--ConcreteTrackerB
|
|
|
``` |
|
|
--> |
|
|
\ No newline at end of file |