UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

31 lines (30 loc) 1.18 kB
"use strict"; import { FunctionGLDefinition } from "./utils/GLDefinition"; import { TypedGlNode } from "./_Base"; import { ThreeToGl } from "../../../../src/core/ThreeToGl"; import { NodeParamsConfig, ParamConfig } from "../utils/params/ParamsConfig"; import SDFMethodsCommon from "./gl/raymarching/sdfCommon.glsl"; import SDFMethods2D from "./gl/raymarching/sdf2D.glsl"; const VARS = { position: "p.xy" }; class BaseSDF2DGlParamsConfig extends NodeParamsConfig { constructor() { super(...arguments); this.position = ParamConfig.VECTOR2([0, 0]); } } export class BaseSDF2DGlNode extends TypedGlNode { position() { const inputPosition = this.io.inputs.named_input(this.p.position.name()); const position = inputPosition ? ThreeToGl.vector2(this.variableForInputParam(this.p.position)) : this._defaultPosition(); return position; } _defaultPosition() { return VARS.position; } _addSDF2DMethods(shadersCollectionController) { shadersCollectionController.addDefinitions(this, [new FunctionGLDefinition(this, SDFMethodsCommon)]); shadersCollectionController.addDefinitions(this, [new FunctionGLDefinition(this, SDFMethods2D)]); } }