Copyright | (c) 2013 diagrams-lib team (see LICENSE) |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | diagrams-discuss@googlegroups.com |
Safe Haskell | None |
Language | Haskell2010 |
Diagrams.Names
Description
Names can be given to subdiagrams, and subdiagrams can later be queried by name. This module exports types for representing names and subdiagrams, and various functions for working with them.
- data AName :: *
- data Name :: *
- class (Typeable * a, Ord a, Show a) => IsName a where
- (.>) :: (IsName a1, IsName a2) => a1 -> a2 -> Name
- class Qualifiable q where
- data Subdiagram b v n m :: * -> (* -> *) -> * -> * -> *
- mkSubdiagram :: QDiagram b v n m -> Subdiagram b v n m
- subPoint :: (Metric v, OrderedField n) => Point v n -> Subdiagram b v n m
- getSub :: (Metric v, OrderedField n, Semigroup m) => Subdiagram b v n m -> QDiagram b v n m
- rawSub :: Subdiagram b v n m -> QDiagram b v n m
- location :: (Additive v, Num n) => Subdiagram b v n m -> Point v n
- data SubMap b v n m :: * -> (* -> *) -> * -> * -> *
- fromNames :: IsName a => [(a, Subdiagram b v n m)] -> SubMap b v n m
- rememberAs :: IsName a => a -> QDiagram b v n m -> SubMap b v n m -> SubMap b v n m
- lookupSub :: IsName nm => nm -> SubMap b v n m -> Maybe [Subdiagram b v n m]
- named :: (IsName nm, Metric v, OrderedField n, Semigroup m) => nm -> QDiagram b v n m -> QDiagram b v n m
- nameSub :: (IsName nm, Metric v, OrderedField n, Semigroup m) => (QDiagram b v n m -> Subdiagram b v n m) -> nm -> QDiagram b v n m -> QDiagram b v n m
- namePoint :: (IsName nm, Metric v, OrderedField n, Semigroup m) => (QDiagram b v n m -> Point v n) -> nm -> QDiagram b v n m -> QDiagram b v n m
- localize :: (Metric v, OrderedField n, Semigroup m) => QDiagram b v n m -> QDiagram b v n m
- names :: (Metric v, Semigroup m, OrderedField n) => QDiagram b v n m -> [(Name, [Point v n])]
- lookupName :: (IsName nm, Metric v, Semigroup m, OrderedField n) => nm -> QDiagram b v n m -> Maybe (Subdiagram b v n m)
- withName :: (IsName nm, Metric v, Semigroup m, OrderedField n) => nm -> (Subdiagram b v n m -> QDiagram b v n m -> QDiagram b v n m) -> QDiagram b v n m -> QDiagram b v n m
- withNameAll :: (IsName nm, Metric v, Semigroup m, OrderedField n) => nm -> ([Subdiagram b v n m] -> QDiagram b v n m -> QDiagram b v n m) -> QDiagram b v n m -> QDiagram b v n m
- withNames :: (IsName nm, Metric v, Semigroup m, OrderedField n) => [nm] -> ([Subdiagram b v n m] -> QDiagram b v n m -> QDiagram b v n m) -> QDiagram b v n m -> QDiagram b v n m
Names
class Qualifiable q where #
Minimal complete definition
Instances
Qualifiable Name | |
Qualifiable a => Qualifiable [a] | |
(Ord a, Qualifiable a) => Qualifiable (Set a) | |
Qualifiable a => Qualifiable (TransInv a) | |
Qualifiable a => Qualifiable (Located a) # | |
Qualifiable a => Qualifiable (b -> a) | |
(Qualifiable a, Qualifiable b) => Qualifiable (a, b) | |
Qualifiable a => Qualifiable (Map k a) | |
Qualifiable a => Qualifiable (Measured n a) | |
(Qualifiable a, Qualifiable b, Qualifiable c) => Qualifiable (a, b, c) | |
Qualifiable (SubMap b v n m) | |
(Metric v, OrderedField n, Semigroup m) => Qualifiable (QDiagram b v n m) | |
Subdiagrams
data Subdiagram b v n m :: * -> (* -> *) -> * -> * -> * #
Instances
Functor (Subdiagram b v n) | |
Transformable (Subdiagram b v n m) | |
(OrderedField n, Metric v, Semigroup m) => Traced (Subdiagram b v n m) | |
(Metric v, OrderedField n) => HasOrigin (Subdiagram b v n m) | |
(OrderedField n, Metric v, Monoid' m) => Enveloped (Subdiagram b v n m) | |
type V (Subdiagram b v n m) | |
type N (Subdiagram b v n m) | |
mkSubdiagram :: QDiagram b v n m -> Subdiagram b v n m #
subPoint :: (Metric v, OrderedField n) => Point v n -> Subdiagram b v n m #
getSub :: (Metric v, OrderedField n, Semigroup m) => Subdiagram b v n m -> QDiagram b v n m #
rawSub :: Subdiagram b v n m -> QDiagram b v n m #
Subdiagram maps
data SubMap b v n m :: * -> (* -> *) -> * -> * -> * #
Instances
Action Name (SubMap b v n m) | |
Functor (SubMap b v n) | |
Semigroup (SubMap b v n m) | |
Monoid (SubMap b v n m) | |
Wrapped (SubMap b v n m) | |
Transformable (SubMap b v n m) | |
Qualifiable (SubMap b v n m) | |
(OrderedField n, Metric v) => HasOrigin (SubMap b v n m) | |
Rewrapped (SubMap b v n m) (SubMap b' v' n' m') | |
type Unwrapped (SubMap b v n m) | |
type V (SubMap b v n m) | |
type N (SubMap b v n m) | |
fromNames :: IsName a => [(a, Subdiagram b v n m)] -> SubMap b v n m #
rememberAs :: IsName a => a -> QDiagram b v n m -> SubMap b v n m -> SubMap b v n m #
Naming things
named :: (IsName nm, Metric v, OrderedField n, Semigroup m) => nm -> QDiagram b v n m -> QDiagram b v n m Source #
Attach an atomic name to a diagram.
nameSub :: (IsName nm, Metric v, OrderedField n, Semigroup m) => (QDiagram b v n m -> Subdiagram b v n m) -> nm -> QDiagram b v n m -> QDiagram b v n m #
namePoint :: (IsName nm, Metric v, OrderedField n, Semigroup m) => (QDiagram b v n m -> Point v n) -> nm -> QDiagram b v n m -> QDiagram b v n m Source #
Attach an atomic name to a certain point (which may be computed from the given diagram), treated as a subdiagram with no content and a point envelope.
Querying by name
lookupName :: (IsName nm, Metric v, Semigroup m, OrderedField n) => nm -> QDiagram b v n m -> Maybe (Subdiagram b v n m) #
withName :: (IsName nm, Metric v, Semigroup m, OrderedField n) => nm -> (Subdiagram b v n m -> QDiagram b v n m -> QDiagram b v n m) -> QDiagram b v n m -> QDiagram b v n m #
withNameAll :: (IsName nm, Metric v, Semigroup m, OrderedField n) => nm -> ([Subdiagram b v n m] -> QDiagram b v n m -> QDiagram b v n m) -> QDiagram b v n m -> QDiagram b v n m #