UNPKG

@polygonjs/polygonjs

Version:

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

49 lines (48 loc) 1.58 kB
"use strict"; import { ParamConfig } from "../../../../../engine/nodes/utils/params/ParamsConfig"; const DEFAULT = { facetAngle: 45 }; export function SOPSDFTesselationParamConfig(Base) { return class Mixin extends Base { constructor() { super(...arguments); /** @param linear Tolerance */ this.facetAngle = ParamConfig.FLOAT(DEFAULT.facetAngle, { range: [0, 180], rangeLocked: [true, false] }); /** @param meshes color */ this.meshesColor = ParamConfig.COLOR([1, 1, 1]); /** @param wireframe */ this.wireframe = ParamConfig.BOOLEAN(false); } }; } export function OBJSDFTesselationParamConfig(Base) { return class Mixin extends Base { constructor() { super(...arguments); /** @param linear Tolerance */ this.SDFFacetAngle = ParamConfig.FLOAT(DEFAULT.facetAngle, { range: [0, 180], rangeLocked: [true, false] }); /** @param meshes color */ this.SDFMeshesColor = ParamConfig.COLOR([1, 1, 1]); /** @param wireframe */ this.SDFWireframe = ParamConfig.BOOLEAN(false); } }; } export const TESSELATION_PARAM_NAMES = /* @__PURE__ */ new Set(["SDFFacetAngle", "SDFMeshesColor", "SDFWireframe"]); export function addSDFTesselationParamsCallback(node, callback) { node.params.onParamsCreated("SDFtesselationParamsHooks", () => { const params = node.params.all; for (const param of params) { if (TESSELATION_PARAM_NAMES.has(param.name())) { param.options.setOption("callback", callback); } } }); }