Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Point = Point Double Double
- data Line = Line Point Point
- data Lseg = Lseg Point Point
- data Box = Box Point Point
- data Path
- = ClosedPath [Point]
- | OpenPath [Point]
- newtype Polygon = Polygon [Point]
- data Circle = Circle Point Double
- (+.) :: (SqlDb db, Plus a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Expr db r a
- (-.) :: (SqlDb db, BoxCirclePathPoint a, ExpressionOf db r x a, ExpressionOf db r y Point) => x -> y -> Expr db r a
- (*.) :: (SqlDb db, BoxCirclePathPoint a, ExpressionOf db r x a, ExpressionOf db r y Point) => x -> y -> Expr db r a
- (/.) :: (SqlDb db, BoxCirclePathPoint a, ExpressionOf db r x a, ExpressionOf db r y Point) => x -> y -> Expr db r a
- (#) :: (SqlDb db, BoxLineLseg a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Expr db r a
- (##) :: (SqlDb db, Closest a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Expr db r Point
- (<->) :: (SqlDb db, Distance a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Expr db r Double
- (&&) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (<<) :: (SqlDb db, BoxCirclePointPolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (>>) :: (SqlDb db, BoxCirclePointPolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (&<) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (&>) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (<<|) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (|>>) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (&<|) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (|&>) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (<^) :: (SqlDb db, BoxPoint a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (>^) :: (SqlDb db, BoxPoint a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (?#) :: (SqlDb db, Intersects a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Cond db r
- (?-) :: (SqlDb db, ExpressionOf db r x Point, ExpressionOf db r y Point) => x -> y -> Cond db r
- (?|) :: (SqlDb db, ExpressionOf db r x Point, ExpressionOf db r y Point) => x -> y -> Cond db r
- (?-|) :: (SqlDb db, LineLseg a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (?||) :: (SqlDb db, LineLseg a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
- (@>) :: (SqlDb db, Contains a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Cond db r
- (<@) :: (SqlDb db, Contained a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Cond db r
- (~=) :: (SqlDb db, BoxCirclePointPolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r
Documentation
Instances
Eq Point Source # | |
Show Point Source # | |
PersistField Point Source # | |
Defined in Database.Groundhog.Postgresql.Geometry persistName :: Point -> String # toPersistValues :: PersistBackend m => Point -> m ([PersistValue] -> [PersistValue]) # fromPersistValues :: PersistBackend m => [PersistValue] -> m (Point, [PersistValue]) # dbType :: DbDescriptor db => proxy db -> Point -> DbType # | |
PrimitivePersistField Point Source # | |
It is not fully implemented in PostgreSQL yet. It is kept just to match all geometric types.
Instances
Eq Line Source # | |
Show Line Source # | |
PersistField Line Source # | |
Defined in Database.Groundhog.Postgresql.Geometry persistName :: Line -> String # toPersistValues :: PersistBackend m => Line -> m ([PersistValue] -> [PersistValue]) # fromPersistValues :: PersistBackend m => [PersistValue] -> m (Line, [PersistValue]) # dbType :: DbDescriptor db => proxy db -> Line -> DbType # | |
PrimitivePersistField Line Source # | |
Defined in Database.Groundhog.Postgresql.Geometry |
Instances
Eq Lseg Source # | |
Show Lseg Source # | |
PersistField Lseg Source # | |
Defined in Database.Groundhog.Postgresql.Geometry persistName :: Lseg -> String # toPersistValues :: PersistBackend m => Lseg -> m ([PersistValue] -> [PersistValue]) # fromPersistValues :: PersistBackend m => [PersistValue] -> m (Lseg, [PersistValue]) # dbType :: DbDescriptor db => proxy db -> Lseg -> DbType # | |
PrimitivePersistField Lseg Source # | |
Defined in Database.Groundhog.Postgresql.Geometry |
Instances
Eq Box Source # | |
Show Box Source # | |
PersistField Box Source # | |
Defined in Database.Groundhog.Postgresql.Geometry persistName :: Box -> String # toPersistValues :: PersistBackend m => Box -> m ([PersistValue] -> [PersistValue]) # fromPersistValues :: PersistBackend m => [PersistValue] -> m (Box, [PersistValue]) # dbType :: DbDescriptor db => proxy db -> Box -> DbType # | |
PrimitivePersistField Box Source # | |
Defined in Database.Groundhog.Postgresql.Geometry |
ClosedPath [Point] | |
OpenPath [Point] |
Instances
Eq Path Source # | |
Show Path Source # | |
PersistField Path Source # | |
Defined in Database.Groundhog.Postgresql.Geometry persistName :: Path -> String # toPersistValues :: PersistBackend m => Path -> m ([PersistValue] -> [PersistValue]) # fromPersistValues :: PersistBackend m => [PersistValue] -> m (Path, [PersistValue]) # dbType :: DbDescriptor db => proxy db -> Path -> DbType # | |
PrimitivePersistField Path Source # | |
Defined in Database.Groundhog.Postgresql.Geometry |
Instances
Eq Polygon Source # | |
Show Polygon Source # | |
PersistField Polygon Source # | |
Defined in Database.Groundhog.Postgresql.Geometry persistName :: Polygon -> String # toPersistValues :: PersistBackend m => Polygon -> m ([PersistValue] -> [PersistValue]) # fromPersistValues :: PersistBackend m => [PersistValue] -> m (Polygon, [PersistValue]) # dbType :: DbDescriptor db => proxy db -> Polygon -> DbType # | |
PrimitivePersistField Polygon Source # | |
Instances
Eq Circle Source # | |
Show Circle Source # | |
PersistField Circle Source # | |
Defined in Database.Groundhog.Postgresql.Geometry persistName :: Circle -> String # toPersistValues :: PersistBackend m => Circle -> m ([PersistValue] -> [PersistValue]) # fromPersistValues :: PersistBackend m => [PersistValue] -> m (Circle, [PersistValue]) # dbType :: DbDescriptor db => proxy db -> Circle -> DbType # | |
PrimitivePersistField Circle Source # | |
(+.) :: (SqlDb db, Plus a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Expr db r a infixl 6 Source #
Translation
box '((0,0),(1,1))' + point '(2.0,0)' = box '(3,1),(2,0)'
(-.) :: (SqlDb db, BoxCirclePathPoint a, ExpressionOf db r x a, ExpressionOf db r y Point) => x -> y -> Expr db r a infixl 6 Source #
Translation
box '((0,0),(1,1))' - point '(2.0,0)' = box '(-1,1),(-2,0)'
(*.) :: (SqlDb db, BoxCirclePathPoint a, ExpressionOf db r x a, ExpressionOf db r y Point) => x -> y -> Expr db r a infixl 7 Source #
Scaling/rotation
box '((0,0),(1,1))' * point '(2.0,0)' = box '(2,2),(0,0)'
(/.) :: (SqlDb db, BoxCirclePathPoint a, ExpressionOf db r x a, ExpressionOf db r y Point) => x -> y -> Expr db r a infixl 7 Source #
Scaling/rotation
box '((0,0),(2,2))' / point '(2.0,0)' = box '(1,1),(0,0)'
(#) :: (SqlDb db, BoxLineLseg a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Expr db r a Source #
Point or box of intersection
lseg '((1,-1),(-1,1))' # '((1,1),(-1,-1))' = point '(0,0)'
box '((1,-1),(-1,1))' # '((1,1),(-1,-1))' = box '(1,1),(-1,-1)'
(##) :: (SqlDb db, Closest a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Expr db r Point Source #
Closest point to first operand on second operand
point '(0,0)' ## lseg '((2,0),(0,2))' = point '(1,1)'
(<->) :: (SqlDb db, Distance a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Expr db r Double Source #
Distance between
circle '((0,0),1)' - circle '((5,0),1)' = 3
(&&) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Overlaps?
box '((0,0),(1,1))' && box '((0,0),(2,2))' = true
(<<) :: (SqlDb db, BoxCirclePointPolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Is strictly left of?
circle '((0,0),1)' << circle '((5,0),1)' = true
(>>) :: (SqlDb db, BoxCirclePointPolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Is strictly right of?
circle '((5,0),1)' >> circle '((0,0),1)' = true
(&<) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Does not extend to the right of? box '((0,0),(1,1))' &< box '((0,0),(2,2))' = t
(&>) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Does not extend to the left of?
box '((0,0),(3,3))' &> box '((0,0),(2,2))' = true
(<<|) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Is strictly below?
box '((0,0),(3,3))' <<| box '((3,4),(5,5))' = true
(|>>) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Is strictly above?
box '((3,4),(5,5))' |>> box '((0,0),(3,3))'
(&<|) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Does not extend above?
box '((0,0),(1,1))' &<| box '((0,0),(2,2))' = true
(|&>) :: (SqlDb db, BoxCirclePolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Does not extend below?
box '((0,0),(3,3))' |&> box '((0,0),(2,2))' = true
(<^) :: (SqlDb db, BoxPoint a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Is below (allows touching)?
circle '((0,0),1)' <^ circle '((0,5),1)' = true
(>^) :: (SqlDb db, BoxPoint a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Is above (allows touching)?
circle '((0,5),1)' >^ circle '((0,0),1)' = true
(?#) :: (SqlDb db, Intersects a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Cond db r Source #
Intersects?
lseg '((-1,0),(1,0))' ?# box '((-2,-2),(2,2))' = true
(?-) :: (SqlDb db, ExpressionOf db r x Point, ExpressionOf db r y Point) => x -> y -> Cond db r Source #
Are horizontally aligned?
point '(1,0)' ?- point '(0,0)' = true
(?|) :: (SqlDb db, ExpressionOf db r x Point, ExpressionOf db r y Point) => x -> y -> Cond db r Source #
Are vertically aligned?
point '(0,1)' ?| point '(0,0)' = true
(?-|) :: (SqlDb db, LineLseg a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Is perpendicular?
lseg '((0,0),(0,1))' ?-| lseg '((0,0),(1,0))' = true
(?||) :: (SqlDb db, LineLseg a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Are parallel?
lseg '((-1,0),(1,0))' ?|| lseg '((-1,2),(1,2))' = true
(@>) :: (SqlDb db, Contains a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Cond db r Source #
Contains?
circle '((0,0),2)' @> point '(1,1)' = true
(<@) :: (SqlDb db, Contained a b, ExpressionOf db r x a, ExpressionOf db r y b) => x -> y -> Cond db r Source #
Contained in or on?
point '(1,1)' <@ circle '((0,0),2)' = true
(~=) :: (SqlDb db, BoxCirclePointPolygon a, ExpressionOf db r x a, ExpressionOf db r y a) => x -> y -> Cond db r Source #
Same as?
polygon '((0,0),(1,1))' ~= polygon '((1,1),(0,0))' = true