import * as THREE from 'three'; export const isNullOfUndefined = (param) => { if (null === param || undefined === param) { return true; } else { return false; } } export const rotationToNum = (rotation) => { let res = rotation * 180 / Math.PI; if (res < 0) { res += 360; } else if (res > 360) { res -= 360; } return res; } export const rotationParseNum = (num) => { const normalizedDegrees = num % 360; return normalizedDegrees * Math.PI / 180; } export const minDiffTheta = (originTheta, targetTheta) => { return (targetTheta - originTheta > 180) ? targetTheta - 360 : targetTheta; } export const setShadow = (obj) => { obj.castShadow = true; obj.receiveShadow = true; if (obj.children) { obj.children.forEach((child) => { setShadow(child); }); } }; export const setColor = (obj) => { if (obj.material) { obj.material.color.set(0x4680BF); } if (obj.children) { obj.children.forEach((child) => { setColor(child); }); } }; export const deepEqual = (obj1, obj2) => { if (obj1 === obj2) { return true; } if (typeof obj1 !== "object" || obj1 === null || typeof obj2 !== "object" || obj2 === null) { return false; } var keys1 = Object.keys(obj1); var keys2 = Object.keys(obj2); if (keys1.length !== keys2.length) { return false; } for (var key of keys1) { if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) { return false; } } return true; }