2019-06-15 11:51:56 +02:00
|
|
|
import setLayoutAndViewportData from './setLayoutAndViewportData.js';
|
|
|
|
|
import setSingleLayoutData from './setSingleLayoutData.js';
|
|
|
|
|
|
|
|
|
|
export default function setMPRLayout(displaySet) {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
let viewports = [];
|
|
|
|
|
const rows = 1;
|
|
|
|
|
const columns = 3;
|
|
|
|
|
const numViewports = rows * columns;
|
|
|
|
|
const viewportSpecificData = {};
|
|
|
|
|
for (let i = 0; i < numViewports; i++) {
|
|
|
|
|
viewports.push({
|
|
|
|
|
height: `${100 / rows}%`,
|
2019-06-21 05:17:07 +02:00
|
|
|
width: `${100 / columns}%`,
|
2019-06-15 11:51:56 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
viewportSpecificData[i] = displaySet;
|
|
|
|
|
viewportSpecificData[i].plugin = 'vtk';
|
|
|
|
|
}
|
|
|
|
|
const layout = {
|
2019-06-21 05:17:07 +02:00
|
|
|
viewports,
|
2019-06-15 11:51:56 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const viewportIndices = [0, 1, 2];
|
|
|
|
|
let updatedViewports = layout.viewports;
|
|
|
|
|
|
|
|
|
|
const apis = [];
|
|
|
|
|
viewportIndices.forEach(viewportIndex => {
|
|
|
|
|
apis[viewportIndex] = null;
|
|
|
|
|
/*const currentData = layout.viewports[viewportIndex];
|
|
|
|
|
if (currentData && currentData.plugin === 'vtk') {
|
|
|
|
|
reject(new Error('Should not have reached this point??'));
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
const data = {
|
2019-06-18 20:51:51 +02:00
|
|
|
// plugin: 'vtk',
|
2019-06-15 11:51:56 +02:00
|
|
|
vtk: {
|
|
|
|
|
mode: 'mpr', // TODO: not used
|
|
|
|
|
afterCreation: api => {
|
|
|
|
|
apis[viewportIndex] = api;
|
|
|
|
|
|
|
|
|
|
if (apis.every(a => !!a)) {
|
|
|
|
|
resolve(apis);
|
|
|
|
|
}
|
2019-06-21 05:17:07 +02:00
|
|
|
},
|
|
|
|
|
},
|
2019-06-15 11:51:56 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
updatedViewports = setSingleLayoutData(
|
|
|
|
|
updatedViewports,
|
|
|
|
|
viewportIndex,
|
|
|
|
|
data
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
setLayoutAndViewportData(
|
|
|
|
|
{ viewports: updatedViewports },
|
|
|
|
|
viewportSpecificData
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
}
|