| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Geometry.Interval
- newtype Interval a r = GInterval {
- _unInterval :: Range (r :+ a)
- unInterval :: forall a r a r. Iso (Interval a r) (Interval a r) (Range ((:+) r a)) (Range ((:+) r a))
- inInterval :: Ord r => r -> Interval a r -> Bool
- pattern OpenInterval :: (:+) r a -> (:+) r a -> Interval a r
- pattern ClosedInterval :: (:+) r a -> (:+) r a -> Interval a r
- pattern Interval :: EndPoint ((:+) r a) -> EndPoint ((:+) r a) -> Interval a r
- class HasStart t where
- type StartCore t
- type StartExtra t
- start :: Lens' t (StartCore t :+ StartExtra t)
- class HasEnd t where
- shiftLeft' :: Num r => r -> Interval a r -> Interval a r
Documentation
An Interval is essentially a Range but with possible payload
Constructors
| GInterval | |
Fields
| |
Instances
| Bifunctor Interval Source | |
| Functor (Interval a) Source | |
| Foldable (Interval a) Source | |
| Traversable (Interval a) Source | |
| (Eq a, Eq r) => Eq (Interval a r) Source | |
| (Show a, Show r) => Show (Interval a r) Source | |
| HasEnd (Interval a r) Source | |
| HasStart (Interval a r) Source | |
| Ord r => IsIntersectableWith (Interval a r) (Interval a r) Source | |
| type NumType (Interval a r) = r Source | |
| type Dimension (Interval a r) = 1 Source | |
| type EndCore (Interval a r) = r Source | |
| type EndExtra (Interval a r) = a Source | |
| type StartCore (Interval a r) = r Source | |
| type StartExtra (Interval a r) = a Source | |
| type IntersectionOf (Interval a r) (Interval a r) = (:) * NoIntersection ((:) * (Interval a r) ([] *)) Source |
unInterval :: forall a r a r. Iso (Interval a r) (Interval a r) (Range ((:+) r a)) (Range ((:+) r a)) Source
inInterval :: Ord r => r -> Interval a r -> Bool Source
Test if a value lies in an interval. Note that the difference between inInterval and inRange is that the extra value is *not* used in the comparison with inInterval, whereas it is in inRange.
pattern OpenInterval :: (:+) r a -> (:+) r a -> Interval a r Source
pattern ClosedInterval :: (:+) r a -> (:+) r a -> Interval a r Source
shiftLeft' :: Num r => r -> Interval a r -> Interval a r Source