gore-and-ash-1.2.2.0: Core of FRP game engine called Gore&Ash

FRP.Netwire.Utils.Timeline

Description

Synopsis

# Time lines for statistics wires

data Timeline t a Source

A time line is a non-empty set of samples together with time information.

Instances

 Source (Eq t, Eq a) => Eq (Timeline t a) Source (Data t, Data a, Ord t) => Data (Timeline t a) Source (Ord t, Ord a) => Ord (Timeline t a) Source (Ord t, Read t, Read a) => Read (Timeline t a) Source (Show t, Show a) => Show (Timeline t a) Source

# Constructing time lines

insert :: Ord t => t -> a -> Timeline t a -> Timeline t a Source

Insert the given data point.

singleton :: t -> a -> Timeline t a Source

Singleton timeline with the given point.

union :: Ord t => Timeline t a -> Timeline t a -> Timeline t a Source

Union of two time lines. Right-biased.

# Linear sampling

linAvg :: (Fractional a, Fractional t, Real t) => t -> t -> Timeline t a -> a Source

Linearly interpolate the points in the time line, integrate the given time interval of the graph, divide by the interval length.

linCutL :: (Fractional a, Fractional t, Real t) => t -> Timeline t a -> Timeline t a Source

Cut the timeline at the given point in time `t`, such that all samples up to but not including `t` are forgotten. The most recent sample before `t` is moved and interpolated accordingly.

linCutR :: (Fractional a, Fractional t, Real t) => t -> Timeline t a -> Timeline t a Source

Cut the timeline at the given point in time `t`, such that all samples later than `t` are forgotten. The most recent sample after `t` is moved and interpolated accordingly.

linLookup :: (Fractional a, Fractional t, Real t) => t -> Timeline t a -> a Source

Look up with linear sampling.

# Staircase sampling

scAvg :: (Fractional a, Real t) => t -> t -> Timeline t a -> a Source

Integrate the given time interval of the staircase, divide by the interval length.

scCutL :: Ord t => t -> Timeline t a -> Timeline t a Source

Cut the timeline at the given point in time `t`, such that all samples up to but not including `t` are forgotten. The most recent sample before `t` is moved accordingly.

scCutR :: Ord t => t -> Timeline t a -> Timeline t a Source

Cut the timeline at the given point in time `t`, such that all samples later than `t` are forgotten. The earliest sample after `t` is moved accordingly.

scLookup :: Ord t => t -> Timeline t a -> a Source

Look up on staircase.