How to setup and customize the multi-view.
/**
* This script can be used to illustrate the MultiView layout options
* It expects two data set to be already loaded (ie. CT + PET)
*/
// Navigate to Multi view
var mw = VQ.mainWin();
mw.setViewMode('Multi View','Layout');
var view = VQ.currentView();
/*
Creating initial layout
*/
view.setLayoutSize(2, 3); // 2 rows, 3 cols
// Setting planes: setPlane(row, col, plane) where the default is sag
view.setPlane(0, 0, 0); // Set row 0 col 0 to sag
view.setPlane(0, 1, 1); // Set row 0 col 1 to cor
view.setPlane(0, 2, 2); // Set row 0 col 1 to trans
view.setPlane(1, 0, 2); // Set row 0 col 0 to trans
// setData( row, col, viewIndex, dataIndex);
// viewIndex: the layer index to display the data on (0-2)
// CT and PET fuse for row 0 col 0
view.setData(0, 0, 0, 0); // The first data drop box is CT for row 0 col 0
view.setData(0, 0, 1, 1); // The second data drop box is PET for row 0 col 0
view.setData(0, 1, 1, 1);
view.setData(0, 2, 1, 0);
view.setData(1, 0, 0, 0);
view.setData(1, 1, 1, 1);
view.setData(1, 2, 2, 0);
VQ.suspend("2x3 Layout.");
// merge( row, col, rowSpan, colSpan)
view.merge(0, 0, 2, 1); // Merge two rows on the first column
view.merge(0, 1, 2, 1); // Merge two rows on the second column
view.merge(0, 2, 2, 1); // Merge two rows on the third column
VQ.suspend("Applied Merges.");
/*
Save/load Hanging Protocols
*/
var layoutName = "MultiViewLayout-Test";
var layout = VQ.currentOp();
layout.createHangProtocol(layoutName);
VQ.suspend("Saved as new Hanging Protocol.");
view.merge(0,0,2,2)
// split( row, col)
view.split(0, 0) // Split the cells back
// Clear everything
view.resetLayout();
VQ.suspend("Reseted layout.");
// Opening saved hanging protocol
view.setHangProtocol(layoutName); // Shows the saved 1x3 sag, cor, trans
VQ.suspend("Loaded hanging protocol.");
// Clear severything
view.resetLayout();
/*
Creating new layout
*/
view.setLayoutSize(1, 4); // 1 x 4 layout
// Setting planes
view.setPlane(0, 0, 0);
view.setPlane(0, 1, 0);
view.setPlane(0, 2, 0);
view.setPlane(0, 3, 2);
// Setting data
view.setData(0, 0, 0, 0);
view.setData(0, 1, 0, 1);
view.setData(0, 2, 0, 0);
view.setData(0, 2, 1, 1);
view.setData(0, 3, 0, 1);
// Merges the last two columns
view.merge(0, 2, 1, 2);
// Split the last column if it was merged
if (view.isMerged(0, 2) == 1) {
view.split(0, 2)
}
VQ.suspend("Created new 1x4 layout.");
/*
Query layout information
*/
// Gets the data ID (corresponds to the data ID from the DataManager)
var dataID = view.getDataID(0, 2, 1); // getDataID(row, col, viewIndex)
// Gets the plane ID
var planeID = view.getPlaneID(0, 2); // getPlaneID(row, col)
// Get the current number of rows and columns in the layout
var nbRow = view.getActiveRows();
var nbCol = view.getActiveColumns();
// Gets the maximum values that can be used for setLayoutSize()
var dim = view.getMaxDim();
// Display layout information
VQ.showMessage('DataID' +':'+ dataID + '\n' + 'PlaneID' +':'+ planeID + '\n' +'ActiveRow' +':'+ nbRow + '\n' + 'ActiveCol' +':'+ nbCol + '\n' + 'Dimensions' +':'+ dim);