From 4fc8799d38226363522e5711a645bfaea2b304ff Mon Sep 17 00:00:00 2001 From: Baitinq Date: Sat, 16 Jul 2022 17:14:30 +0200 Subject: Have dependencies be managed by nix --- src/#Logic.hs# | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/#Logic.hs# (limited to 'src') diff --git a/src/#Logic.hs# b/src/#Logic.hs# new file mode 100644 index 0000000..25214ed --- /dev/null +++ b/src/#Logic.hs# @@ -0,0 +1,49 @@ +module Logic where + +import Data.Astro.Types +import Data.Astro.Time.JulianDate +import Data.Astro.Coordinate +import Data.Astro.Planet + +data SkyT = Sky { s_date :: JulianDate, + objects :: [SkyObjectT] + } deriving (Show) + +data RelativeSkyT = RelativeSky { rs_date :: JulianDate, + nonVisibleObjects :: [SkyObjectT], + visibleObjects :: [SkyObjectT] + } deriving (Show) + +data SkyObjectT = SkyObject { + so_name :: String, + coordinates :: EquatorialCoordinates1 +} deriving (Show) + +data RelativeSkyObjectT = RelativeSkyObject { + rso_name :: String + --m_relative_coordinates :: HorizonCoordinates +} deriving (Show) + +generateSky :: JulianDate -> SkyT +generateSky date = Sky { + s_date = date, + objects = predictSkyObjects date + } + +trackedObjects :: [Planet] +trackedObjects = [Mercury, Venus, Mars, Jupiter, Saturn, Neptune, Uranus] --Moon? + +predictSkyObjects :: JulianDate -> [SkyObjectT] +predictSkyObjects date = do + object <- trackedObjects + objectDetails <- return $ j2010PlanetDetails object + earthDetails <- return $ j2010PlanetDetails Earth + objectPosition <- return $ planetPosition planetTrueAnomaly1 objectDetails earthDetails date + return SkyObject { so_name = show object, coordinates = objectPosition } + +relativize_sky :: SkyT -> GeographicCoordinates -> RelativeSkyT +relativize_sky sky location = RelativeSky { + rs_date = s_date sky, + nonVisibleObjects = objects sky, + visibleObjects = [] + }λ> λ> \ No newline at end of file -- cgit 1.4.1