License | CC0 |
---|---|
Maintainer | frosch03@frosch03.de |
Stability | experimental |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
- getNextUp :: KSystem Body -> Body -> Maybe Body
- getPathUp :: KSystem Body -> Body -> [Body]
- getDivid :: KSystem Body -> Body -> Body -> (Int, Body)
- sOrbitInSystem :: Body -> KSystem Body -> Maybe (Orbit Body)
- pathOBetween :: KSystem Body -> Body -> Body -> [(Body, Orbit Body)]
- pathOBetween' :: KSystem Body -> Body -> Body -> ([(Body, Orbit Body)], (Body, Orbit Body), [(Body, Orbit Body)])
- pathBetween_ :: KSystem Body -> Body -> Body -> [Body]
- pathBetween' :: KSystem Body -> Body -> Body -> ([Body], Body, [Body])
- pathBetween :: KSystem Body -> Body -> Body -> [Body]
- pathSpeeds :: [(Body, Orbit Body)] -> [Speed]
- orbitalSpeed :: Orbit Body -> Speed
- updateOrbit :: Orbit Body -> Double -> Double -> Orbit Body
- burnFromCircOrb :: Orbit Body -> Speed -> Orbit Body
- burnAt :: (Orbit Body -> Double) -> Orbit Body -> Speed -> Orbit Body
- burnAtApoapsis :: Orbit Body -> Speed -> Orbit Body
- burnAtPeriapsis :: Orbit Body -> Speed -> Orbit Body
Documentation
sOrbitInSystem :: Body -> KSystem Body -> Maybe (Orbit Body) Source
sOrbitInSystem
takes a body, a KSystem
system and maybe
returns the orbit of the body.
pathOBetween :: KSystem Body -> Body -> Body -> [(Body, Orbit Body)] Source
pathOBetween
takes a KSystem
system and a from Body
and a
to Body
. If one want's to reach the to body from from body
the bodys between and their orbit around their centerBody are
returnd.
pathOBetween' :: KSystem Body -> Body -> Body -> ([(Body, Orbit Body)], (Body, Orbit Body), [(Body, Orbit Body)]) Source
pathOBetween'
takes a KSystem
system and a from Body
and a to Body
. If one want's to reach the to body from
from body the bodys between and their orbit around their
centerBody are returnd. They are returnd as triple, with the
overlapping body in the center of the triple and the path of the
from body in the first element of the triple. The path of the
to body in the last element of the triple.
pathBetween_ :: KSystem Body -> Body -> Body -> [Body] Source
pathBetween_
takes a KSystem
system and a from Body
and
a to Body
. If one want's to reach the to body from
from body the bodys between are returnd, without the common
body.
pathBetween' :: KSystem Body -> Body -> Body -> ([Body], Body, [Body]) Source
pathBetween
takes a KSystem
system and from Body
and a
to Body
. If one want's to reach the to body from from
body the bodys between and their orbit around their centerBody are
returnd. They are returnd as triple, with the overlapping body in
the center of the triple and the path of the from body in the
first element of the triple. The path of the to body in the
last element of the triple.
pathBetween :: KSystem Body -> Body -> Body -> [Body] Source
pathBetween
takes a KSystem
system and a from Body
and
a to Body
. If one want's to reach the to body from
from body the bodys between are returnd, including the common
body.
pathSpeeds :: [(Body, Orbit Body)] -> [Speed] Source
pathSpeeds
takes the result of pathOBetween
and calculates the
corresponding orbital speeds.
orbitalSpeed :: Orbit Body -> Speed Source
orbitalSpeed
returns the orbital velocity of the given orbit.
updateOrbit :: Orbit Body -> Double -> Double -> Orbit Body Source
updateOrbit
is a function that takes an orbit and two
heights. It updates the apoapsis with the bigger height and the
periapsis with the smaller.
burnAt :: (Orbit Body -> Double) -> Orbit Body -> Speed -> Orbit Body Source
burnAtPeriapsis :: Orbit Body -> Speed -> Orbit Body Source
burnAtPeriapsis
calculates the new orbit after a burn of
Speed
delta V is applied to the given orbit at the periapsis.