dotting
Version:
Dotting is a pixel art editor component library for react
127 lines (126 loc) • 4.72 kB
TypeScript
import { TouchyEvent } from "./touch";
import { Coord, PanZoom } from "./types";
import { ColorChangeItem } from "../components/Canvas/types";
export declare const getPointFromTouchyEvent: (evt: TouchyEvent, element: HTMLCanvasElement, panZoom: PanZoom) => {
y: number;
x: number;
offsetX: any;
offsetY: any;
};
export declare const getPointFromTouch: (touch: Touch, element: HTMLCanvasElement, panZoom: PanZoom) => {
x: number;
y: number;
offsetX: number;
offsetY: number;
};
export declare const calculateNewPanZoomFromPinchZoom: (evt: TouchyEvent, element: HTMLCanvasElement, panZoom: PanZoom, zoomSensitivity: number, prevPinchZoomDiff: number | null, minScale: number, maxScale: number) => {
pinchZoomDiff: number;
panZoom: PanZoom;
};
export declare const getMouseCartCoord: (evt: TouchyEvent, element: HTMLCanvasElement, panZoom: PanZoom, dpr: number) => Coord;
export declare const getCenterCartCoordFromTwoTouches: (evt: TouchyEvent, element: HTMLCanvasElement, panZoom: PanZoom, dpr: number) => Coord;
export declare const getPixelIndexFromMouseCartCoord: (mouseCartCoord: Coord, sortedRowIndices: number[], sortedColumnIndices: number[], gridSquareLength: number) => {
rowIndex: number;
columnIndex: number;
};
export declare const getIsPointInsideRegion: (point: Coord, area: {
startWorldPos: Coord;
endWorldPos: Coord;
}) => boolean;
export declare const getDoesAreaOverlapPixelgrid: (area: {
startWorldPos: Coord;
endWorldPos: Coord;
} | null, rowCount: number, columnCount: number, gridSquareLength: number) => boolean;
export declare const getAreaTopLeftAndBottomRight: (area: {
startWorldPos: Coord;
endWorldPos: Coord;
}) => {
areaTopLeftPos: {
x: number;
y: number;
};
areaBottomRightPos: {
x: number;
y: number;
};
};
export declare const convertWorldPosAreaToPixelGridArea: (selectingArea: {
startWorldPos: Coord;
endWorldPos: Coord;
}, rowCount: number, columnCount: number, gridSquareLength: number, rowKeysInOrder: number[], columnKeysInOrder: number[]) => {
startWorldPos: Coord;
endWorldPos: Coord;
includedPixelsIndices: {
rowIndex: number;
columnIndex: number;
}[];
};
export declare const returnScrollOffsetFromMouseOffset: (mouseOffset: Coord, panZoom: PanZoom, newScale: number) => Coord;
/**
* @summary it will return world pos relative to originpixel word pos, the origin will be set to 0,0
* @param pixelIndex - the pixelIndex passed as a parameter should be an integer
*/
export declare const getRelativeCornerWordPosOfPixelToOrigin: (pixelIndex: {
rowIndex: number;
columnIndex: number;
}, originPixelIndex: {
rowIndex: number;
columnIndex: number;
}, gridSquareLength: number) => {
topLeft: {
x: number;
y: number;
};
topRight: {
x: number;
y: number;
};
bottomLeft: {
x: number;
y: number;
};
bottomRight: {
x: number;
y: number;
};
};
/**
* @summary it will return the pixel indices of the corner pixels of the specific pixel
* @param pixelIndex - the specific pixel index
* @param halvedHeight - the halvedHeight of the pixel
* @param halvedWidth - the halvedWidth of the pixel
*/
export declare const getCornerPixelIndices: (centerPixelIndex: {
rowIndex: number;
columnIndex: number;
}, halvedHeight: number, halvedWidth: number) => {
topLeft: {
rowIndex: number;
columnIndex: number;
};
topRight: {
rowIndex: number;
columnIndex: number;
};
bottomLeft: {
rowIndex: number;
columnIndex: number;
};
bottomRight: {
rowIndex: number;
columnIndex: number;
};
};
/**
* @summary it will return the overlapping pixel indices of the pixels for an extended selected area
* @param originalPixels - the original pixels
* @param originPixelIndex - the origin pixel index
* @param modifyPixelWidthRatio - the ratio of the width of the modified pixel to the original pixel
* @param modifyPixelHeightRatio - the ratio of the height of the modified pixel to the original pixel
* @param gridSquareLength - the length of the grid square
* @returns the pixel indices of the overlapping pixels
*/
export declare const getOverlappingPixelIndicesForModifiedPixels: (originalPixels: Array<ColorChangeItem>, originPixelIndex: {
rowIndex: number;
columnIndex: number;
}, modifyPixelWidthRatio: number, modifyPixelHeightRatio: number, gridSquareLength: number) => ColorChangeItem[];