eventloop-0.8.2.8: A different take on an IO system. Based on Amanda's IO loop, this eventloop takes a function that maps input events to output events. It can easily be extended by modules that represent IO devices or join multiple modules together.

Safe HaskellNone
LanguageHaskell2010

Eventloop.Module.Graphs

Synopsis

Documentation

onNode :: [Node] -> Pos -> Maybe Node Source #

Checkes to see if there is a node on a certain position

graphsPreProcessor :: PreProcessor Source #

Abstracts the standardized EventTypes to GraphsIn

graphsPostProcessor :: PostProcessor Source #

Abstracts GraphsOut back to BasicShapes and Canvas events

colorToRGBAColor :: Color -> Color Source #

Translates color datatype to RGBA codes

thicknessToFloat :: Thickness -> StrokeLineThickness Source #

Translates the thickness to a float

posOnVector :: Float -> Vector -> Pos -> Pos Source #

Returns the point when making a step f long from the point start in the direction of the vector. The length between start pos and result pos is always f.

vectorize :: Pos -> Pos -> Vector Source #

Vector from p1 to p2

downPerpendicularTo :: Pos -> Pos -> Vector Source #

Returns the vector perpendicular on the given vector between the 2 points. Always has positive y and vector length 1; y is inverted in canvas

upPerpendicularTo :: Pos -> Pos -> Vector Source #

Returns the vector perpendicular on the given vector between the 2 points. Always has negative y and vector length 1; y is inverted in canvas

vectorSize :: Vector -> Float Source #

Returns the size of the vector

data Weighted Source #

Constructors

Weighted 
Unweighted 
Instances
Eq Weighted Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Show Weighted Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Generic Weighted Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Associated Types

type Rep Weighted :: Type -> Type #

Methods

from :: Weighted -> Rep Weighted x #

to :: Rep Weighted x -> Weighted #

NFData Weighted Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

rnf :: Weighted -> () #

type Rep Weighted Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

type Rep Weighted = D1 (MetaData "Weighted" "Eventloop.Module.Graphs.Types" "eventloop-0.8.2.8-inplace" False) (C1 (MetaCons "Weighted" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Unweighted" PrefixI False) (U1 :: Type -> Type))

data Directed Source #

Constructors

Directed 
Undirected 
Instances
Eq Directed Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Show Directed Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Generic Directed Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Associated Types

type Rep Directed :: Type -> Type #

Methods

from :: Directed -> Rep Directed x #

to :: Rep Directed x -> Directed #

NFData Directed Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

rnf :: Directed -> () #

type Rep Directed Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

type Rep Directed = D1 (MetaData "Directed" "Eventloop.Module.Graphs.Types" "eventloop-0.8.2.8-inplace" False) (C1 (MetaCons "Directed" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Undirected" PrefixI False) (U1 :: Type -> Type))

data Thickness Source #

Constructors

Thin 
Thick 
Instances
Eq Thickness Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Show Thickness Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Generic Thickness Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Associated Types

type Rep Thickness :: Type -> Type #

NFData Thickness Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

rnf :: Thickness -> () #

type Rep Thickness Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

type Rep Thickness = D1 (MetaData "Thickness" "Eventloop.Module.Graphs.Types" "eventloop-0.8.2.8-inplace" False) (C1 (MetaCons "Thin" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Thick" PrefixI False) (U1 :: Type -> Type))

data Color Source #

Constructors

Red 
Blue 
Green 
Purple 
Grey 
Yellow 
Orange 
Black 
White 
Instances
Eq Color Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

(==) :: Color -> Color -> Bool #

(/=) :: Color -> Color -> Bool #

Show Color Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

showsPrec :: Int -> Color -> ShowS #

show :: Color -> String #

showList :: [Color] -> ShowS #

Generic Color Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Associated Types

type Rep Color :: Type -> Type #

Methods

from :: Color -> Rep Color x #

to :: Rep Color x -> Color #

NFData Color Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

rnf :: Color -> () #

type Rep Color Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

type Rep Color = D1 (MetaData "Color" "Eventloop.Module.Graphs.Types" "eventloop-0.8.2.8-inplace" False) (((C1 (MetaCons "Red" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Blue" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Green" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Purple" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Grey" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Yellow" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Orange" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Black" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "White" PrefixI False) (U1 :: Type -> Type)))))

data Graph Source #

Constructors

Graph 

Fields

Instances
Eq Graph Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

(==) :: Graph -> Graph -> Bool #

(/=) :: Graph -> Graph -> Bool #

Show Graph Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

showsPrec :: Int -> Graph -> ShowS #

show :: Graph -> String #

showList :: [Graph] -> ShowS #

Generic Graph Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Associated Types

type Rep Graph :: Type -> Type #

Methods

from :: Graph -> Rep Graph x #

to :: Rep Graph x -> Graph #

NFData Graph Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

rnf :: Graph -> () #

type Rep Graph Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

type Node = (Label, Pos, Color) Source #

data GraphsOut Source #

Instances
Eq GraphsOut Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Show GraphsOut Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Generic GraphsOut Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Associated Types

type Rep GraphsOut :: Type -> Type #

NFData GraphsOut Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Methods

rnf :: GraphsOut -> () #

type Rep GraphsOut Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

type Rep GraphsOut = D1 (MetaData "GraphsOut" "Eventloop.Module.Graphs.Types" "eventloop-0.8.2.8-inplace" False) (C1 (MetaCons "SetupGraphs" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "DrawGraph" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Graph)) :+: C1 (MetaCons "Instructions" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String]))))

data GraphsIn Source #

Constructors

Mouse MouseEvent Pos 
Key [Char] 
Instances
Eq GraphsIn Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

Show GraphsIn Source # 
Instance details

Defined in Eventloop.Module.Graphs.Types

type Pos = (Float, Float) Source #

data MouseButton Source #

Instances
Eq MouseButton Source # 
Instance details

Defined in Eventloop.Module.Websocket.Mouse.Types

Show MouseButton Source # 
Instance details

Defined in Eventloop.Module.Websocket.Mouse.Types

Generic MouseButton Source # 
Instance details

Defined in Eventloop.Module.Websocket.Mouse.Types

Associated Types

type Rep MouseButton :: Type -> Type #

NFData MouseButton Source # 
Instance details

Defined in Eventloop.Module.Websocket.Mouse.Types

Methods

rnf :: MouseButton -> () #

FromJSON MouseButton 
Instance details

Defined in Eventloop.Module.Websocket.Mouse.Mouse

Methods

parseJSON :: Value -> Parser MouseButton

parseJSONList :: Value -> Parser [MouseButton]

type Rep MouseButton Source # 
Instance details

Defined in Eventloop.Module.Websocket.Mouse.Types

type Rep MouseButton = D1 (MetaData "MouseButton" "Eventloop.Module.Websocket.Mouse.Types" "eventloop-0.8.2.8-inplace" False) (C1 (MetaCons "MouseLeft" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "MouseRight" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "MouseMiddle" PrefixI False) (U1 :: Type -> Type)))