@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
33 lines (32 loc) • 1.19 kB
JavaScript
;
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);
}