diff --git a/source/gegl/exports.ts b/source/gegl/exports.ts index 600f791..4f4cd83 100644 --- a/source/gegl/exports.ts +++ b/source/gegl/exports.ts @@ -6,6 +6,7 @@ export * from './crop.js'; export * from './diffraction-patterns.js'; export * from './focus-blur.js'; export * from './generic.js'; +export * from './maze.js'; export * from './median-blur.js'; export * from './mirrors.js'; export * from './mosaic.js'; diff --git a/source/gegl/maze.ts b/source/gegl/maze.ts new file mode 100644 index 0000000..f3b2088 --- /dev/null +++ b/source/gegl/maze.ts @@ -0,0 +1,34 @@ +import {BaseOperation} from './base.js'; + +export interface MazeParameters { + algorithmType: 'depth-first' | 'prim'; + bgColor: string; + fgColor: string; + seed: number; + tileable: boolean; + x: number; + y: number; +} + +export class Maze extends BaseOperation { + public static default: MazeParameters = { + algorithmType: 'depth-first', + bgColor: '#fff', + fgColor: '#000', + seed: 0, + tileable: false, + x: 16, + y: 16, + }; + + public get default() { + return Maze.default; + } + + public appendCrop = false; + public name = 'gegl:maze'; + + constructor(parameters?: Partial) { + super({...Maze.default, ...parameters}); + } +}