This repository has been archived on 2024-05-11. You can view files and clone it, but cannot push or open issues or pull requests.
meshviewer/lib/filters/nodefilter.js

41 lines
819 B
JavaScript

define(function () {
'use strict';
return function (filter) {
return function (data) {
var n = Object.create(data);
n.nodes = {};
for (var key in data.nodes) {
if (data.nodes.hasOwnProperty(key)) {
n.nodes[key] = data.nodes[key].filter(filter);
}
}
var filteredIds = new Set();
n.graph = {};
n.graph.nodes = data.graph.nodes.filter(function (d) {
var r;
if (d.node) {
r = filter(d.node);
} else {
r = filter({});
}
if (r) {
filteredIds.add(d.id);
}
return r;
});
n.graph.links = data.graph.links.filter(function (d) {
return filteredIds.has(d.source.id) && filteredIds.has(d.target.id);
});
return n;
};
};
});