#
luxiaotao1123
2024-05-08 15d3b197f6102f347a828f2b50d5dfebe57780dd
src/utils/common.js
@@ -1,4 +1,5 @@
import * as THREE from 'three';
import { REAL_COMPARE_MAP_SCALE, REAL_COMPARE_MAP_OFFSET_X, REAL_COMPARE_MAP_OFFSET_Z } from '../config/setting'
export const isNullOfUndefined = (param) => {
    if (null === param || undefined === param) {
@@ -19,8 +20,36 @@
}
export const rotationParseNum = (num) => {
    return num * Math.PI / 180;
    const normalizedDegrees = positiveAngle(num);
    return normalizedDegrees * Math.PI / 180;
}
export const minDiffTheta = (originTheta, targetTheta) => {
    return (targetTheta - originTheta > 180) ? targetTheta - 360 : targetTheta;
}
export const positiveAngle = (angle) => {
    return ((angle % 360) + 360) % 360;
}
export const normalizeAngle = (angle) => {
    let newAngle = angle % 360;
    if (newAngle < -180) {
        newAngle += 360;
    } else if (newAngle > 180) {
        newAngle -= 360;
    }
    return newAngle;
}
export const calculateMappedPosition = (realPos) => {
    return [
        realPos[0] * REAL_COMPARE_MAP_SCALE + REAL_COMPARE_MAP_OFFSET_X,
        realPos[1],
        realPos[2] * REAL_COMPARE_MAP_SCALE + REAL_COMPARE_MAP_OFFSET_Z
    ];
};
export const setShadow = (obj) => {
    obj.castShadow = true;
@@ -33,13 +62,49 @@
    }
};
export const setColor = (obj) => {
export const setColor = (obj, color = 0x4680BF) => {
    if (obj.material) {
        obj.material.color.set(0x4680BF);
        obj.material.color.set(color);
    }
    if (obj.children) {
        obj.children.forEach((child) => {
            setColor(child);
            setColor(child, color);
        });
    }
};
};
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;
}
export const parseLocNo = (locNo) => {
    if (!locNo || typeof locNo !== 'string') {
        return null;
    }
    const locParseArr = locNo.split('-');
    return {
        row: Number(locParseArr?.[0]),
        bay: Number(locParseArr?.[1]),
        lev: Number(locParseArr?.[2]),
    }
}
export const generateLocNo = (row, bay, lev) => {
    return row + '-' + bay + '-' + lev;
}