diff --git a/source/gegl/exports.ts b/source/gegl/exports.ts index 2269cf2..cb4e84a 100644 --- a/source/gegl/exports.ts +++ b/source/gegl/exports.ts @@ -10,3 +10,4 @@ export * from './plasma.js'; export * from './simplex-noise.js'; export * from './softglow.js'; export * from './stereographic-projection.js'; +export * from './waves.js'; diff --git a/source/gegl/waves.ts b/source/gegl/waves.ts new file mode 100644 index 0000000..9f276cc --- /dev/null +++ b/source/gegl/waves.ts @@ -0,0 +1,36 @@ +import {BaseOperation} from './base.js'; + +export interface WavesParameters { + amplitude: number; + aspect: number; + clamp: boolean; + period: number; + phi: number; + samplerType: 'nearest' | 'linear' | 'cubic' | 'nohalo' | 'lohalo'; + x: number; + y: number; +} + +export class Waves extends BaseOperation { + public static default: WavesParameters = { + amplitude: 25, + aspect: 1, + clamp: false, + period: 100, + phi: 0, + samplerType: 'cubic', + x: 0.5, + y: 0.5, + }; + + public get default() { + return Waves.default; + } + + public appendCrop = false; + public name = 'gegl:waves'; + + constructor(parameters?: Partial) { + super({...Waves.default, ...parameters}); + } +}