Module

Hylograph.Data.Graph.Algorithms

Package
purescript-hylograph-selection
Repository
afcondon/purescript-hylograph-selection

#ReachabilityResult Source

type ReachabilityResult = { nodes :: Set NodeID, paths :: Array (Array NodeID), redundantEdges :: Array (Tuple NodeID NodeID), spanningTree :: Array (Tuple NodeID NodeID) }

Result of reachability analysis from a root node Includes all reachable nodes, the spanning tree edges, and any redundant (non-tree) edges

#getReachableNodes Source

getReachableNodes :: forall node link. GraphConfig node link -> NodeID -> GraphModel node link -> ReachabilityResult

Compute all nodes reachable from a starting node via directed edges

This performs a breadth-first traversal, building a spanning tree of the reachable portion of the graph. Any edges that would create cycles are marked as redundant.

Example:

let result = getReachableNodes config rootId graph
-- result.nodes: Set of all reachable node IDs
-- result.spanningTree: Edges forming a tree
-- result.redundantEdges: Edges that create cycles

#extractSpanningTree Source

extractSpanningTree :: NodeID -> ReachabilityResult -> Tree NodeID

Extract a spanning tree from reachability analysis

Converts the spanning tree edges into a Tree structure rooted at the specified node.

#depthFirstSearch Source

depthFirstSearch :: forall node link. GraphConfig node link -> NodeID -> GraphModel node link -> (node -> Boolean) -> Array NodeID

Depth-first search traversal

Visits nodes in depth-first order, applying a predicate to decide whether to continue down each branch.

Returns nodes in the order they were visited.

#breadthFirstSearch Source

breadthFirstSearch :: forall node link. GraphConfig node link -> NodeID -> GraphModel node link -> (node -> Boolean) -> Array NodeID

Breadth-first search traversal

Visits nodes level-by-level, applying a predicate to decide whether to continue exploring.

Returns nodes in the order they were discovered.

Modules
Data.DependencyGraph
Hylograph.AST
Hylograph.Axis.Axis
Hylograph.Brush
Hylograph.Brush.FFI
Hylograph.Brush.Types
Hylograph.Classify
Hylograph.Data.Graph
Hylograph.Data.Graph.Algorithms
Hylograph.Data.Node
Hylograph.Data.Tree
Hylograph.Expr.Animation
Hylograph.Expr.Attr
Hylograph.Expr.Datum
Hylograph.Expr.Expr
Hylograph.Expr.Friendly
Hylograph.Expr.Integration
Hylograph.Expr.Interpreter.CodeGen
Hylograph.Expr.Interpreter.Eval
Hylograph.Expr.Interpreter.Meta
Hylograph.Expr.Interpreter.PureSVG
Hylograph.Expr.Interpreter.SVG
Hylograph.Expr.Path
Hylograph.Expr.Path.Generators
Hylograph.Expr.Sugar
Hylograph.Expr.Units
Hylograph.HATS
Hylograph.HATS.Friendly
Hylograph.HATS.InterpreterTick
Hylograph.HATS.Transitions
Hylograph.Interaction.Brush
Hylograph.Interaction.Coordinated
Hylograph.Interaction.Pointer
Hylograph.Interaction.Zoom
Hylograph.Internal.Attribute
Hylograph.Internal.Behavior.FFI
Hylograph.Internal.Behavior.Types
Hylograph.Internal.Capabilities.Selection
Hylograph.Internal.Capabilities.Transition
Hylograph.Internal.FFI
Hylograph.Internal.Selection.Join
Hylograph.Internal.Selection.Operations
Hylograph.Internal.Selection.Operations.Conversions
Hylograph.Internal.Selection.Operations.Helpers
Hylograph.Internal.Selection.Operations.Selection
Hylograph.Internal.Selection.Query
Hylograph.Internal.Selection.Types
Hylograph.Internal.Transition.FFI
Hylograph.Internal.Transition.Manager
Hylograph.Internal.Transition.Scene
Hylograph.Internal.Transition.Types
Hylograph.Internal.Types
Hylograph.Interpreter.D3
Hylograph.Interpreter.English
Hylograph.Interpreter.Mermaid
Hylograph.Interpreter.MetaAST
Hylograph.Interpreter.SemiQuine
Hylograph.Interpreter.SemiQuine.TreeToCode
Hylograph.Interpreter.SemiQuine.Types
Hylograph.Render
Hylograph.Scale
Hylograph.Scale.FP
Hylograph.Shape.Arc
Hylograph.Shape.Pie
Hylograph.Shape.Polygon
Hylograph.Tooltip
Hylograph.Transform
Hylograph.TreeDSL
Hylograph.TreeDSL.ShapeTree
Hylograph.Unified
Hylograph.Unified.Attribute
Hylograph.Unified.DataDSL
Hylograph.Unified.Display
Hylograph.Unified.Examples
Hylograph.Unified.Join
Hylograph.Unified.Sugar