- Added `createMaskedPixelReplacementSource` function to handle pixel replacement using inpainting. - Introduced `buildInpaintBundle` to prepare inpainting data including mask generation and validation. - Created utility functions for mask operations such as `applyMaskedContentModeToRgba`, `expandRectWithinBounds`, and others for mask manipulation. - Developed tests for inpainting preparation and mask raster utilities to ensure functionality and correctness. - Implemented mask raster operations including inversion, feathering, blurring, and more.
103 lines
5.1 KiB
TypeScript
103 lines
5.1 KiB
TypeScript
import type { commandIds } from "./ids";
|
|
import type {
|
|
DocumentAddArtboardPayload,
|
|
DocumentAddAssetPayload,
|
|
DocumentAddGroupLayerPayload,
|
|
DocumentAddImageLayerPayload,
|
|
DocumentAddLayerMaskPayload,
|
|
DocumentAddRasterLayerPayload,
|
|
DocumentApplyLayerMaskOperationPayload,
|
|
DocumentGroupLayersPayload,
|
|
DocumentMoveLayerPayload,
|
|
DocumentRemoveArtboardPayload,
|
|
DocumentRemoveLayerPayload,
|
|
DocumentRemoveLayerMaskPayload,
|
|
DocumentRenameArtboardPayload,
|
|
DocumentRenameLayerPayload,
|
|
DocumentSetArtboardBoundsPayload,
|
|
DocumentSetArtboardLockedPayload,
|
|
DocumentSetArtboardVisiblePayload,
|
|
DocumentSetLayerClippingMaskPayload,
|
|
DocumentSetLayerLockedPayload,
|
|
DocumentSetLayerVisiblePayload,
|
|
DocumentUpdateAssetSourcePayload,
|
|
DocumentUngroupLayerPayload,
|
|
} from "./document";
|
|
import type {
|
|
GenerationAddCandidatePayload,
|
|
GenerationApplyCandidateAsLayerPayload,
|
|
GenerationRemoveCandidatePayload,
|
|
GenerationReplaceCandidatePixelsPayload,
|
|
GenerationSelectCandidatePayload,
|
|
} from "./generation";
|
|
import type { SelectionAddLayerPayload, SelectionSetPayload } from "./selection";
|
|
import type { ToolEnterMaskEditPayload, ToolSetActivePayload, ToolSetBrushPreviewPayload, ToolSetBrushSettingsPayload, ToolSetBrushStrokePreviewPayload, ToolSetChromaKeySettingsPayload, ToolSetGenerateSettingsPayload, ToolSetMagicWandSettingsPayload, ToolSetMaskViewModePayload } from "./tool";
|
|
import type { TransformBeginPayload, TransformSetBoundsPayload, TransformUpdatePayload } from "./transform";
|
|
import type {
|
|
ViewportFitArtboardPayload,
|
|
ViewportPanPayload,
|
|
ViewportSetSizePayload,
|
|
ViewportSetZoomPayload,
|
|
ViewportZoomAroundPointPayload,
|
|
} from "./viewport";
|
|
|
|
export type CommandPayloads = {
|
|
[commandIds.documentAddArtboard]: DocumentAddArtboardPayload;
|
|
[commandIds.documentSetArtboardBounds]: DocumentSetArtboardBoundsPayload;
|
|
[commandIds.documentRemoveArtboard]: DocumentRemoveArtboardPayload;
|
|
[commandIds.documentSetArtboardVisible]: DocumentSetArtboardVisiblePayload;
|
|
[commandIds.documentSetArtboardLocked]: DocumentSetArtboardLockedPayload;
|
|
[commandIds.documentRenameArtboard]: DocumentRenameArtboardPayload;
|
|
[commandIds.documentAddAsset]: DocumentAddAssetPayload;
|
|
[commandIds.documentUpdateAssetSource]: DocumentUpdateAssetSourcePayload;
|
|
[commandIds.documentAddImageLayer]: DocumentAddImageLayerPayload;
|
|
[commandIds.documentAddRasterLayer]: DocumentAddRasterLayerPayload;
|
|
[commandIds.documentAddGroupLayer]: DocumentAddGroupLayerPayload;
|
|
[commandIds.documentAddLayerMask]: DocumentAddLayerMaskPayload;
|
|
[commandIds.documentApplyLayerMaskOperation]: DocumentApplyLayerMaskOperationPayload;
|
|
[commandIds.documentRemoveLayerMask]: DocumentRemoveLayerMaskPayload;
|
|
[commandIds.documentMoveLayer]: DocumentMoveLayerPayload;
|
|
[commandIds.documentGroupLayers]: DocumentGroupLayersPayload;
|
|
[commandIds.documentUngroupLayer]: DocumentUngroupLayerPayload;
|
|
[commandIds.documentRemoveLayer]: DocumentRemoveLayerPayload;
|
|
[commandIds.documentSetLayerVisible]: DocumentSetLayerVisiblePayload;
|
|
[commandIds.documentSetLayerLocked]: DocumentSetLayerLockedPayload;
|
|
[commandIds.documentRenameLayer]: DocumentRenameLayerPayload;
|
|
[commandIds.documentSetLayerClippingMask]: DocumentSetLayerClippingMaskPayload;
|
|
[commandIds.selectionSet]: SelectionSetPayload;
|
|
[commandIds.selectionClear]: void;
|
|
[commandIds.selectionAddLayer]: SelectionAddLayerPayload;
|
|
[commandIds.toolSetActive]: ToolSetActivePayload;
|
|
[commandIds.toolSetGenerateSettings]: ToolSetGenerateSettingsPayload;
|
|
[commandIds.toolSetBrushSettings]: ToolSetBrushSettingsPayload;
|
|
[commandIds.toolSetChromaKeySettings]: ToolSetChromaKeySettingsPayload;
|
|
[commandIds.toolSetMagicWandSettings]: ToolSetMagicWandSettingsPayload;
|
|
[commandIds.toolSetBrushPreview]: ToolSetBrushPreviewPayload;
|
|
[commandIds.toolSetBrushStrokePreview]: ToolSetBrushStrokePreviewPayload;
|
|
[commandIds.toolSetMaskViewMode]: ToolSetMaskViewModePayload;
|
|
[commandIds.toolEnterMaskEdit]: ToolEnterMaskEditPayload;
|
|
[commandIds.toolExitMaskEdit]: void;
|
|
[commandIds.toolEnterTemporaryPan]: void;
|
|
[commandIds.toolExitTemporaryPan]: void;
|
|
[commandIds.generationAddCandidate]: GenerationAddCandidatePayload;
|
|
[commandIds.generationSelectCandidate]: GenerationSelectCandidatePayload;
|
|
[commandIds.generationRemoveCandidate]: GenerationRemoveCandidatePayload;
|
|
[commandIds.generationClearCandidates]: void;
|
|
[commandIds.generationApplyCandidateAsLayer]: GenerationApplyCandidateAsLayerPayload;
|
|
[commandIds.generationReplaceCandidatePixels]: GenerationReplaceCandidatePixelsPayload;
|
|
[commandIds.transformBegin]: TransformBeginPayload;
|
|
[commandIds.transformUpdate]: TransformUpdatePayload;
|
|
[commandIds.transformSetBounds]: TransformSetBoundsPayload;
|
|
[commandIds.transformEnd]: void;
|
|
[commandIds.viewportPan]: ViewportPanPayload;
|
|
[commandIds.viewportSetZoom]: ViewportSetZoomPayload;
|
|
[commandIds.viewportZoomAroundPoint]: ViewportZoomAroundPointPayload;
|
|
[commandIds.viewportSetSize]: ViewportSetSizePayload;
|
|
[commandIds.viewportReset]: void;
|
|
[commandIds.viewportFitArtboard]: ViewportFitArtboardPayload | undefined;
|
|
[commandIds.historyUndo]: void;
|
|
[commandIds.historyRedo]: void;
|
|
};
|
|
|
|
export type CommandId = keyof CommandPayloads;
|