hgeometry-0.11.0.0: Geometric Algorithms, Data structures, and Data types.

Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellNone
LanguageHaskell2010

Algorithms.Geometry.WellSeparatedPairDecomposition.Types

Contents

Description

Data types that can represent a well separated pair decomposition (wspd).

Synopsis

Documentation

type SplitTree d p r a = BinLeafTree (NodeData d r a) (Point d r :+ p) Source #

type PointSet d p r a = SplitTree d p r a Source #

type WSP d p r a = (PointSet d p r a, PointSet d p r a) Source #

data NodeData d r a Source #

Data that we store in the split tree

Constructors

NodeData 

Fields

Instances
Semigroup v => Measured v (NodeData d r v) Source # 
Instance details

Defined in Algorithms.Geometry.WellSeparatedPairDecomposition.Types

Methods

measure :: NodeData d r v -> v #

Functor (NodeData d r) Source # 
Instance details

Defined in Algorithms.Geometry.WellSeparatedPairDecomposition.Types

Methods

fmap :: (a -> b) -> NodeData d r a -> NodeData d r b #

(<$) :: a -> NodeData d r b -> NodeData d r a #

Foldable (NodeData d r) Source # 
Instance details

Defined in Algorithms.Geometry.WellSeparatedPairDecomposition.Types

Methods

fold :: Monoid m => NodeData d r m -> m #

foldMap :: Monoid m => (a -> m) -> NodeData d r a -> m #

foldr :: (a -> b -> b) -> b -> NodeData d r a -> b #

foldr' :: (a -> b -> b) -> b -> NodeData d r a -> b #

foldl :: (b -> a -> b) -> b -> NodeData d r a -> b #

foldl' :: (b -> a -> b) -> b -> NodeData d r a -> b #

foldr1 :: (a -> a -> a) -> NodeData d r a -> a #

foldl1 :: (a -> a -> a) -> NodeData d r a -> a #

toList :: NodeData d r a -> [a] #

null :: NodeData d r a -> Bool #

length :: NodeData d r a -> Int #

elem :: Eq a => a -> NodeData d r a -> Bool #

maximum :: Ord a => NodeData d r a -> a #

minimum :: Ord a => NodeData d r a -> a #

sum :: Num a => NodeData d r a -> a #

product :: Num a => NodeData d r a -> a #

Traversable (NodeData d r) Source # 
Instance details

Defined in Algorithms.Geometry.WellSeparatedPairDecomposition.Types

Methods

traverse :: Applicative f => (a -> f b) -> NodeData d r a -> f (NodeData d r b) #

sequenceA :: Applicative f => NodeData d r (f a) -> f (NodeData d r a) #

mapM :: Monad m => (a -> m b) -> NodeData d r a -> m (NodeData d r b) #

sequence :: Monad m => NodeData d r (m a) -> m (NodeData d r a) #

(Arity d, Eq r, Eq a) => Eq (NodeData d r a) Source # 
Instance details

Defined in Algorithms.Geometry.WellSeparatedPairDecomposition.Types

Methods

(==) :: NodeData d r a -> NodeData d r a -> Bool #

(/=) :: NodeData d r a -> NodeData d r a -> Bool #

(Arity d, Show r, Show a) => Show (NodeData d r a) Source # 
Instance details

Defined in Algorithms.Geometry.WellSeparatedPairDecomposition.Types

Methods

showsPrec :: Int -> NodeData d r a -> ShowS #

show :: NodeData d r a -> String #

showList :: [NodeData d r a] -> ShowS #

splitDim :: forall d r a. Lens' (NodeData d r a) Int Source #

nodeData :: forall d r a a. Lens (NodeData d r a) (NodeData d r a) a a Source #

bBox :: forall d r a d r. Lens (NodeData d r a) (NodeData d r a) (Box d () r) (Box d () r) Source #

Implementation types

type PointSeq d p r = LSeq 1 (Point d r :+ p) Source #

type Idx = Int Source #

data FindAndCompact d r p Source #

Constructors

FAC 

Fields

Instances
(Arity d, Eq r, Eq p) => Eq (FindAndCompact d r p) Source # 
Instance details

Defined in Algorithms.Geometry.WellSeparatedPairDecomposition.Types

Methods

(==) :: FindAndCompact d r p -> FindAndCompact d r p -> Bool #

(/=) :: FindAndCompact d r p -> FindAndCompact d r p -> Bool #

(Arity d, Show r, Show p) => Show (FindAndCompact d r p) Source # 
Instance details

Defined in Algorithms.Geometry.WellSeparatedPairDecomposition.Types

Methods

showsPrec :: Int -> FindAndCompact d r p -> ShowS #

show :: FindAndCompact d r p -> String #

showList :: [FindAndCompact d r p] -> ShowS #

shortSide :: forall d r p. Lens' (FindAndCompact d r p) ShortSide Source #

rightPart :: forall d r p. Lens' (FindAndCompact d r p) (Seq ((:+) (Point d r) p)) Source #

leftPart :: forall d r p. Lens' (FindAndCompact d r p) (Seq ((:+) (Point d r) p)) Source #