UNPKG

kitchen-simulator

Version:

It is a kitchen simulator (self-contained micro-frontend).

62 lines (61 loc) 2.63 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof3 = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getAllMeshes = getAllMeshes; exports.objectsCompare = objectsCompare; exports.objectsMap = objectsMap; exports.vectorIntersectWithMesh = vectorIntersectWithMesh; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var Three = _interopRequireWildcard(require("three")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } String.prototype.isLeftPlaceholder = function () { return this.match(/_L$|_L_\d$/) != null; }; String.prototype.isRightPlaceholder = function () { return this.match(/_R$|_R_\d$/) != null; }; function objectsMap(object, func) { var mappedObject = {}; for (var key in object) { mappedObject[key] = func(key, mappedObject[key]); } return mappedObject; } function objectsCompare(x, y) { if (x === y) return true; if (!(x instanceof Object) || !(y instanceof Object)) return false; if (x.constructor !== y.constructor) return false; for (var p in x) { if (!x.hasOwnProperty(p)) continue; if (!y.hasOwnProperty(p)) return false; if (x[p] === y[p]) continue; if ((0, _typeof2["default"])(x[p]) !== 'object') return false; if (!objectsCompare(x[p], y[p])) return false; } for (var _p in y) { if (y.hasOwnProperty(_p) && !x.hasOwnProperty(_p)) return false; } return true; } function getAllMeshes(objects) { var meshes = []; objects.forEach(function (object) { if (!object) return; object.traverse(function (o) { if (o.isMesh && o.geometry) { meshes.push(o); } }); }); return meshes; } function vectorIntersectWithMesh(origin, target) { var vectorDir = new Three.Vector3(origin.x, origin.y - 1000, origin.z); var ray = new Three.Raycaster(); ray.set(origin, vectorDir); var intersects = ray.intersectObject(target, true); return intersects.length > 0; }