@meta2d/core
Version:
@meta2d/core: Powerful, Beautiful, Simple, Open - Web-Based 2D At Its Best .
149 lines (148 loc) • 6.95 kB
TypeScript
import { IValue, Pen } from './model';
import { Direction } from '../data';
import { Point } from '../point';
import { Rect } from '../rect';
import { Meta2dStore } from '../store';
/**
* ancestor 是否是 pen 的祖先
* @param pen 当前画笔
* @param ancestor 祖先画笔
*/
export declare function isAncestor(pen: Pen, ancestor: Pen): boolean;
export declare function getParent(pen: Pen, root?: boolean): Pen;
export declare function getAllChildren(pen: Pen, store: Meta2dStore): Pen[];
export declare function getAllFollowers(pen: Pen, store: Meta2dStore): Pen[];
export declare function getGradientAnimatePath(pen: Pen): Path2D;
export declare function drawImage(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen): void;
/**
* 获取文字颜色, textColor 优先其次 color
*/
export declare function getTextColor(pen: Pen, store: Meta2dStore): any;
export declare function drawIcon(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen): void;
export declare function drawDropdown(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen): void;
/**
* canvas2svg 中对 font 的解析规则比 canvas 中简单,能识别的类型很少
* @returns ctx.font
*/
export declare function getFont({ fontStyle, textDecoration, fontWeight, fontSize, fontFamily, lineHeight, }?: {
fontStyle?: string;
textDecoration?: string;
fontWeight?: string;
fontSize?: number;
fontFamily?: string;
lineHeight?: number;
}): string;
export declare function ctxFlip(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen): void;
export declare function ctxRotate(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen, noFlip?: boolean): void;
export declare function renderPen(ctx: CanvasRenderingContext2D, pen: Pen, download?: boolean): void;
/**
* 更改 ctx 的 lineCap 属性
*/
export declare function setLineCap(ctx: CanvasRenderingContext2D, pen: Pen): void;
/**
* 更改 ctx 的 lineJoin 属性
*/
export declare function setLineJoin(ctx: CanvasRenderingContext2D, pen: Pen): void;
/**
* 通常用在下载 svg
* canvas2svg 与 canvas ctx 设置 strokeStyle 表现不同
* 若设置值为 undefined ,canvas2svg 为空, canvas ctx 为上一个值
*/
export declare function renderPenRaw(ctx: CanvasRenderingContext2D, pen: Pen, rect?: Rect, download?: boolean): void;
/**
* 根据 path2D 绘制 path
* @param canUsePath 是否可使用 Path2D, downloadSvg 不可使用 path2D
*/
export declare function ctxDrawPath(canUsePath: boolean, ctx: CanvasRenderingContext2D, pen: Pen, store: Meta2dStore, fill: boolean): void;
/**
* 连线配置线条渐进后,动画效果、起始点、终点的绘制
*/
export declare function ctxDrawLinePath(canUsePath: boolean, ctx: CanvasRenderingContext2D, pen: Pen, store: Meta2dStore): void;
/**
* 设置线条动画,ctx 的 strokeStyle lineDash 等属性更改
*/
export declare function setCtxLineAnimate(ctx: CanvasRenderingContext2D, pen: Pen, store: Meta2dStore): void;
/**
* 全局 color
*/
export declare function getGlobalColor(store: Meta2dStore): string;
export declare function renderLineAnchors(ctx: CanvasRenderingContext2D, pen: Pen): void;
export declare function renderAnchor(ctx: CanvasRenderingContext2D, pt: Point, pen: Pen): void;
export declare function calcWorldRects(pen: Pen): Rect;
export declare function calcPadding(pen: Pen, rect: Rect): void;
export declare function calcPenRect(pen: Pen): void;
export declare function calcWorldAnchors(pen: Pen): void;
export declare function calcChildrenInitRect(pen: Pen): void;
export declare function calcWorldPointOfPen(pen: Pen, pt: Point): Point;
export declare function calcIconRect(pens: {
[key: string]: Pen;
}, pen: Pen): void;
export declare function scalePen(pen: Pen, scale: number, center: Point): void;
export declare function scaleChildrenInitRect(pen: Pen, scale: number, center: Point): void;
export declare function pushPenAnchor(pen: Pen, pt: Point): {
id: string;
penId: string;
x: number;
y: number;
};
export declare function addLineAnchor(pen: Pen, pt: Point, index: number): Point;
export declare function removePenAnchor(pen: Pen, anchor: Point): void;
export declare function facePen(pt: Point, pen?: Pen): Direction;
export declare function nearestAnchor(pen: Pen, pt: Point): Point;
export declare function translateLine(pen: Pen, x: number, y: number): void;
export declare function deleteTempAnchor(pen: Pen): void;
/**
* 添加line到pen的connectedLines中,并关联相关属性
* 不添加连线到画布中,请确保画布中已经有该连线。
* */
export declare function connectLine(pen: Pen, anchor: Point, line: Pen, lineAnchor: Point): boolean;
/**
* 从 pen.connectedLines 中删除 lineId 和 lineAnchor
*/
export declare function disconnectLine(pen: Pen, anchor: Point, line: Pen, lineAnchor: Point): boolean;
export declare function getAnchor(pen: Pen, anchorId: string): Point;
export declare function getFromAnchor(pen: Pen): Point;
export declare function getToAnchor(pen: Pen): Point;
export declare function setNodeAnimate(pen: Pen, now: number): true | 0;
export declare function initPrevFrame(pen: Pen): void;
export declare function setNodeAnimateProcess(pen: Pen, process: number): void;
export declare function setLineAnimate(pen: Pen, now: number): true | 0;
export declare function setChildrenActive(pen: Pen, active?: boolean): void;
export declare function setHover(pen: Pen, hover?: boolean): void;
export declare function setElemPosition(pen: Pen, elem: HTMLElement): void;
export declare function setElemImg(pen: Pen, elem: HTMLElement): void;
/**
* 每个画笔 locked
* @param pens 画笔
* @returns
*/
export declare function getPensLock(pens: Pen[]): boolean;
/**
* 画笔们的 disabledRotate = true
* 即 全部禁止旋转 返回 true
* @param pens 画笔
* @returns
*/
export declare function getPensDisableRotate(pens: Pen[]): boolean;
export declare function rotatePen(pen: Pen, angle: number, rect: Rect): void;
/**
* 画笔们的 disableSize = true
* 即 全部不允许改变大小 返回 true
* @param pens 画笔
* @returns
*/
export declare function getPensDisableResize(pens: Pen[]): boolean;
export declare function getFrameValue(pen: Pen, prop: string, frameIndex: number): number;
/**
* 判断该画笔 是否是组合为状态中 展示的画笔
*/
export declare function isShowChild(pen: Pen, store: Meta2dStore): boolean;
/**
* 计算画笔的 inView
* @param pen 画笔
* @param calcChild 是否计算子画笔
*/
export declare function calcInView(pen: Pen, calcChild?: boolean): void;
export declare function setGlobalAlpha(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pen: Pen): void;
export declare function drawFilter(ctx: any, pen: any): void;
export declare function setChildValue(pen: Pen, data: IValue): void;