packages feed

graph-rewriting-gl-0.6.9: GraphRewriting/GL/HyperEdge.hs

{-# LANGUAGE UnicodeSyntax, FlexibleContexts #-}
module GraphRewriting.GL.HyperEdge where

import GraphRewriting.Graph
import GraphRewriting.Graph.Read
import GraphRewriting.Layout.Rotation
import GraphRewriting.Layout.Position
import GraphRewriting.Layout.PortSpec
import GraphRewriting.Layout.RotPortSpec


type HyperEdgeRepr n = Edge → [n] → [(Vector2, Vector2)]

star ∷ (View [Port] n, View Position n, PortSpec n, View Rotation n) ⇒ HyperEdgeRepr n
star e ns = [(port, focalPoint ports) | port ← ports]
	where ports = concatMap (propOfPort absRotPortPos e) ns

complete ∷ (View Position n, PortSpec n, View Rotation n) ⇒ Edge → [n] → [(Vector2, Vector2)]
complete = undefined