| Copyright | (c) 2013 diagrams-lib team (see LICENSE) |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | diagrams-discuss@googlegroups.com |
| Safe Haskell | None |
| Language | Haskell2010 |
Diagrams.Trace
Description
"Traces", aka embedded raytracers, for finding points on the edge of a diagram. See Diagrams.Core.Trace for internal implementation details.
- data Trace v n :: (* -> *) -> * -> *
- class (Additive (V a), Ord (N a)) => Traced a
- trace :: (Metric v, OrderedField n, Semigroup m) => Lens' (QDiagram b v n m) (Trace v n)
- setTrace :: (OrderedField n, Metric v, Semigroup m) => Trace v n -> QDiagram b v n m -> QDiagram b v n m
- withTrace :: (InSpace v n a, Metric v, OrderedField n, Monoid' m, Traced a) => a -> QDiagram b v n m -> QDiagram b v n m
- traceV :: ((~) * n (N a), Num n, Traced a) => Point (V a) n -> V a n -> a -> Maybe (V a n)
- traceP :: ((~) * n (N a), Traced a, Num n) => Point (V a) n -> V a n -> a -> Maybe (Point (V a) n)
- maxTraceV :: ((~) * n (N a), Num n, Traced a) => Point (V a) n -> V a n -> a -> Maybe (V a n)
- maxTraceP :: ((~) * n (N a), Num n, Traced a) => Point (V a) n -> V a n -> a -> Maybe (Point (V a) n)
- boundaryFrom :: (OrderedField n, Metric v, Semigroup m) => Subdiagram b v n m -> v n -> Point v n
- boundaryFromMay :: (Metric v, OrderedField n, Semigroup m) => Subdiagram b v n m -> v n -> Maybe (Point v n)
Types
data Trace v n :: (* -> *) -> * -> *
Instances
| Show (Trace v n) | |
| Ord n => Monoid (Trace v n) | |
| Ord n => Semigroup (Trace v n) | |
| Wrapped (Trace v n) | |
| (Additive v, Num n) => Transformable (Trace v n) | |
| (Additive v, Ord n) => Traced (Trace v n) | |
| (Additive v, Num n) => HasOrigin (Trace v n) | |
| (Metric v, OrderedField n) => Alignable (Trace v n) Source | |
| Rewrapped (Trace v n) (Trace v' n') | |
| type Unwrapped (Trace v n) = Point v n -> v n -> SortedList n | |
| type V (Trace v n) = v | |
| type N (Trace v n) = n |
class (Additive (V a), Ord (N a)) => Traced a
Minimal complete definition
getTrace
Instances
| Traced b => Traced [b] | |
| Traced b => Traced (Set b) | |
| Traced t => Traced (TransInv t) | |
| (Traced a, Num (N a)) => Traced (Located a) | The trace of a |
| (Traced a, Traced b, SameSpace a b) => Traced (a, b) | |
| Traced b => Traced (Map k b) | |
| (Additive v, Ord n) => Traced (Point v n) | |
| (Additive v, Ord n) => Traced (Trace v n) | |
| TypeableFloat n => Traced (BoundingBox V3 n) | |
| RealFloat n => Traced (BoundingBox V2 n) | |
| (OrderedField n, Metric v, Semigroup m) => Traced (Subdiagram b v n m) | |
| (Metric v, OrderedField n, Semigroup m) => Traced (QDiagram b v n m) |
Diagram traces
setTrace :: (OrderedField n, Metric v, Semigroup m) => Trace v n -> QDiagram b v n m -> QDiagram b v n m
withTrace :: (InSpace v n a, Metric v, OrderedField n, Monoid' m, Traced a) => a -> QDiagram b v n m -> QDiagram b v n m Source
Use the trace from some object as the trace for a diagram, in place of the diagram's default trace.
Querying traces
maxTraceP :: ((~) * n (N a), Num n, Traced a) => Point (V a) n -> V a n -> a -> Maybe (Point (V a) n)
Subdiagram traces
boundaryFrom :: (OrderedField n, Metric v, Semigroup m) => Subdiagram b v n m -> v n -> Point v n Source
Compute the furthest point on the boundary of a subdiagram,
beginning from the location (local origin) of the subdiagram and
moving in the direction of the given vector. If there is no such
point, the origin is returned; see also boundaryFromMay.
boundaryFromMay :: (Metric v, OrderedField n, Semigroup m) => Subdiagram b v n m -> v n -> Maybe (Point v n) Source
Compute the furthest point on the boundary of a subdiagram,
beginning from the location (local origin) of the subdiagram and
moving in the direction of the given vector, or Nothing if
there is no such point.