vim-webgl-component
Version:
A demonstration app built on top of the vim-webgl-viewer
44 lines (43 loc) • 1.68 kB
TypeScript
/**
* @module viw-webgl-component
*/
import * as VIM from 'vim-webgl-viewer';
import { TreeItem } from 'react-complex-tree';
import { MapTree } from '../helpers/data';
import { AugmentedElement } from '../helpers/element';
/**
* Custom visibility CSS classes to avoid clashes with tailwind
*/
export type NodeVisibility = 'vim-visible' | 'vim-undefined' | 'vim-hidden';
export type Grouping = 'Family' | 'Level' | 'Workset';
/**
* Extension of TreeItem
*/
export type VimTreeNode = TreeItem<AugmentedElement> & {
title: string;
parent: number;
visible: NodeVisibility;
};
/**
* Returns map-based tree with elements organized hierarchically.
* @param viewer current viewer.
* @param elements elements to include in the treeview.
* @returns
*/
export declare function toTreeData(vim: VIM.Vim, elements: AugmentedElement[], grouping: Grouping): BimTreeData;
export declare class BimTreeData {
nodes: Record<number, VimTreeNode>;
elementToNode: Map<number, number>;
constructor(map: MapTree<string, AugmentedElement>);
updateVisibility(vim: VIM.Vim): void;
getRange(start: number, end: number): number[];
getNodeFromElement(element: number): number;
getLeafs(node: number, result?: number[]): number[];
getSelection(elements: number[]): number[];
countPredicate(node: any, predicate: (c: number) => boolean): "all" | "none" | "some";
getChildren(node: number, includeSelf?: boolean, recursive?: boolean, result?: number[]): number[];
getParent(node: number): number;
getSiblings(node: number): number[];
getAncestors(node: number): number[];
private flatten;
}