| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /**
- * @file The layout algorithm of node-link tree diagrams. Here we using Reingold-Tilford algorithm to drawing
- * the tree.
- */
- import * as layout from '../../util/layout.js';
- import { TreeNode } from '../../data/Tree.js';
- import TreeSeriesModel from './TreeSeries.js';
- import ExtensionAPI from '../../core/ExtensionAPI.js';
- interface HierNode {
- defaultAncestor: TreeLayoutNode;
- ancestor: TreeLayoutNode;
- prelim: number;
- modifier: number;
- change: number;
- shift: number;
- i: number;
- thread: TreeLayoutNode;
- }
- export interface TreeLayoutNode extends TreeNode {
- parentNode: TreeLayoutNode;
- hierNode: HierNode;
- children: TreeLayoutNode[];
- }
- /**
- * Initialize all computational message for following algorithm.
- */
- export declare function init(inRoot: TreeNode): void;
- /**
- * The implementation of this function was originally copied from "d3.js"
- * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js>
- * with some modifications made for this program.
- * See the license statement at the head of this file.
- *
- * Computes a preliminary x coordinate for node. Before that, this function is
- * applied recursively to the children of node, as well as the function
- * apportion(). After spacing out the children by calling executeShifts(), the
- * node is placed to the midpoint of its outermost children.
- */
- export declare function firstWalk(node: TreeLayoutNode, separation: SeparationFunc): void;
- /**
- * The implementation of this function was originally copied from "d3.js"
- * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js>
- * with some modifications made for this program.
- * See the license statement at the head of this file.
- *
- * Computes all real x-coordinates by summing up the modifiers recursively.
- */
- export declare function secondWalk(node: TreeLayoutNode): void;
- export declare function separation(cb?: SeparationFunc): SeparationFunc;
- /**
- * Transform the common coordinate to radial coordinate.
- */
- export declare function radialCoordinate(rad: number, r: number): {
- x: number;
- y: number;
- };
- /**
- * Get the layout position of the whole view.
- */
- export declare function getViewRect(seriesModel: TreeSeriesModel, api: ExtensionAPI): layout.LayoutRect;
- interface SeparationFunc {
- (node1: TreeLayoutNode, node2: TreeLayoutNode): number;
- }
- export {};
|