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}); + } +}