2024-03-11 01:33:47 +08:00

123 lines
4.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { GapSize, RectSize, TransformConfig } from '../types/common'
import { GLColor } from '../types/matting-drawing'
export enum EventType {
Mouseover = 'mouseover',
Mouseenter = 'mouseenter',
Mouseout = 'mouseout',
Mouseleave = 'mouseleave',
Mouseup = 'mouseup',
Mousemove = 'mousemove',
MouseDown = 'mousedown',
DblClick = 'dblclick',
Click = 'click',
ContextMenu = 'contextmenu',
KeyDown = 'keydown',
Keyup = 'keyup',
Keypress = 'keypress',
Scroll = 'scroll',
Resize = 'resize',
Wheel = 'wheel',
UndoRedoStateChanged = 'undoRedoStateChanged',
}
export const INITIAL_RADIUS = 12.5
export const INITIAL_HARDNESS = 0.5
/** */
export const RADIUS_TO_BRUSH_SIZE_RATIO = 4
export const RADIUS_SLIDER_MIN = 0.25
export const RADIUS_SLIDER_STEP = 0.25
export const RADIUS_SLIDER_MAX = 25
/** 画笔绘制点最小半径像素 */
export const MIN_RADIUS = 0.5
export const HARDNESS_SLIDER_MIN = 0
export const HARDNESS_SLIDER_STEP = 0.01
export const HARDNESS_SLIDER_MAX = 1
/** 硬度放大到滑动条显示的值范围的放大倍数 */
export const HARDNESS_ZOOM_TO_SLIDER_RATIO = 100
export const INITIAL_SCALE_RATIO = 1
/** 默认的变换配置对象 */
export const INITIAL_TRANSFORM_CONFIG: TransformConfig = {
scaleRatio: INITIAL_SCALE_RATIO,
positionRange: {
minX: 0,
maxX: 0,
minY: 0,
maxY: 0,
},
}
/**
* 导航视窗区域内图片默认尺寸:以图片中心点为原点,进行等比例缩放
* 图片上下边距至少各留80px左右边距至少留白40px上下边距优先级高于左右边距
* 例如当图片上下留白80px时左右留白大于40px时以上下留白80px为准
*/
export const INITIAL_GAP_SIZE: GapSize = {
horizontal: 40,
vertical: 80,
}
/** 隐藏画板的间隙对象——隐藏画板不需要留白 */
export const HIDDEN_BOARD_GAP_SIZE: GapSize = {
horizontal: 0,
vertical: 0,
}
/** 隐藏画板的最大尺寸——默认情况下与图片原始尺寸一致但不能超过2000px,超过2000px会进行缩放以免影响性能 */
export const HIDDEN_BOARD_MAX_SIZE: RectSize = {
width: 2000,
height: 2000,
}
/** 默认的图像平滑选项值 */
export const DEFAULT_IMAGE_SMOOTH_CHOICE = false
export const IMAGE_BORDER_STYLE = '#000000'
export const INITIAL_IMAGE_BORDER_WIDTH = 1
export const DEFAULT_MASK_COLOR: GLColor = [0.47, 0.42, 0.9, 0.5]
/** 窗口滚动时更新boardRect的节流等待时间 */
export const UPDATE_BOARDRECT_DEBOUNCE_TIME = 100
/** 计算stepBase(绘制补帧线条的迭代中的增量,基于真实尺寸的半径得到)的系数的倒数 */
export const DRAWING_STEP_BASE_BASE = 20
/** 计算绘制圆点的节流步长的系数的倒数 */
export const DRAWING_STEP_BASE = 3.5
export const GLOBAL_COMPOSITE_OPERATION_SOURCE_OVER = 'source-over'
export const GLOBAL_COMPOSITE_OPERATION_DESTINATION_IN = 'destination-in'
export const GLOBAL_COMPOSITE_OPERATION_DESTINATION_OUT = 'destination-out'
/** 计算绘制补帧线条的节流步长的系数的倒数 */
export const DRAW_INTERPOLATION_STEP_BASE = 2.5
/** 绘制补帧线条的画笔半径阈值 */
export const DRAW_INTERPOLATION_RADIUS_THRESHOLD = 1
/** 径向渐变开始圆形的半径 */
export const GRADIENT_INNER_RADIUS = 0
/** 渐变开始的偏移值 */
export const GRADIENT_BEGIN_OFFSET = 0
/** 渐变结束的偏移值 */
export const GRADIENT_END_OFFSET = 1
/** 修补渐变开始的颜色 */
export const REPAIR_POINT_INNER_COLOR = 'rgba(119,106,230,1)'
/** 修补渐变结束的颜色 */
export const REPAIR_POINT_OUTER_COLOR = 'rgba(119,106,230,0)'
/** 擦除渐变开始的颜色 */
export const ERASE_POINT_INNER_COLOR = 'rgba(255,255,255,1)'
/** 擦除结束的颜色 */
export const ERASE_POINT_OUTER_COLOR = 'rgba(255,255,255,0)'
/** 0° */
export const ZERO_DEGREES = 0
/** 360° */
export const ONE_TURN_DEGREES = Math.PI * 2
/** 执行前进后退动作时的防抖时间 */
export const ACTION_THROTTLE_TIME = 300
/** 放大的系数 */
export const ZOOM_IN_COEFFICIENT = 1
/** 缩小的系数 */
export const ZOOM_OUT_COEFFICIENT = -1
/** 缩放比率变化的步长 */
export const SCALE_STEP = 0.04
export const MIN_SCALE_RATIO = 0.15
export const MAX_SCALE_RATIO = 10