| Copyright | (c) 2013 diagrams-lib team (see LICENSE) | 
|---|---|
| License | BSD-style (see LICENSE) | 
| Maintainer | diagrams-discuss@googlegroups.com | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Diagrams.Query
Description
A query is a function that maps points in a vector space to values in some monoid. Queries naturally form a monoid, with two queries being combined pointwise.
- newtype Query v n m :: (* -> *) -> * -> * -> * = Query {}
 - query :: Monoid m => QDiagram b v n m -> Query v n m
 - sample :: Monoid m => QDiagram b v n m -> Point v n -> m
 - value :: Monoid m => m -> QDiagram b v n Any -> QDiagram b v n m
 - resetValue :: (Eq m, Monoid m) => QDiagram b v n m -> QDiagram b v n Any
 - clearValue :: QDiagram b v n m -> QDiagram b v n Any
 
Documentation
newtype Query v n m :: (* -> *) -> * -> * -> *
A query is a function that maps points in a vector space to values in some monoid. Queries naturally form a monoid, with two queries being combined pointwise.
The idea for annotating diagrams with monoidal queries came from the graphics-drawingcombinators package, http://hackage.haskell.org/package/graphics-drawingcombinators.
Instances
| Functor (Query v n) | |
| Applicative (Query v n) | |
| Semigroup m => Semigroup (Query v n m) | |
| Monoid m => Monoid (Query v n m) | |
| (Additive v, Num n) => Transformable (Query v n m) | |
| (Additive v, Num n) => HasOrigin (Query v n m) | |
| Wrapped (Query v n m) | |
| Rewrapped (Query v a m) (Query v' a' m') | |
| type V (Query v n m) = v | |
| type N (Query v n m) = n | |
| type Unwrapped (Query v n m) = Point v n -> m | 
query :: Monoid m => QDiagram b v n m -> Query v n m
Get the query function associated with a diagram.
sample :: Monoid m => QDiagram b v n m -> Point v n -> m
Sample a diagram's query function at a given point.
clearValue :: QDiagram b v n m -> QDiagram b v n Any
Set all the query values of a diagram to False.