packages feed

graph-rewriting-layout-0.4.1: GraphRewriting/Layout/Coulomb.hs

module GraphRewriting.Layout.Coulomb where

import Data.View
import GraphRewriting.Graph.Types
import GraphRewriting.Graph.Read
import GraphRewriting.Layout.Position
import GraphRewriting.Layout.Force


coulombForce ∷ View Position n ⇒ Node -> WithGraph n Force
coulombForce node = do
 	n ← examineNode position node
 	ns ← mapM (examineNode position) =<< readNodeList
 	return $ fsum [repulsion n' n | n' ← ns]