{-- TerraHS - Interface between TerraLib and Haskell (c) Sergio Costa (INPE) - Setembro, 2005 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License 2.1 as published by the Free Software Foundation (http://www.opensource.org/licenses/gpl-license.php) --} {-- --} module TerraHS.Algebras.Spatial.GeoObjects ( -- * The @TeGeoObject@ type --TeGeoObject (..), -- * The @TeGeoObjects@ class GeoObjects (..), ) where import Foreign.C.String import TerraHS.Algebras.Spatial.Geometries import TerraHS.Algebras.Spatial.Points import TerraHS.Algebras.Spatial.Lines import TerraHS.Algebras.Spatial.Polygons import TerraHS.Algebras.Base.Ids import TerraHS.Algebras.Base.Attribute class (Num n, Points p n, Lines l n, Polygons pg l n, Geometries g pg l p n, Ids i, Values v, Attributes at v ) => GeoObjects a i at v g pg l p n | a -> i at v g pg l p n where -- | Returns the object identification getId :: a -> i -- | Returns the attributes list from a geoobject getAttributes :: a -> [at] -- | Returns the geometries list from a geoobject getGeometries :: a -> [g] createGeoObject :: i -> [at] -> [g] -> a