import { Algorithm } from '../../utils/algorithm'; import { BasicGraphOnEdges } from '../../structs/basicGraphOnEdges'; import { FiEdge } from './fiEdge'; import { FiNode } from './fiNode'; import { Point } from '../../math/geometry'; import { Edge } from '../../structs/edge'; import { IPsepColaSetting } from './iPsepColaSettings'; import { IGeomGraph } from '../initialLayout/iGeomGraph'; /** Using a force directed layout strategy with approximate computation of long-range node-node repulsive forces to achieve O(n log n) running time per iteration. It can be invoked on an existing layout (for example, as computed by MDS) to beautify it. */ export declare class IPsepCola extends Algorithm { basicGraph: BasicGraphOnEdges; components: Array; edges: Array; nodes: Array; clustersInfo: Map; /** Holds the derivative of the cost function calculated of the most recent iteration.*/ energy: number; graph: IGeomGraph; progress: number; settings: IPsepColaSetting; stepSize: number; clusterEdges: Array; constructor(geometryGraph: IGeomGraph, settings: IPsepColaSetting, initialConstraintLevel: number); initFiNodesEdges(): void; currentConstraintLevel: number; getCurrentConstraintLevel(): number; setCurrentConstraintLevel(value: number): void; ResetNodePositions(): void; AddRepulsiveForce(v: FiNode, repulsion: Point): void; AddLogSpringForces(e: FiEdge, duv: Point, d: number): void; AddSquaredSpringForces(e: FiEdge, duv: Point, d: number): void; AddSpringForces(e: FiEdge): void; static AddGravityForce(origin: Point, gravity: number, v: FiNode): void; ComputeRepulsiveForces(vs: FiNode[]): void; SetBarycenter(root: IGeomGraph): Point; computeWeight(root: IGeomGraph): number; AddClusterForces(root: IGeomGraph): void; ComputeForces(): void; VerletIntegration(): number; ComputeDescentDirection(alpha: number): number; ResetForceVectors(): void; UpdateStepSize(energy0: number): void; RungeKuttaIntegration(): number; run(): void; }