UNPKG

bands-visualiser

Version:
57 lines (49 loc) 1.34 kB
import { plotDOSLayout, plotDOSLayoutF, traceDefaultDos, } from "./utils/MCXDPlotTemplates"; import { getColor } from "./utils/plotUtils"; export function getDosLayout(orientation = "h") { let layout; if (orientation === "v") { // flipped axis. layout = plotDOSLayoutF; } else { layout = plotDOSLayout; } return layout; } export function getDosTraces(dosData, orientation = "h", traceFormat = {}) { const xVals = orientation === "v" ? dosData.y : dosData.x; const yVals = orientation === "v" ? dosData.x : dosData.y; const trace = { ...traceDefaultDos, ...traceFormat, x: xVals, y: yVals, }; return trace; } export function getDos(dosDataArray, orientation = "h") { const dosTraces = []; for (const [index, i] of dosDataArray.entries()) { let formatting = i.traceFormat; // if there is no traceFormat info we use the index if (!formatting || Object.keys(formatting).length === 0) { formatting = { name: `DOS ${index}`, line: { color: getColor(index), width: 2.0, }, }; } const dosData = i.dosData; const trace = getDosTraces(dosData, orientation, formatting); dosTraces.push(trace); } const dosLayout = getDosLayout(orientation); return { dosTraces, dosLayout }; } export default getDos;