Copyright | (c) 2011 diagrams-core team (see LICENSE) |
---|---|

License | BSD-style (see LICENSE) |

Maintainer | diagrams-discuss@googlegroups.com |

Safe Haskell | None |

Language | Haskell2010 |

Things which can be placed "next to" other things, for some appropriate notion of "next to".

- class Juxtaposable a where
- juxtaposeDefault :: (Enveloped a, HasOrigin a) => Vn a -> a -> a -> a

# Documentation

class Juxtaposable a where #

Class of things which can be placed "next to" other things, for some appropriate notion of "next to".

juxtapose :: Vn a -> a -> a -> a #

`juxtapose v a1 a2`

positions `a2`

next to `a1`

in the
direction of `v`

. In particular, place `a2`

so that `v`

points
from the local origin of `a1`

towards the old local origin of
`a2`

; `a1`

's local origin becomes `a2`

's new local origin. The
result is just a translated version of `a2`

. (In particular,
this operation does not *combine* `a1`

and `a2`

in any way.)

(Enveloped b, HasOrigin b) => Juxtaposable [b] # | |

(Enveloped b, HasOrigin b, Ord b) => Juxtaposable (Set b) # | |

Juxtaposable a => Juxtaposable (b -> a) # | |

(Enveloped a, HasOrigin a, Enveloped b, HasOrigin b, (~) (* -> *) (V a) (V b), (~) * (N a) (N b)) => Juxtaposable (a, b) # | |

(Enveloped b, HasOrigin b) => Juxtaposable (Map k b) # | |

Juxtaposable a => Juxtaposable (Measured n a) # | |

(Metric v, OrderedField n) => Juxtaposable (Envelope v n) # | |

(Metric v, OrderedField n, Monoid' m) => Juxtaposable (QDiagram b v n m) # | |