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.
Synopsis
- data Trace (v :: Type -> Type) 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 :: Type -> Type) n #
Instances
Show (Trace v n) | |
Ord n => Semigroup (Trace v n) | |
Ord n => Monoid (Trace v n) | |
Wrapped (Trace v n) | |
(Additive v, Num n) => HasOrigin (Trace v n) | |
Defined in Diagrams.Core.Trace | |
(Additive v, Ord n) => Traced (Trace v n) | |
(Additive v, Num n) => Transformable (Trace v n) | |
Defined in Diagrams.Core.Trace | |
(Metric v, OrderedField n) => Alignable (Trace v n) Source # | |
Defined in Diagrams.Align Methods alignBy' :: (InSpace v0 n0 (Trace v n), Fractional n0, HasOrigin (Trace v n)) => (v0 n0 -> Trace v n -> Point v0 n0) -> v0 n0 -> n0 -> Trace v n -> Trace v n Source # defaultBoundary :: (V (Trace v n) ~ v0, N (Trace v n) ~ n0) => v0 n0 -> Trace v n -> Point v0 n0 Source # alignBy :: (InSpace v0 n0 (Trace v n), Fractional n0, HasOrigin (Trace v n)) => v0 n0 -> n0 -> Trace v n -> Trace v n Source # | |
Rewrapped (Trace v n) (Trace v' n') | |
Defined in Diagrams.Core.Trace | |
type Unwrapped (Trace v n) | |
Defined in Diagrams.Core.Trace | |
type N (Trace v n) | |
Defined in Diagrams.Core.Trace type N (Trace v n) = n | |
type V (Trace v n) | |
Defined in Diagrams.Core.Trace type V (Trace v n) = v |
class (Additive (V a), Ord (N a)) => Traced a #
Minimal complete definition
getTrace
Instances
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
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.