Safe Haskell | None |
---|---|

Language | Haskell2010 |

## Synopsis

- data Orthogonal
- newtype Slab (o :: Orthogonal) a r = Slab {}
- unSlab :: forall o a r o a r. Iso (Slab o a r) (Slab o a r) (Interval a r) (Interval a r)
- horizontalSlab :: (r :+ a) -> (r :+ a) -> Slab Horizontal a r
- verticalSlab :: (r :+ a) -> (r :+ a) -> Slab Vertical a r
- class HasBoundingLines (o :: Orthogonal) where

# Documentation

data Orthogonal Source #

## Instances

Eq Orthogonal Source # | |

Defined in Data.Geometry.Slab (==) :: Orthogonal -> Orthogonal -> Bool # (/=) :: Orthogonal -> Orthogonal -> Bool # | |

Read Orthogonal Source # | |

Defined in Data.Geometry.Slab readsPrec :: Int -> ReadS Orthogonal # readList :: ReadS [Orthogonal] # readPrec :: ReadPrec Orthogonal # readListPrec :: ReadPrec [Orthogonal] # | |

Show Orthogonal Source # | |

Defined in Data.Geometry.Slab showsPrec :: Int -> Orthogonal -> ShowS # show :: Orthogonal -> String # showList :: [Orthogonal] -> ShowS # |

newtype Slab (o :: Orthogonal) a r Source #

## Instances

Bifunctor (Slab o) Source # | |

Functor (Slab o a) Source # | |

Foldable (Slab o a) Source # | |

Defined in Data.Geometry.Slab fold :: Monoid m => Slab o a m -> m # foldMap :: Monoid m => (a0 -> m) -> Slab o a a0 -> m # foldr :: (a0 -> b -> b) -> b -> Slab o a a0 -> b # foldr' :: (a0 -> b -> b) -> b -> Slab o a a0 -> b # foldl :: (b -> a0 -> b) -> b -> Slab o a a0 -> b # foldl' :: (b -> a0 -> b) -> b -> Slab o a a0 -> b # foldr1 :: (a0 -> a0 -> a0) -> Slab o a a0 -> a0 # foldl1 :: (a0 -> a0 -> a0) -> Slab o a a0 -> a0 # toList :: Slab o a a0 -> [a0] # length :: Slab o a a0 -> Int # elem :: Eq a0 => a0 -> Slab o a a0 -> Bool # maximum :: Ord a0 => Slab o a a0 -> a0 # minimum :: Ord a0 => Slab o a a0 -> a0 # | |

Traversable (Slab o a) Source # | |

(Fractional r, Ord r, HasBoundingLines o) => IsIntersectableWith (Line 2 r) (Slab o a r) Source # | |

(Eq r, Eq a) => Eq (Slab o a r) Source # | |

(Show a, Show r) => Show (Slab o a r) Source # | |

(Fractional r, Ord r, HasBoundingLines o) => IsIntersectableWith (LineSegment 2 a r) (Slab o a r) Source # | |

Defined in Data.Geometry.Slab intersect :: LineSegment 2 a r -> Slab o a r -> Intersection (LineSegment 2 a r) (Slab o a r) intersects :: LineSegment 2 a r -> Slab o a r -> Bool nonEmptyIntersection :: proxy (LineSegment 2 a r) -> proxy (Slab o a r) -> Intersection (LineSegment 2 a r) (Slab o a r) -> Bool | |

Ord r => IsIntersectableWith (Slab o a r) (Slab o a r) Source # | |

IsIntersectableWith (Slab Horizontal a r) (Slab Vertical a r) Source # | |

Defined in Data.Geometry.Slab intersect :: Slab Horizontal a r -> Slab Vertical a r -> Intersection (Slab Horizontal a r) (Slab Vertical a r) intersects :: Slab Horizontal a r -> Slab Vertical a r -> Bool nonEmptyIntersection :: proxy (Slab Horizontal a r) -> proxy (Slab Vertical a r) -> Intersection (Slab Horizontal a r) (Slab Vertical a r) -> Bool | |

(Fractional r, Ord r, HasBoundingLines o) => IsIntersectableWith (SubLine 2 a r r) (Slab o a r) Source # | |

type IntersectionOf (Line 2 r) (Slab o a r) Source # | |

Defined in Data.Geometry.Slab type IntersectionOf (Line 2 r) (Slab o a r) = NoIntersection ': (Line 2 r ': (LineSegment 2 a r ': ([] :: [Type]))) | |

type IntersectionOf (LineSegment 2 p r) (Slab o a r) Source # | |

Defined in Data.Geometry.Slab type IntersectionOf (LineSegment 2 p r) (Slab o a r) = NoIntersection ': (LineSegment 2 () r ': ([] :: [Type])) | |

type IntersectionOf (Slab o a r) (Slab o a r) Source # | |

Defined in Data.Geometry.Slab | |

type IntersectionOf (Slab Horizontal a r) (Slab Vertical a r) Source # | |

Defined in Data.Geometry.Slab | |

type IntersectionOf (SubLine 2 p s r) (Slab o a r) Source # | |

Defined in Data.Geometry.Slab |

horizontalSlab :: (r :+ a) -> (r :+ a) -> Slab Horizontal a r Source #

Smart consturctor for creating a horizontal slab

verticalSlab :: (r :+ a) -> (r :+ a) -> Slab Vertical a r Source #

Smart consturctor for creating a vertical slab

class HasBoundingLines (o :: Orthogonal) where Source #

boundingLines :: Num r => Slab o a r -> (Line 2 r :+ a, Line 2 r :+ a) Source #

The two bounding lines of the slab, first the lower one, then the higher one:

## Instances

HasBoundingLines Horizontal Source # | |

Defined in Data.Geometry.Slab | |

HasBoundingLines Vertical Source # | |