UNPKG

@polygonjs/polygonjs

Version:

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

41 lines (40 loc) 1.2 kB
"use strict"; import { incrementRefSafely, ref } from "../../core/reactivity/CoreReactivity"; const refByNodePathByParamName = /* @__PURE__ */ new Map(); export function getOrCreateParamRef(node, paramName) { return getParamRef(node, paramName) || createParamRef(node, paramName); } export function getParamRef(node, paramName) { var _a; return (_a = refByNodePathByParamName.get(node.path())) == null ? void 0 : _a.get(paramName); } export function createParamRef(node, paramName) { let mapForNode = refByNodePathByParamName.get(node.path()); if (!mapForNode) { mapForNode = /* @__PURE__ */ new Map(); refByNodePathByParamName.set(node.path(), mapForNode); } let refForParam = mapForNode.get(paramName); if (!refForParam) { refForParam = ref(0); mapForNode.set(paramName, refForParam); } return refForParam; } export function touchParamRef(node, paramName) { const _ref = getParamRef(node, paramName); if (!_ref) { return; } incrementRefSafely(_ref); } export function touchParamRefFromParam(param) { if (!param.node) { return; } const _ref = getParamRef(param.node, param.name()); if (!_ref) { return; } incrementRefSafely(_ref); }