aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/imageEditor/imageEditorUtils/imageEditorInterfaces.ts
blob: 02dbc03123cf24905d637215d36adaee2227350b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { IconProp } from '@fortawesome/fontawesome-svg-core';
import { Doc } from '../../../../../fields/Doc';

export interface CursorData {
    x: number;
    y: number;
    width: number;
}

export interface Point {
    x: number;
    y: number;
}

export enum ImageToolType {
    GenerativeFill = 'Generative Fill',
    Cut = 'Cut',
}

export enum CutMode {
    IN,
    OUT,
    DRAW_IN,
    ERASE,
}

export interface ImageEditTool {
    type: ImageToolType;
    btnText: string;
    icon: IconProp;
    // this is the function that the image tool applies, so it can be defined depending on the tool
    applyFunc: (currCutType: CutMode, brushWidth: number, prevEdits: { url: string; saveRes: Doc | undefined }[], isFirstDoc: boolean) => Promise<void>;
    // these optional parameters are here because different tools require different brush sizes and defaults
    sliderMin?: number;
    sliderMax?: number;
    sliderDefault?: number;
}

export interface ImageDimensions {
    width: number;
    height: number;
}