{-# OPTIONS -fno-warn-missing-methods -fno-warn-orphans #-}
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
module Graphics.Gloss.Data.Point
	( Point, Path
	, pointInBox)
where
import Graphics.Gloss.Data.Picture


-- | Test whether a point lies within a rectangular box that is oriented
--   on the x-y plane. The points P1-P2 are opposing points of the box,
--   but need not be in a particular order.
--
-- @
--    P2 +-------+
--       |       |
--       | + P0  |
--       |       |
--       +-------+ P1
-- @
--
pointInBox 
	:: Point 
	-> Point 
	-> Point -> Bool
	
pointInBox (x0, y0) (x1, y1) (x2, y2)
 	=  x0 >= min x1 x2
 	&& x0 <= max x1 x2
	&& y0 >= min y1 y2
	&& y0 <= max y1 y2