modified algorithm for dfj style parallelism
[IRC.git] / Robust / src / Benchmarks / oooJava / DelaunayRefinement / Subgraph.java
1 public class Subgraph {
2
3   private final LinkedList nodes = new LinkedList();
4   private final LinkedList border = new LinkedList();
5   private final LinkedList edges = new LinkedList();
6
7   public Subgraph() {
8   }
9
10   public boolean existsNode(Node n) {
11     return nodes.contains(n);
12   }
13
14   public boolean existsBorder(Node b) {
15     return border.contains(b);
16   }
17
18   public boolean existsEdge(Edge_d e) {
19     return edges.contains(e);
20   }
21
22   public void addNode(Node n) {
23     nodes.addLast(n);
24   }
25
26   public void addBorder(Node b) {
27     border.addLast(b);
28   }
29
30   public void addEdge(Edge_d e) {
31     edges.addLast(e);
32   }
33
34   public LinkedList getNodes() {
35     return nodes;
36   }
37
38   public LinkedList getBorder() {
39     return border;
40   }
41
42   public LinkedList getEdges() {
43     return edges;
44   }
45
46   public void reset() {
47     nodes.clear();
48     border.clear();
49     edges.clear();
50   }
51
52
53   public boolean allNodesStillInCompleteGraph() {
54     for( Iterator i = nodes.iterator(); i.hasNext(); ) {
55       Node node = (Node) i.next();
56       if( !node.inGraph ) {
57         return false;
58       }
59     }
60     return true;
61   }
62
63   public HashSet newBad(EdgeGraph mesh) {
64     HashSet ret = new HashSet();
65     for (Iterator iter = nodes.iterator(); iter.hasNext();) {
66       Node node = (Node) iter.next();
67       Element element = (Element) mesh.getNodeData(node);
68       if (element.isBad())
69         ret.add(node);
70     }
71
72     return ret;
73   }
74 }