Package org.geotools.graph.structure

Examples of org.geotools.graph.structure.Edge


   
    for (int i = 1; i < size(); i++) {
      Node prev = (Node)get(i-1);
      Node curr = (Node)get(i);
     
      Edge e = curr.getEdge(prev);
     
      if (e != null) edges.add(e);
      else return(null)
    }
   
View Full Code Here


   
    //rebuild edge collection, upon reading an edge, at the edge to the
    // adjacency list of each of its nodes
    int count = 0;
    while(count++ < nedges) {
      Edge e = (Edge)objin.readObject();
      e.getNodeA().setVisited(false);
      e.getNodeB().setVisited(false);
      builder.addEdge(e);
    }
   
    //rebuild node collection
    for (
      Iterator itr = builder.getGraph().getEdges().iterator(); itr.hasNext();
    ) {
      Edge e = (Edge)itr.next();
   
      if (!e.getNodeA().isVisited()) {
        e.getNodeA().setVisited(true);
        builder.addNode(e.getNodeA())
     
     
      if (!e.getNodeB().isVisited()) {
        e.getNodeB().setVisited(true);
        builder.addNode(e.getNodeB());
      }
    }
   
    //check if object stream is empty, if not, there are nodes of degree 0
    // in the graph
View Full Code Here

    objout.writeInt(graph.getNodes().size());
    objout.writeInt(graph.getEdges().size());
   
    //write out edges (note: nodes do not write out adjacent edges)
    for (Iterator itr = graph.getEdges().iterator(); itr.hasNext();) {
      Edge e = (Edge)itr.next();
      objout.writeObject(e);
    }
   
    //write out any nodes that have no adjacent edges
    for (Iterator itr = graph.getNodesOfDegree(0).iterator(); itr.hasNext();) {
View Full Code Here

  /**
   * @see Node#getEdge(Node)
   */
  public Edge getEdge(Node other) {
    Edge e = getInEdge((DirectedNode)other);
    if (e == null) e = getOutEdge((DirectedNode)other);
    return(e);
  }
View Full Code Here

     * @see BasicGraphable#isVisited()
     * @see BasicGraphable#getCount()
     */
    public void initEdges() {
      for (Iterator itr = m_edges.iterator(); itr.hasNext();) {
        Edge edge = (Edge) itr.next();
        edge.setVisited(false);
        edge.setCount(0);
      }
    }
View Full Code Here

      related.add(edges[i])
    }
   
    edges = m_in.getOutEdgeArray();
    for (int i = 0; i < edges.length; i++) {
      Edge e = edges[i];
      if (!e.equals(this) && !(e.getNodeA().equals(e.getNodeB())))
        related.add(edges[i])
    }
   
    edges = m_out.getInEdgeArray();
    for (int i = 0; i < edges.length; i++) {
      Edge e = edges[i];
     
      switch(compareNodes(e)) {
        case Edge.EQUAL_NODE_ORIENTATION:
        case Edge.OPPOSITE_NODE_ORIENTATION:
          continue; //already added
       
        case Edge.UNEQUAL_NODE_ORIENTATION:
          related.add(e);
     
    }
   
    edges = m_out.getOutEdgeArray();
    for (int i = 0; i < edges.length; i++) {
      Edge e = edges[i];
     
      switch(compareNodes(edges[i])) {
        case Edge.EQUAL_NODE_ORIENTATION:
        case Edge.OPPOSITE_NODE_ORIENTATION:
          continue; //already added
       
        case Edge.UNEQUAL_NODE_ORIENTATION:
          if (!e.getNodeA().equals(e.getNodeB())) related.add(e);
     
    }
   
    return(related.iterator());
  }
View Full Code Here

    if (n2 == null) {
      n2 = createNode(last);
    }

    //build the edge setting underlying object to line
    Edge e = getGraphBuilder().buildEdge(n1,n2);

    getGraphBuilder().addEdge(e);

    if (useTolerance()) {
      line = alterLine(line, n1, n2);
View Full Code Here

    Node n1 = retrieveNode(line.p0);
    Node n2 = retrieveNode(line.p1);
   
    if (n1 == null || n2 == null) return(null);
   
    Edge e = n1.getEdge(n2);
    getGraphBuilder().removeEdge(e);
   
    return(e);
  }
View Full Code Here

    // of the node, the degree is not simply the size of the edge
    // list
    int degree = 0;
   
    for (int i = 0; i < m_edges.size(); i++) {
      Edge e = (Edge)m_edges.get(i);
      if (e.getNodeA().equals(this)) degree++;
      if (e.getNodeB().equals(this)) degree++; 
    }
   
    return(degree);
  }
View Full Code Here

   */
  public Edge getEdge(Node other) {
    //must explictley check that the edge has node other, and one node this,
    // just checking other is not good enough because of loops
    for (int i = 0; i < m_edges.size(); i++) {
      Edge e = (Edge)m_edges.get(i);
       if (
        (e.getNodeA().equals(this) && e.getNodeB().equals(other)) ||
        (e.getNodeA().equals(other) && e.getNodeB().equals(this))
      ) return(e);
    }
    return(null);
  }
View Full Code Here

TOP

Related Classes of org.geotools.graph.structure.Edge

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.