module Data.Geo.GeodeticCurve(
GeodeticCurve,
geodeticCurve
) where
import Data.Geo.Azimuth
import Data.Geo.Accessor.EllipsoidalDistance
import Data.Geo.Accessor.Azi
import Data.Geo.Accessor.ReverseAzi
data GeodeticCurve = GeodeticCurve Double Azimuth Azimuth
deriving (Eq, Show)
geodeticCurve :: Double
-> Azimuth
-> Azimuth
-> GeodeticCurve
geodeticCurve = GeodeticCurve . abs
instance EllipsoidalDistance GeodeticCurve where
ellipsoidalDistance (GeodeticCurve x _ _) = x
instance Azi GeodeticCurve where
azi (GeodeticCurve _ x _) = x
instance ReverseAzi GeodeticCurve where
reverseAzi (GeodeticCurve _ _ x) = x