mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
@ -0,0 +1,116 @@
|
||||
var layerVisibility = {},
|
||||
orderMappping = {},
|
||||
layerCount = {},
|
||||
requestMap = {
|
||||
'_': updateVisibility,
|
||||
'w': processComposites,
|
||||
'd': registerData,
|
||||
's': updatePixelCount
|
||||
},
|
||||
compositeData = {},
|
||||
needToUpdateOrderTable = true,
|
||||
missingOrderKeys = true,
|
||||
nbPixels = 100;
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
function updatePixelCount(nbPixelsSTR) {
|
||||
nbPixels = Number(nbPixelsSTR);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
function updateVisibility(query) {
|
||||
var count = query.length;
|
||||
for(var idx = 0; idx < count; idx += 2) {
|
||||
layerVisibility[query[idx]] = (query[idx+1] != '_');
|
||||
layerCount[query[idx]] = 0;
|
||||
}
|
||||
needToUpdateOrderTable = true;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
function getLayer(order) {
|
||||
var count = order.length;
|
||||
for(var i = 0; i < count; ++i) {
|
||||
if(layerVisibility[order[i]]) {
|
||||
return order[i];
|
||||
}
|
||||
}
|
||||
return '+';
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
function registerData(dataStr) {
|
||||
var id_fields_data = dataStr.split('|');
|
||||
compositeData[id_fields_data[0]] = { fields: JSON.parse(id_fields_data[1]), order: JSON.parse(id_fields_data[2]) };
|
||||
missingOrderKeys = true;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
function updateOrderKeys() {
|
||||
if(missingOrderKeys) {
|
||||
missingOrderKeys = false;
|
||||
needToUpdateOrderTable = true;
|
||||
|
||||
for(var id in compositeData) {
|
||||
var composite = compositeData[id].order;
|
||||
for(var order in composite) {
|
||||
orderMappping[order] = '+';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
function computeOrderMap() {
|
||||
if(needToUpdateOrderTable) {
|
||||
needToUpdateOrderTable = false;
|
||||
for(var order in orderMappping) {
|
||||
orderMappping[order] = getLayer(order);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
function resetLayerCount() {
|
||||
for(var key in layerCount) {
|
||||
layerCount[key] = 0;
|
||||
}
|
||||
return layerCount;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
function processComposites() {
|
||||
updateOrderKeys();
|
||||
computeOrderMap();
|
||||
|
||||
for(var id in compositeData) {
|
||||
var composite = compositeData[id].order,
|
||||
layerCount = resetLayerCount();
|
||||
|
||||
for(var order in composite) {
|
||||
layerCount[orderMappping[order]] += composite[order];
|
||||
}
|
||||
|
||||
// Compute percentage
|
||||
var ratio = 100 / nbPixels;
|
||||
for(var layer in layerCount) {
|
||||
layerCount[layer] *= ratio;
|
||||
}
|
||||
|
||||
postMessage({id:id, count:layerCount, fields: compositeData[id].fields});
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
onmessage = function (event) {
|
||||
requestMap[event.data[0]](event.data.substr(1));
|
||||
}
|
||||
Reference in New Issue
Block a user