From be6a1974190ec662888b59f82422de714ab0015d Mon Sep 17 00:00:00 2001 From: Bauke Date: Fri, 11 Mar 2022 22:07:13 +0100 Subject: [PATCH] Add gegl:maze. --- source/gegl/exports.ts | 1 + source/gegl/maze.ts | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 source/gegl/maze.ts 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}); + } +}