UNPKG

@polygonjs/polygonjs

Version:

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

84 lines (83 loc) 3.02 kB
"use strict"; import { ParamConfig } from "../../../../../engine/nodes/utils/params/ParamsConfig"; export const DEFAULT = { scale: 1, displayOuterMesh: false, displayTetMesh: true, displayLines: false, displaySharedFaces: false, displayPoints: false, displayCenter: false, displaySphere: false }; export function SOPTetTesselationParamConfig(Base) { return class Mixin extends Base { constructor() { super(...arguments); /** @param tet scale */ this.scale = ParamConfig.FLOAT(DEFAULT.scale, { range: [0, 1], rangeLocked: [true, true] }); /** @param display outer mesh */ this.displayOuterMesh = ParamConfig.BOOLEAN(DEFAULT.displayOuterMesh); /** @param display tet mesh */ this.displayTetMesh = ParamConfig.BOOLEAN(DEFAULT.displayTetMesh); /** @param display lines */ this.displayLines = ParamConfig.BOOLEAN(DEFAULT.displayLines); /** @param display shared faces */ this.displaySharedFaces = ParamConfig.BOOLEAN(DEFAULT.displaySharedFaces); /** @param display points */ this.displayPoints = ParamConfig.BOOLEAN(DEFAULT.displayCenter); /** @param display center */ this.displayCenter = ParamConfig.BOOLEAN(DEFAULT.displayCenter); /** @param display sphere */ this.displaySphere = ParamConfig.BOOLEAN(DEFAULT.displaySphere); } }; } export function OBJTetTesselationParamConfig(Base) { return class Mixin extends Base { constructor() { super(...arguments); /** @param tet scale */ this.TetScale = ParamConfig.FLOAT(DEFAULT.scale, { range: [0, 1], rangeLocked: [true, true] }); /** @param display outer mesh */ this.TetDisplayOuterMesh = ParamConfig.BOOLEAN(DEFAULT.displayOuterMesh); /** @param display tet mesh */ this.TetDisplayTetMesh = ParamConfig.BOOLEAN(DEFAULT.displayTetMesh); /** @param display lines */ this.TetDisplayLines = ParamConfig.BOOLEAN(DEFAULT.displayLines); /** @param display lines */ this.TetDisplaySharedFaces = ParamConfig.BOOLEAN(DEFAULT.displaySharedFaces); /** @param display points */ this.TetDisplayPoints = ParamConfig.BOOLEAN(DEFAULT.displayPoints); /** @param display center */ this.TetDisplayCenter = ParamConfig.BOOLEAN(DEFAULT.displayCenter); /** @param display sphere */ this.TetDisplaySphere = ParamConfig.BOOLEAN(DEFAULT.displaySphere); } }; } export const TESSELATION_PARAM_NAMES = /* @__PURE__ */ new Set([ "TetScale", "TetDisplayMesh", "TetDisplayLines", "TetDisplaySharedFaces", "TetDisplayPoints", "TetDisplayCenter", "TetDisplaySphere" ]); export function addTetTesselationParamsCallback(node, callback) { node.params.onParamsCreated("TettesselationParamsHooks", () => { const params = node.params.all; for (const param of params) { if (TESSELATION_PARAM_NAMES.has(param.name())) { param.options.setOption("callback", callback); } } }); }