UNPKG

rabbit-ear

Version:
68 lines (64 loc) 1.86 kB
/* Rabbit Ear 0.9.4 alpha 2024-04-20 (c) Kraft, GNU GPLv3 License */ import { remove } from '../remove.js'; const edgeIsolatedVertices = ({ vertices_coords, edges_vertices }) => { if (!vertices_coords || !edges_vertices) { return []; } let count = vertices_coords.length; const seen = Array(count).fill(false); edges_vertices.forEach((ev) => { ev.filter(v => !seen[v]).forEach((v) => { seen[v] = true; count -= 1; }); }); return seen .map((s, i) => (s ? undefined : i)) .filter(a => a !== undefined); }; const faceIsolatedVertices = ({ vertices_coords, faces_vertices }) => { if (!vertices_coords || !faces_vertices) { return []; } let count = vertices_coords.length; const seen = Array(count).fill(false); faces_vertices.forEach((fv) => { fv.filter(v => !seen[v]).forEach((v) => { seen[v] = true; count -= 1; }); }); return seen .map((s, i) => (s ? undefined : i)) .filter(a => a !== undefined); }; const isolatedVertices = ({ vertices_coords, edges_vertices, faces_vertices }) => { if (!vertices_coords) { return []; } let count = vertices_coords.length; const seen = Array(count).fill(false); if (edges_vertices) { edges_vertices.forEach((ev) => { ev.filter(v => !seen[v]).forEach((v) => { seen[v] = true; count -= 1; }); }); } if (faces_vertices) { faces_vertices.forEach((fv) => { fv.filter(v => !seen[v]).forEach((v) => { seen[v] = true; count -= 1; }); }); } return seen .map((s, i) => (s ? undefined : i)) .filter(a => a !== undefined); }; const removeIsolatedVertices = (graph, remove_indices) => { if (!remove_indices) { remove_indices = isolatedVertices(graph); } return { map: remove(graph, "vertices", remove_indices), remove: remove_indices, }; }; export { edgeIsolatedVertices, faceIsolatedVertices, isolatedVertices, removeIsolatedVertices };