Safe HaskellNone

LSC.Quadtree

Documentation

data Quadtree a f x y Source #

Constructors

Leaf [(f x y, a)] 
Quad (Line x y) (Quadtree a f x y) (Quadtree a f x y) (Quadtree a f x y) (Quadtree a f x y) 

Instances

Instances details
Bifunctor f => Bifunctor (Quadtree a f) Source # 
Instance details

Defined in LSC.Quadtree

Methods

bimap :: (a0 -> b) -> (c -> d) -> Quadtree a f a0 c -> Quadtree a f b d

first :: (a0 -> b) -> Quadtree a f a0 c -> Quadtree a f b c

second :: (b -> c) -> Quadtree a f a0 b -> Quadtree a f a0 c

Bifoldable f => Bifoldable (Quadtree a f) Source # 
Instance details

Defined in LSC.Quadtree

Methods

bifold :: Monoid m => Quadtree a f m m -> m

bifoldMap :: Monoid m => (a0 -> m) -> (b -> m) -> Quadtree a f a0 b -> m

bifoldr :: (a0 -> c -> c) -> (b -> c -> c) -> c -> Quadtree a f a0 b -> c

bifoldl :: (c -> a0 -> c) -> (c -> b -> c) -> c -> Quadtree a f a0 b -> c

Cartesian f x y => Cartesian (Quadtree a f) x y Source # 
Instance details

Defined in LSC.Quadtree

Methods

moveX :: x -> Quadtree a f x y -> Quadtree a f x y Source #

moveY :: y -> Quadtree a f x y -> Quadtree a f x y Source #

width :: Quadtree a f x y -> x Source #

height :: Quadtree a f x y -> y Source #

center :: Quadtree a f x y -> (x, y) Source #

centerX :: Quadtree a f x y -> x Source #

centerY :: Quadtree a f x y -> y Source #

relocateX :: x -> Quadtree a f x y -> Quadtree a f x y Source #

relocateY :: y -> Quadtree a f x y -> Quadtree a f x y Source #

minX :: Quadtree a f x y -> x Source #

maxX :: Quadtree a f x y -> x Source #

minY :: Quadtree a f x y -> y Source #

maxY :: Quadtree a f x y -> y Source #

relocateL :: x -> Quadtree a f x y -> Quadtree a f x y Source #

relocateR :: x -> Quadtree a f x y -> Quadtree a f x y Source #

relocateB :: y -> Quadtree a f x y -> Quadtree a f x y Source #

relocateT :: y -> Quadtree a f x y -> Quadtree a f x y Source #

abscissae :: Quadtree a f x y -> [x] Source #

ordinates :: Quadtree a f x y -> [y] Source #

Functor (f x) => Functor (Quadtree a f x) Source # 
Instance details

Defined in LSC.Quadtree

Methods

fmap :: (a0 -> b) -> Quadtree a f x a0 -> Quadtree a f x b

(<$) :: a0 -> Quadtree a f x b -> Quadtree a f x a0

Foldable (f x) => Foldable (Quadtree a f x) Source # 
Instance details

Defined in LSC.Quadtree

Methods

fold :: Monoid m => Quadtree a f x m -> m

foldMap :: Monoid m => (a0 -> m) -> Quadtree a f x a0 -> m

foldMap' :: Monoid m => (a0 -> m) -> Quadtree a f x a0 -> m

foldr :: (a0 -> b -> b) -> b -> Quadtree a f x a0 -> b

foldr' :: (a0 -> b -> b) -> b -> Quadtree a f x a0 -> b

foldl :: (b -> a0 -> b) -> b -> Quadtree a f x a0 -> b

foldl' :: (b -> a0 -> b) -> b -> Quadtree a f x a0 -> b

foldr1 :: (a0 -> a0 -> a0) -> Quadtree a f x a0 -> a0

foldl1 :: (a0 -> a0 -> a0) -> Quadtree a f x a0 -> a0

toList :: Quadtree a f x a0 -> [a0]

null :: Quadtree a f x a0 -> Bool

length :: Quadtree a f x a0 -> Int

elem :: Eq a0 => a0 -> Quadtree a f x a0 -> Bool

maximum :: Ord a0 => Quadtree a f x a0 -> a0

minimum :: Ord a0 => Quadtree a f x a0 -> a0

sum :: Num a0 => Quadtree a f x a0 -> a0

product :: Num a0 => Quadtree a f x a0 -> a0

(Show a, Show x, Show y, Show (f x y)) => Show (Quadtree a f x y) Source # 
Instance details

Defined in LSC.Quadtree

Methods

showsPrec :: Int -> Quadtree a f x y -> ShowS

show :: Quadtree a f x y -> String

showList :: [Quadtree a f x y] -> ShowS

type Quadtree' a f x = Quadtree a f x x Source #

constructQuadtree :: Cartesian f x y => Line x y -> [(f x y, a)] -> Quadtree a f x y Source #

datapoints :: Monoid m => (a -> m) -> Quadtree a f x y -> [m] Source #