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.