diff --git a/source/gegl/exports.ts b/source/gegl/exports.ts index 5da98ec..87eb6f9 100644 --- a/source/gegl/exports.ts +++ b/source/gegl/exports.ts @@ -1,5 +1,6 @@ export * from './base.js'; export * from './crop.js'; export * from './generic.js'; +export * from './mirrors.js'; export * from './newsprint.js'; export * from './simplex-noise.js'; diff --git a/source/gegl/mirrors.ts b/source/gegl/mirrors.ts new file mode 100644 index 0000000..6f41fc9 --- /dev/null +++ b/source/gegl/mirrors.ts @@ -0,0 +1,42 @@ +import {BaseOperation} from './base.js'; + +export interface MirrorsParameters { + clip: boolean; + cX: number; + cY: number; + inputScale: number; + mAngle: number; + nSegs: number; + outputScale: number; + oX: number; + oY: number; + rAngle: number; + trimX: number; + trimY: number; + warp: boolean; +} + +export class Mirrors extends BaseOperation { + public static default: MirrorsParameters = { + clip: true, + cX: 0.5, + cY: 0.5, + inputScale: 100, + mAngle: 0, + nSegs: 6, + outputScale: 1, + oX: 0, + oY: 0, + rAngle: 0, + trimX: 0, + trimY: 0, + warp: true, + }; + + public appendCrop = false; + public name = 'gegl:mirrors'; + + constructor(parameters?: Partial) { + super({...Mirrors.default, ...parameters}); + } +}