@mindfiredigital/adac-layout-core
v1.0.0
Published
Core types and interfaces for graph layout engines
Readme
@mindfiredigital/adac-layout-core
Core types and interfaces for graph layout engines in ADAC. Provides the contract that all layout engines must implement.
Features
- 📐 Layered Graph Layout: High-performance implementation of the Sugiyama framework.
- 🎨 Crossing Reduction: Robust Barycenter heuristic for clean, readable diagrams.
- 📐 Balanced Positioning: Symmetrical node placement for professional aesthetics.
- 🛣️ Smart Edge Routing: Polyline routing with support for multi-layer spans.
- 📋 Common Types: Shared contract for all layout engines.
Installation
npm install @mindfiredigital/adac-layout-core
pnpm add @mindfiredigital/adac-layout-coreCore Types
import {
DiagramNode,
DiagramEdge,
Graph,
LayoutEngine,
LayoutOptions,
LayoutResult,
} from '@mindfiredigital/adac-layout-core';
// Define a layout engine
class MyLayoutEngine implements LayoutEngine {
async layout(graph: Graph, options?: LayoutOptions): Promise<LayoutResult> {
// Implementation
}
}Graph Structure
interface DiagramNode {
id: string;
label: string;
width?: number;
height?: number;
type?: string;
}
interface DiagramEdge {
source: string;
target: string;
label?: string;
}
interface Graph {
nodes: DiagramNode[];
edges: DiagramEdge[];
}Layout Result
interface LayoutResult {
positions: Map<string, { x: number; y: number }>;
dimensions: Map<string, { width: number; height: number }>;
}See Also
- @mindfiredigital/adac-layout - Layout orchestration
- @mindfiredigital/adac-layout-elk - ELK implementation
- @mindfiredigital/adac-layout-dagre - Dagre implementation
License
MIT
