ecljs
Version:
electric circuits library
82 lines (81 loc) • 2.97 kB
TypeScript
import { IPoint } from 'dabbjs/dist/lib/interfaces';
import { Point } from 'dabbjs/dist/lib/point';
import { Rect } from 'dabbjs/dist/lib/rect';
import { Size } from 'dabbjs/dist/lib/size';
import { Type, IWireDefaults, INodeInfo } from './interfaces';
import { ItemBoard } from './itemsBoard';
import { Container } from './container';
export declare class Wire extends ItemBoard {
protected $: IWireDefaults;
get type(): Type;
get count(): number;
get last(): number;
get lastLine(): number;
get isOpen(): boolean;
rect(): Rect;
get points(): Point[];
get edit(): boolean;
/**
* @description get/set wire edit mode
*/
set edit(value: boolean);
get head(): number;
get swipe(): number;
/**
* @description returns wire size, it's computed every time, so save locally if called multiple times
*/
get size(): Size;
/**
* @description customize arrow for directional wires only
* @param length arrow line length
* @param angle arrow lines swipe angle
*/
arrow(length: number, angle: number): void;
constructor(container: Container<ItemBoard>, options: {
[x: string]: any;
});
refresh(): Wire;
nodeRefresh(node: number): Wire;
setNode(node: number, p: IPoint): Wire;
translate(dx: number, dy: number): Wire;
/**
* @description returns true if a point is valid
* @comment later see how to change this to validNode, conflict in !ic.valid(node)
* because we don't know if it's a IC or a wire
* @param {number} node 0-based point index it can be -1
* @returns {boolean} true if point is valid
*/
valid(node: number): boolean;
/**
* @description appends a new node at the end, only works in edit mode, creating a wire
* @param p new point
*/
append(p: Point): boolean;
highlightable(node: number): boolean;
protected setPoints(points: IPoint[]): Wire;
/**
* @description returns the node information
* @param node 0-based pin/node number
* @param onlyPoint it's discarded
*
* this returns absolute (x, y) position
*/
node(node: number): INodeInfo | undefined;
static nodeArea: number;
/**
* @description detects a point over a node
* @param p point to check for component node
* @param ln 1-based line number, ln undefined or 0, checks the whole wire, otherwise just check this line
*/
over(p: IPoint, ln?: number): number;
deleteLine(line: number): boolean;
deleteNode(node: number): Point | undefined;
insertNode(node: number, p: Point): boolean;
/**
* @description standarizes a wire node number to 0..points.length
* @param {number} node 0-based can be -1:last 0..points.length-1
* @returns {number} -1 for wrong node or standarized node number, where -1 == last, otherwise node
*/
standarizeNode(node: number): number;
defaults(): IWireDefaults;
}