From fa08d29675f6b11d93b74ac3ec44ccf6ceab1e5e Mon Sep 17 00:00:00 2001 From: Bauke Date: Tue, 8 Mar 2022 13:35:45 +0100 Subject: [PATCH] Add gegl:stereographic-projection. --- source/gegl/exports.ts | 1 + source/gegl/stereographic-projection.ts | 36 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 source/gegl/stereographic-projection.ts diff --git a/source/gegl/exports.ts b/source/gegl/exports.ts index bb14f7c..c9bd3ea 100644 --- a/source/gegl/exports.ts +++ b/source/gegl/exports.ts @@ -5,3 +5,4 @@ export * from './mirrors.js'; export * from './newsprint.js'; export * from './simplex-noise.js'; export * from './softglow.js'; +export * from './stereographic-projection.js'; diff --git a/source/gegl/stereographic-projection.ts b/source/gegl/stereographic-projection.ts new file mode 100644 index 0000000..4cd525d --- /dev/null +++ b/source/gegl/stereographic-projection.ts @@ -0,0 +1,36 @@ +import {BaseOperation} from './base.js'; + +export interface StereographicProjectionParameters { + height: number; + inverse: boolean; + pan: number; + samplerType: 'nearest' | 'linear' | 'cubic' | 'nohalo' | 'lohalo'; + spin: number; + tilt: number; + width: number; + zoom: number; +} + +export class StereographicProjection extends BaseOperation { + public static default: StereographicProjectionParameters = { + height: -1, + inverse: false, + pan: 0, + samplerType: 'nearest', + spin: 0, + tilt: 90, + width: -1, + zoom: 100, + }; + + public get default() { + return StereographicProjection.default; + } + + public appendCrop = false; + public name = 'gegl:stereographic-projection'; + + constructor(parameters?: Partial) { + super({...StereographicProjection.default, ...parameters}); + } +}