@syncfusion/ej2-diagrams
Version:
Feature-rich diagram control to create diagrams like flow charts, organizational charts, mind maps, and BPMN diagrams. Its rich feature set includes built-in shapes, editing, serializing, exporting, printing, overview, data binding, and automatic layouts.
114 lines (113 loc) • 3.05 kB
TypeScript
import { Rect } from '../../primitives/rect';
import { Quad } from './quad';
/**
* Spatial search module helps to effectively find the objects over diagram
*/
export declare class SpatialSearch {
private topElement;
private bottomElement;
private rightElement;
private leftElement;
private quadSize;
private quadTable;
private objectTable;
/** @private */
parentQuad: Quad;
private pageLeft;
private pageRight;
private pageTop;
private pageBottom;
/** @private */
childLeft: number;
/** @private */
childTop: number;
/** @private */
childRight: number;
/** @private */
childBottom: number;
/** @private */
childNode: IGroupable;
/**
* Constructor for creating the spatial search
*
* @param {number} objectTable The objectTable.
* @private
*/
constructor(objectTable: Object);
/**
* removeFromAQuad method\
*
* @returns {void} removeFromAQuad method .\
* @param {IGroupable} node - provide the options value.
* @private
*/
removeFromAQuad(node: IGroupable): void;
private update;
private addIntoAQuad;
private objectIndex;
updateQuad(node: IGroupable): boolean;
private isWithinPageBounds;
/**
* findQuads method\
*
* @returns { Quad[] } findQuads method .\
* @param {Rect} region - provide the options value.
* @private
*/
findQuads(region: Rect): Quad[];
/**
* findObjects method\
*
* @returns { IGroupable[] } findObjects method .\
* @param {Rect} region - provide the options value.
* @private
*/
findObjects(region: Rect): IGroupable[];
/**
* updateBounds method\
*
* @returns { boolean } updateBounds method .\
* @param {IGroupable} node - provide the options value.
* @param {boolean} isSwimLane - provide boolean if its swimlane container
* @private
*/
updateBounds(node: IGroupable, isSwimLane?: boolean): boolean;
private updateTop;
private updateBottom;
private updateLeft;
private updateRight;
private findBottom;
private findRight;
private findLeft;
private findTop;
/**
* setCurrentNode method\
*
* @returns { void } setCurrentNode method .\
* @param {IGroupable} node - provide the options value.
* @private
*/
setCurrentNode(node: IGroupable): void;
/**
* getPageBounds method\
*
* @returns { Rect } getPageBounds method .\
* @param {number} originX - provide the options value.
* @param {number} originY - provide the options value.
* @private
*/
getPageBounds(originX?: number, originY?: number): Rect;
/**
* getQuad method\
*
* @returns { Quad } getQuad method .\
* @param {IGroupable} node - provide the options value.
* @private
*/
getQuad(node: IGroupable): Quad;
}
/** @private */
export interface IGroupable {
id: string;
outerBounds: Rect;
}