function-curve-editor
Version:
A function curve editor widget / web component
55 lines • 1.86 kB
TypeScript
import { UniFunction, InterpolationMethod } from "commons-math-interpolation";
export interface Point {
x: number;
y: number;
}
export declare const enum ZoomMode {
x = 0,
y = 1,
xy = 2
}
export { InterpolationMethod };
export interface EditorState {
knots: Point[];
xMin: number;
xMax: number;
yMin: number;
yMax: number;
extendedDomain: boolean;
relevantXMin?: number;
relevantXMax?: number;
gridEnabled: boolean;
snapToGridEnabled: boolean;
xAxisUnit?: string;
yAxisUnit?: string;
interpolationMethod: InterpolationMethod;
primaryZoomMode: ZoomMode;
focusShield: boolean;
customPaintFunction?: CustomPaintFunction;
}
export type CustomPaintFunction = (pctx: CustomPaintContext) => void;
export interface CustomPaintContext {
pass: number;
eState: EditorState;
ctx: CanvasRenderingContext2D;
mapLogicalToCanvasXCoordinate: (lx: number) => number;
mapLogicalToCanvasYCoordinate: (ly: number) => number;
drawFunctionCurve: (uniFunction: UniFunction, lxMin: number, lxMax: number, color: string) => void;
}
export declare class Widget {
private wctx;
constructor(canvas: HTMLCanvasElement, connected?: boolean);
setEventTarget(eventTarget: EventTarget): void;
setConnected(connected: boolean): void;
requestRefresh(): void;
addEventListener(type: string, listener: EventListener): void;
removeEventListener(type: string, listener: EventListener): void;
getEditorState(): EditorState;
setEditorState(eState: Partial<EditorState>): void;
getFunction(): (x: number) => number;
getRawHelpText(): string[];
getFormattedHelpText(): string;
clipboardCopyEventHandler(event: ClipboardEvent): void;
clipboardPasteEventHandler(event: ClipboardEvent): void;
}
//# sourceMappingURL=FunctionCurveEditor.d.ts.map