diagrams-lib-1.4.2.3: Embedded domain-specific language for declarative graphics

Copyright(c) 2013 diagrams-lib team (see LICENSE)
LicenseBSD-style (see LICENSE)
Maintainerdiagrams-discuss@googlegroups.com
Safe HaskellNone
LanguageHaskell2010

Diagrams.Trace

Contents

Description

"Traces", aka embedded raytracers, for finding points on the edge of a diagram. See Diagrams.Core.Trace for internal implementation details.

Synopsis

Types

data Trace (v :: Type -> Type) n #

Instances
Show (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

Methods

showsPrec :: Int -> Trace v n -> ShowS Source #

show :: Trace v n -> String Source #

showList :: [Trace v n] -> ShowS Source #

Ord n => Semigroup (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

Methods

(<>) :: Trace v n -> Trace v n -> Trace v n Source #

sconcat :: NonEmpty (Trace v n) -> Trace v n Source #

stimes :: Integral b => b -> Trace v n -> Trace v n Source #

Ord n => Monoid (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

Methods

mempty :: Trace v n Source #

mappend :: Trace v n -> Trace v n -> Trace v n Source #

mconcat :: [Trace v n] -> Trace v n Source #

Wrapped (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

Associated Types

type Unwrapped (Trace v n) :: Type Source #

Methods

_Wrapped' :: Iso' (Trace v n) (Unwrapped (Trace v n)) Source #

(Additive v, Num n) => HasOrigin (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

Methods

moveOriginTo :: Point (V (Trace v n)) (N (Trace v n)) -> Trace v n -> Trace v n #

(Additive v, Ord n) => Traced (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

Methods

getTrace :: Trace v n -> Trace (V (Trace v n)) (N (Trace v n))

(Additive v, Num n) => Transformable (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

Methods

transform :: Transformation (V (Trace v n)) (N (Trace v n)) -> Trace v n -> Trace v n #

(Metric v, OrderedField n) => Alignable (Trace v n) Source # 
Instance details

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') 
Instance details

Defined in Diagrams.Core.Trace

type Unwrapped (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

type Unwrapped (Trace v n) = Point v n -> v n -> SortedList n
type N (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

type N (Trace v n) = n
type V (Trace v n) 
Instance details

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
Traced b => Traced [b] 
Instance details

Defined in Diagrams.Core.Trace

Methods

getTrace :: [b] -> Trace (V [b]) (N [b])

Traced b => Traced (Set b) 
Instance details

Defined in Diagrams.Core.Trace

Methods

getTrace :: Set b -> Trace (V (Set b)) (N (Set b))

Traced t => Traced (TransInv t) 
Instance details

Defined in Diagrams.Core.Trace

Methods

getTrace :: TransInv t -> Trace (V (TransInv t)) (N (TransInv t))

(RealFloat n, Ord n) => Traced (CSG n) Source # 
Instance details

Defined in Diagrams.ThreeD.Shapes

Methods

getTrace :: CSG n -> Trace (V (CSG n)) (N (CSG n))

(RealFloat n, Ord n) => Traced (Frustum n) Source # 
Instance details

Defined in Diagrams.ThreeD.Shapes

Methods

getTrace :: Frustum n -> Trace (V (Frustum n)) (N (Frustum n))

(Fractional n, Ord n) => Traced (Box n) Source # 
Instance details

Defined in Diagrams.ThreeD.Shapes

Methods

getTrace :: Box n -> Trace (V (Box n)) (N (Box n))

OrderedField n => Traced (Ellipsoid n) Source # 
Instance details

Defined in Diagrams.ThreeD.Shapes

Methods

getTrace :: Ellipsoid n -> Trace (V (Ellipsoid n)) (N (Ellipsoid n))

(Traced a, Num (N a)) => Traced (Located a) Source #

The trace of a Located a is the trace of the a, translated to the location.

Instance details

Defined in Diagrams.Located

Methods

getTrace :: Located a -> Trace (V (Located a)) (N (Located a))

(Traced a, Traced b, SameSpace a b) => Traced (a, b) 
Instance details

Defined in Diagrams.Core.Trace

Methods

getTrace :: (a, b) -> Trace (V (a, b)) (N (a, b))

Traced b => Traced (Map k b) 
Instance details

Defined in Diagrams.Core.Trace

Methods

getTrace :: Map k b -> Trace (V (Map k b)) (N (Map k b))

(Additive v, Ord n) => Traced (Point v n) 
Instance details

Defined in Diagrams.Core.Trace

Methods

getTrace :: Point v n -> Trace (V (Point v n)) (N (Point v n))

(Additive v, Ord n) => Traced (Trace v n) 
Instance details

Defined in Diagrams.Core.Trace

Methods

getTrace :: Trace v n -> Trace (V (Trace v n)) (N (Trace v n))

OrderedField n => Traced (FixedSegment V2 n) Source # 
Instance details

Defined in Diagrams.TwoD.Segment

Methods

getTrace :: FixedSegment V2 n -> Trace (V (FixedSegment V2 n)) (N (FixedSegment V2 n))

RealFloat n => Traced (Trail V2 n) Source # 
Instance details

Defined in Diagrams.TwoD.Path

Methods

getTrace :: Trail V2 n -> Trace (V (Trail V2 n)) (N (Trail V2 n))

RealFloat n => Traced (Path V2 n) Source # 
Instance details

Defined in Diagrams.TwoD.Path

Methods

getTrace :: Path V2 n -> Trace (V (Path V2 n)) (N (Path V2 n))

TypeableFloat n => Traced (BoundingBox V3 n) Source # 
Instance details

Defined in Diagrams.BoundingBox

Methods

getTrace :: BoundingBox V3 n -> Trace (V (BoundingBox V3 n)) (N (BoundingBox V3 n))

RealFloat n => Traced (BoundingBox V2 n) Source # 
Instance details

Defined in Diagrams.BoundingBox

Methods

getTrace :: BoundingBox V2 n -> Trace (V (BoundingBox V2 n)) (N (BoundingBox V2 n))

OrderedField n => Traced (Segment Closed V2 n) Source # 
Instance details

Defined in Diagrams.TwoD.Segment

Methods

getTrace :: Segment Closed V2 n -> Trace (V (Segment Closed V2 n)) (N (Segment Closed V2 n))

(Metric v, OrderedField n, Semigroup m) => Traced (QDiagram b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

getTrace :: QDiagram b v n m -> Trace (V (QDiagram b v n m)) (N (QDiagram b v n m))

(OrderedField n, Metric v, Semigroup m) => Traced (Subdiagram b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

getTrace :: Subdiagram b v n m -> Trace (V (Subdiagram b v n m)) (N (Subdiagram b v n m))

Diagram traces

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 Source #

Use the trace from some object as the trace for a diagram, in place of the diagram's default trace.

Querying traces

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) #

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.