-- | Complex Type: @wptType@ module Data.Geo.GPX.Wpt( Wpt , wpt , wpt' ) where import Data.Geo.GPX.Latitude import Data.Geo.GPX.Longitude import Data.Geo.GPX.Degrees import Data.Geo.GPX.Link import Data.Geo.GPX.Fix import Data.Geo.GPX.DgpsStation import Data.Geo.GPX.Extensions import Data.Geo.GPX.Lens.LatL import Data.Geo.GPX.Lens.LonL import Data.Geo.GPX.Lens.EleL import Data.Geo.GPX.Lens.TimeL import Data.Geo.GPX.Lens.MagvarL import Data.Geo.GPX.Lens.GeoidheightL import Data.Geo.GPX.Lens.NameL import Data.Geo.GPX.Lens.CmtL import Data.Geo.GPX.Lens.DescL import Data.Geo.GPX.Lens.SrcL import Data.Geo.GPX.Lens.LinksL import Data.Geo.GPX.Lens.SymL import Data.Geo.GPX.Lens.TypeL import Data.Geo.GPX.Lens.FixL import Data.Geo.GPX.Lens.SatL import Data.Geo.GPX.Lens.HdopL import Data.Geo.GPX.Lens.VdopL import Data.Geo.GPX.Lens.PdopL import Data.Geo.GPX.Lens.AgeofdgpsdataL import Data.Geo.GPX.Lens.DgpsidL import Data.Geo.GPX.Lens.ExtensionsL import Data.Lens.Common import Control.Comonad.Trans.Store import Text.XML.HXT.Arrow.Pickle import Text.XML.XSD.DateTime data Wpt = Wpt Latitude Longitude (Maybe Double) (Maybe DateTime) (Maybe Degrees) (Maybe Double) (Maybe String) (Maybe String) (Maybe String) (Maybe String) [Link] (Maybe String) (Maybe String) (Maybe Fix) (Maybe Int) (Maybe Double) (Maybe Double) (Maybe Double) (Maybe Double) (Maybe DgpsStation) (Maybe Extensions) deriving Eq wpt :: Latitude -- ^ The lat. -> Longitude -- ^ The lon. -> Maybe Double -- ^ The ele. -> Maybe DateTime -- ^ The time. -> Maybe Degrees -- ^ The magvar. -> Maybe Double -- ^ The geoidheight. -> Maybe String -- ^ The name. -> Maybe String -- ^ The cmt. -> Maybe String -- ^ The desc. -> Maybe String -- ^ The src. -> [Link] -- ^ The links (link). -> Maybe String -- ^ The sym. -> Maybe String -- ^ The type. -> Maybe Fix -- ^ The fix. -> Maybe Int -- ^ The sat. -> Maybe Double -- ^ The hdop. -> Maybe Double -- ^ The vdop. -> Maybe Double -- ^ The pdop. -> Maybe Double -- ^ The ageofdgpsdata. -> Maybe DgpsStation -- ^ The dgpsid. -> Maybe Extensions -- ^ The extensions. -> Wpt wpt a b c d e f g h i j k l m n o p = Wpt a b c d e f g h i j k l m n o (fmap abs p) -- | A waypoint with only a latitude and longitude. wpt' :: Latitude -- ^ The lat. -> Longitude -- ^ The lon. -> Wpt wpt' lat' lon' = wpt lat' lon' Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing [] Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing instance LatL Wpt where latL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\lat -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) lat instance LonL Wpt where lonL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\lon -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) lon instance EleL Wpt where eleL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\ele -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) ele instance TimeL Wpt where timeL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\time -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) time instance MagvarL Wpt where magvarL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\magvar -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) magvar instance GeoidheightL Wpt where geoidheightL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\geoidheight -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) geoidheight instance NameL Wpt where nameL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\name -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) name instance CmtL Wpt where cmtL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\cmt -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) cmt instance DescL Wpt where descL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\desc -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) desc instance SrcL Wpt where srcL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\src -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) src instance LinksL Wpt where linksL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\links -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) links instance SymL Wpt where symL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\sym -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) sym instance TypeL Wpt where typeL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\typ -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) typ instance FixL Wpt where fixL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\fix -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) fix instance SatL Wpt where satL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\sat -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) sat instance HdopL Wpt where hdopL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\hdop -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) hdop instance VdopL Wpt where vdopL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\vdop -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) vdop instance PdopL Wpt where pdopL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\pdop -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) pdop instance AgeofdgpsdataL Wpt where ageofdgpsdataL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\ageofdgpsdata -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) ageofdgpsdata instance DgpsidL Wpt where dgpsidL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\dgpsid -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) dgpsid instance ExtensionsL Wpt where extensionsL = Lens $ \(Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) -> store (\extensions -> Wpt lat lon ele time magvar geoidheight name cmt desc src links sym typ fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions) extensions instance XmlPickler Wpt where xpickle = xpWrap (\(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) -> wpt a b c d e f g h i j k l m n o p q r s t u, \(Wpt a b c d e f g h i j k l m n o p q r s t u) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u)) (xp21Tuple (xpAttr "lat" xpickle) (xpAttr "lon" xpickle) (xpOption (xpElem "ele" xpPrim)) (xpOption (xpElem "time" (xpWrapMaybe (dateTime, show) xpText))) (xpOption (xpElem "magvar" xpickle)) (xpOption (xpElem "geoidheight" xpPrim)) (xpOption (xpElem "name" xpText)) (xpOption (xpElem "cmt" xpText)) (xpOption (xpElem "desc" xpText)) (xpOption (xpElem "src" xpText)) (xpList (xpElem "link" xpickle)) (xpOption (xpElem "sym" xpText)) (xpOption (xpElem "type" xpText)) (xpOption (xpElem "fix" xpickle)) (xpOption (xpElem "sat" xpPrim)) (xpOption (xpElem "hdop" xpPrim)) (xpOption (xpElem "vdop" xpPrim)) (xpOption (xpElem "pdop" xpPrim)) (xpOption (xpElem "ageofdgpsdata" xpPrim)) (xpOption (xpElem "dgpsid" xpickle)) (xpOption (xpElem "extensions" xpickle)))