UNPKG

@polygonjs/polygonjs

Version:

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

33 lines (32 loc) 1.19 kB
"use strict"; import { incrementRefSafely, ref } from "./CoreReactivity"; const refByObjectUuidByUserDataName = /* @__PURE__ */ new Map(); export function getOrCreateUserDataRef(object3D, userDataName) { return getObjectUserDataRef(object3D, userDataName) || _createObjectUserDataRef(object3D, userDataName); } function getObjectUserDataRef(object3D, userDataName) { var _a; return (_a = refByObjectUuidByUserDataName.get(object3D.uuid)) == null ? void 0 : _a.get(userDataName); } export function _createObjectUserDataRef(object3D, userDataName) { let mapForObject = refByObjectUuidByUserDataName.get(object3D.uuid); if (!mapForObject) { mapForObject = /* @__PURE__ */ new Map(); refByObjectUuidByUserDataName.set(object3D.uuid, mapForObject); } let refForProperty = mapForObject.get(userDataName); if (!refForProperty) { refForProperty = ref(0); mapForObject.set(userDataName, refForProperty); } return refForProperty; } export function _dummyReadUserDataRefVal(value) { } export function touchObjectUserData(object3D, userDataName) { const _ref = getObjectUserDataRef(object3D, userDataName); if (!_ref) { return; } incrementRefSafely(_ref); }