private static int getDegreeNonDeleted(Node node) { List edges = node.getOutEdges().getEdges(); int degree = 0; for (Iterator i = edges.iterator(); i.hasNext(); ) { PolygonizeDirectedEdge de = (PolygonizeDirectedEdge) i.next(); if (! de.isMarked()) degree++; } return degree; }
private static int getDegree(Node node, long label) { List edges = node.getOutEdges().getEdges(); int degree = 0; for (Iterator i = edges.iterator(); i.hasNext(); ) { PolygonizeDirectedEdge de = (PolygonizeDirectedEdge) i.next(); if (de.getLabel() == label) degree++; } return degree; }
/** * Returns all Edges that connect the two nodes (which are assumed to be different). */ public static Collection getEdgesBetween(Node node0, Node node1) { List edges0 = DirectedEdge.toEdges(node0.getOutEdges().getEdges()); Set commonEdges = new HashSet(edges0); List edges1 = DirectedEdge.toEdges(node1.getOutEdges().getEdges()); commonEdges.retainAll(edges1); return commonEdges; }
/** * Deletes all edges at a node */ public static void deleteAllEdges(Node node) { List edges = node.getOutEdges().getEdges(); for (Iterator i = edges.iterator(); i.hasNext(); ) { PolygonizeDirectedEdge de = (PolygonizeDirectedEdge) i.next(); de.setMarked(true); PolygonizeDirectedEdge sym = (PolygonizeDirectedEdge) de.getSym(); if (sym != null) sym.setMarked(true); } }
/** * Returns the directed edge that starts at this directed edge's end point, or null * if there are zero or multiple directed edges starting there. * @return the directed edge */ public LineMergeDirectedEdge getNext() { if (getToNode().getDegree() != 2) { return null; } if (getToNode().getOutEdges().getEdges().get(0) == getSym()) { return (LineMergeDirectedEdge) getToNode().getOutEdges().getEdges().get(1); } Assert.isTrue(getToNode().getOutEdges().getEdges().get(1) == getSym()); return (LineMergeDirectedEdge) getToNode().getOutEdges().getEdges().get(0); } }
/** * Removes a node from the graph, along with any associated DirectedEdges and * Edges. */ public void remove(Node node) { // unhook all directed edges List outEdges = node.getOutEdges().getEdges(); for (Iterator i = outEdges.iterator(); i.hasNext(); ) { DirectedEdge de = (DirectedEdge) i.next(); DirectedEdge sym = de.getSym(); // remove the diredge that points to this node if (sym != null) remove(sym); // remove this diredge from the graph collection dirEdges.remove(de); Edge edge = de.getEdge(); if (edge != null) { edges.remove(edge); } } // remove the node from the graph nodeMap.remove(node.getCoordinate()); node.remove(); }
List nodeOutEdges = node.getOutEdges().getEdges(); for (Iterator i = nodeOutEdges.iterator(); i.hasNext(); ) { PolygonizeDirectedEdge de = (PolygonizeDirectedEdge) i.next();
private static void computeNextCWEdges(Node node) { DirectedEdgeStar deStar = node.getOutEdges(); PolygonizeDirectedEdge startDE = null; PolygonizeDirectedEdge prevDE = null; // the edges are stored in CCW order around the star for (Iterator i = deStar.getEdges().iterator(); i.hasNext(); ) { PolygonizeDirectedEdge outDE = (PolygonizeDirectedEdge) i.next(); if (outDE.isMarked()) continue; if (startDE == null) startDE = outDE; if (prevDE != null) { PolygonizeDirectedEdge sym = (PolygonizeDirectedEdge) prevDE.getSym(); sym.setNext(outDE); } prevDE = outDE; } if (prevDE != null) { PolygonizeDirectedEdge sym = (PolygonizeDirectedEdge) prevDE.getSym(); sym.setNext(startDE); } } /**
List edges = deStar.getEdges();
private static int getDegreeNonDeleted(Node node) { List edges = node.getOutEdges().getEdges(); int degree = 0; for (Iterator i = edges.iterator(); i.hasNext(); ) { PolygonizeDirectedEdge de = (PolygonizeDirectedEdge) i.next(); if (! de.isMarked()) degree++; } return degree; }
private static int getDegree(Node node, long label) { List edges = node.getOutEdges().getEdges(); int degree = 0; for (Iterator i = edges.iterator(); i.hasNext(); ) { PolygonizeDirectedEdge de = (PolygonizeDirectedEdge) i.next(); if (de.getLabel() == label) degree++; } return degree; }
/** * Returns all Edges that connect the two nodes (which are assumed to be different). */ public static Collection getEdgesBetween(Node node0, Node node1) { List edges0 = DirectedEdge.toEdges(node0.getOutEdges().getEdges()); Set commonEdges = new HashSet(edges0); List edges1 = DirectedEdge.toEdges(node1.getOutEdges().getEdges()); commonEdges.retainAll(edges1); return commonEdges; }
/** * Deletes all edges at a node */ public static void deleteAllEdges(Node node) { List edges = node.getOutEdges().getEdges(); for (Iterator i = edges.iterator(); i.hasNext(); ) { PolygonizeDirectedEdge de = (PolygonizeDirectedEdge) i.next(); de.setMarked(true); PolygonizeDirectedEdge sym = (PolygonizeDirectedEdge) de.getSym(); if (sym != null) sym.setMarked(true); } }
/** * Returns the directed edge that starts at this directed edge's end point, or null * if there are zero or multiple directed edges starting there. * @return the directed edge */ public LineMergeDirectedEdge getNext() { if (getToNode().getDegree() != 2) { return null; } if (getToNode().getOutEdges().getEdges().get(0) == getSym()) { return (LineMergeDirectedEdge) getToNode().getOutEdges().getEdges().get(1); } Assert.isTrue(getToNode().getOutEdges().getEdges().get(1) == getSym()); return (LineMergeDirectedEdge) getToNode().getOutEdges().getEdges().get(0); } }
/** * Removes a node from the graph, along with any associated DirectedEdges and * Edges. */ public void remove(Node node) { // unhook all directed edges List outEdges = node.getOutEdges().getEdges(); for (Iterator i = outEdges.iterator(); i.hasNext(); ) { DirectedEdge de = (DirectedEdge) i.next(); DirectedEdge sym = de.getSym(); // remove the diredge that points to this node if (sym != null) remove(sym); // remove this diredge from the graph collection dirEdges.remove(de); Edge edge = de.getEdge(); if (edge != null) { edges.remove(edge); } } // remove the node from the graph nodeMap.remove(node.getCoordinate()); node.remove(); }
private static void computeNextCWEdges(Node node) { DirectedEdgeStar deStar = node.getOutEdges(); PolygonizeDirectedEdge startDE = null; PolygonizeDirectedEdge prevDE = null; // the edges are stored in CCW order around the star for (Iterator i = deStar.getEdges().iterator(); i.hasNext(); ) { PolygonizeDirectedEdge outDE = (PolygonizeDirectedEdge) i.next(); if (outDE.isMarked()) continue; if (startDE == null) startDE = outDE; if (prevDE != null) { PolygonizeDirectedEdge sym = (PolygonizeDirectedEdge) prevDE.getSym(); sym.setNext(outDE); } prevDE = outDE; } if (prevDE != null) { PolygonizeDirectedEdge sym = (PolygonizeDirectedEdge) prevDE.getSym(); sym.setNext(startDE); } } /**
List nodeOutEdges = node.getOutEdges().getEdges(); for (Iterator i = nodeOutEdges.iterator(); i.hasNext(); ) { PolygonizeDirectedEdge de = (PolygonizeDirectedEdge) i.next();
List edges = deStar.getEdges();