Module

Hylograph.Kernel.D3.Types

Package
purescript-hylograph-d3-kernel
Repository
afcondon/purescript-hylograph-d3-kernel

D3 Force Engine Types

Type definitions for D3 force configurations. These are D3-specific and not shared with other kernels.

#SimNode Source

type SimNode :: Row Type -> Typetype SimNode extra = { index :: Int, vx :: Number, vy :: Number, x :: Number, y :: Number | extra }

A simulation node with position and velocity.

#SimulationState Source

type SimulationState :: Row Type -> Row Type -> Typetype SimulationState nodeRow linkData = { alpha :: Number, alphaDecay :: Number, alphaMin :: Number, alphaTarget :: Number, links :: Array (RawLink linkData), nodes :: Array (SimNode nodeRow), running :: Boolean, velocityDecay :: Number }

#defaultSimParams Source

defaultSimParams :: { alpha :: Number, alphaDecay :: Number, alphaMin :: Number, alphaTarget :: Number, velocityDecay :: Number }

#ManyBodyConfig Source

type ManyBodyConfig = { distanceMax :: Number, distanceMin :: Number, strength :: Number, theta :: Number }

#CollideConfig Source

type CollideConfig = { iterations :: Int, radius :: Number, strength :: Number }

#LinkConfig Source

type LinkConfig = { distance :: Number, iterations :: Int, strength :: Number }

#CenterConfig Source

type CenterConfig = { strength :: Number, x :: Number, y :: Number }

#ForceXConfig Source

type ForceXConfig = { strength :: Number, x :: Number }

#ForceYConfig Source

type ForceYConfig = { strength :: Number, y :: Number }

#RadialConfig Source

type RadialConfig = { radius :: Number, strength :: Number, x :: Number, y :: Number }

#ManyBodyFilteredConfig Source

type ManyBodyFilteredConfig node = { distanceMax :: Number, distanceMin :: Number, filter :: node -> Boolean, strength :: Number, theta :: Number }

#RadialFilteredConfig Source

type RadialFilteredConfig node = { filter :: node -> Boolean, radius :: Number, strength :: Number, x :: Number, y :: Number }

#CollideDynamicConfig Source

type CollideDynamicConfig node = { iterations :: Int, radiusAccessor :: node -> Number, strength :: Number }

#ForceXDynamicConfig Source

type ForceXDynamicConfig node = { strength :: Number, xAccessor :: node -> Number }

#ForceYDynamicConfig Source

type ForceYDynamicConfig node = { strength :: Number, yAccessor :: node -> Number }

#LinkDynamicConfig Source

type LinkDynamicConfig link = { distance :: Number, iterations :: Int, strengthAccessor :: link -> Number }