import { Point } from '../vector'; import SkeletonNode from './SkeletonNode'; import SkeletonEvent from './SkeletonEvent'; import SkeletonContext from './SkeletonContext'; export default class MovingNode { id: string; skelNode: SkeletonNode; next?: MovingNode | null; prev?: MovingNode | null; edgeDir: Point; edgeCollapseTime: number; bisector: Point; spawnCount: number; private _reflex; private _events; constructor(id: string); isReflex(): boolean; addEvent(event: SkeletonEvent): void; removeEvent(event: SkeletonEvent): void; tryRemoveEvent(event: SkeletonEvent): boolean; clearEvents(): void; events(): SkeletonEvent[]; filterEvents(cb: (event: SkeletonEvent) => boolean): void; /** * @return True if bisector is valid and polygon is not degenerated at this corner. */ calcBisector(ctx: SkeletonContext, init?: boolean): boolean; updateEdge(): void; private setDegenerate; leaveSkeletonNode(): void; toString(): string; }