Package prefuse.data

Examples of prefuse.data.Node


        // compute offset due to children's angular width
        double dt = 0;
        Iterator iter = sortedChildren(r);
        while ( iter.hasNext() ) {
            Node n = (Node)iter.next();
            if ( n == p ) break;
            dt += ((Params)n.get(PARAMS)).width;
        }
        double rw = ((Params)r.get(PARAMS)).width;
        double pw = ((Params)p.get(PARAMS)).width;
        dt = -MathLib.TWO_PI * (dt+pw/2)/rw;

 
View Full Code Here


       
        // print the nodes
        xml.comment("nodes");
        Iterator nodes = graph.nodes();
        while ( nodes.hasNext() ) {
            Node n = (Node)nodes.next();
           
            if ( ns.getColumnCount() > 0 ) {
                xml.start(Tokens.NODE, Tokens.ID, String.valueOf(n.getRow()));
                for ( int i=0; i<ns.getColumnCount(); ++i ) {
                    String field = ns.getColumnName(i);
                    xml.contentTag(Tokens.DATA, Tokens.KEY, field,
                                   n.getString(field));
                }
                xml.end();
            } else {
                xml.tag(Tokens.NODE, Tokens.ID, String.valueOf(n.getRow()));
            }
        }
       
        // add a blank line
        xml.println();
View Full Code Here

            }
            else if ( qName.equals(BRANCH) || qName.equals(LEAF) ) {
                schemaCheck();
               
                // parse a node element
                Node n;
                if ( m_activeNode == null ) {
                    n = m_tree.addRoot();
                } else {
                    n = m_tree.addChild(m_activeNode);
                }
View Full Code Here

                while ( tuples.hasNext() )
                    m_queue.add(tuples.next(), 0);
            }
        } else {
            if ( o instanceof Node ) {
                Node n = (Node)o;
                m_queue.visit(n, 0);
                Iterator edges = getEdges(n);
                while ( edges.hasNext() ) {
                    Edge e = (Edge)edges.next();
                    Node nn = e.getAdjacentNode(n);
                    m_queue.visit(nn, 1);
                    if ( m_queue.getDepth(e) < 0 )
                        m_queue.add(e, 1);
                }
            } else {
                Iterator tuples = (Iterator)o;
                while ( tuples.hasNext() ) {
                    // TODO: graceful error handling when non-node in set?
                    Node n = (Node)tuples.next();
                    m_queue.visit(n, 0);
                    Iterator edges = getEdges(n);
                    while ( edges.hasNext() ) {
                        Edge e = (Edge)edges.next();
                        Node nn = e.getAdjacentNode(n);
                        m_queue.visit(nn, 1);
                        if ( m_queue.getDepth(e) < 0 )
                            m_queue.add(e, 1);
                    }
                }
View Full Code Here

        case Constants.NODE_AND_EDGE_TRAVERSAL:
            for ( ; true; t = (Tuple)m_queue.removeFirst() ) {
                if ( t instanceof Edge ) {
                    return t;
                } else {
                    Node n = (Node)t;
                    int d = m_queue.getDepth(n);
                   
                    if ( d < m_depth ) {
                        int dd = d+1;
                        Iterator edges = getEdges(n);
                        while ( edges.hasNext() ) {
                            Edge e = (Edge)edges.next();
                            Node v = e.getAdjacentNode(n);
                       
                            if ( m_includeEdges && m_queue.getDepth(e) < 0 )
                                m_queue.add(e, dd);
                            if ( m_queue.getDepth(v) < 0 )
                                m_queue.add(v, dd);
                        }
                    }
                    else if ( m_includeEdges && d == m_depth )
                    {
                        Iterator edges = getEdges(n);
                        while ( edges.hasNext() ) {
                            Edge e = (Edge)edges.next();
                            Node v = e.getAdjacentNode(n);
                            int dv = m_queue.getDepth(v);
                            if ( dv > 0 && m_queue.getDepth(e) < 0 ) {
                                m_queue.add(e, Math.min(d,dv));
                            }
                        }
                    }
                    return n;
                }
            }
               
        case Constants.EDGE_TRAVERSAL:
            Edge e = (Edge)t;
            Node u = e.getSourceNode();
            Node v = e.getTargetNode();
            int du = m_queue.getDepth(u);
            int dv = m_queue.getDepth(v);

            if ( du != dv ) {
                Node n = (dv > du ? v : u);
                int  d = Math.max(du, dv);
           
                if ( d < m_depth ) {
                    int dd = d+1;
                    Iterator edges = getEdges(n);
                    while ( edges.hasNext() ) {
                        Edge ee = (Edge)edges.next();
                        if ( m_queue.getDepth(ee) >= 0 )
                            continue; // already visited
           
                        Node nn = ee.getAdjacentNode(n);
                        m_queue.visit(nn, dd);
                        m_queue.add(ee, dd);
                    }
                }
            }
View Full Code Here

     * @param tpl a data tuple from a potential edge table
     * @return true if the tuple contents allow it to serve as a valid
     * edge of between nodes in the backing graph
     */
    public boolean getBoolean(Tuple tpl) {
        Node s = m_g.getNodeFromKey(tpl.getInt(m_g.getEdgeSourceField()));
        Node t = m_g.getNodeFromKey(tpl.getInt(m_g.getEdgeTargetField()));
        return ( s != null && t != null );
    }
View Full Code Here

       
        // print the tree nodes
        attr[0] = Tokens.NAME;
        attr[1] = Tokens.VALUE;
       
        Node n = graph.getSpanningTree().getRoot();
        while ( n != null ) {
            boolean leaf = (n.getChildCount() == 0);
           
            if ( leaf ) {
                xml.start(Tokens.LEAF);
            } else {
                xml.start(Tokens.BRANCH);
            }
           
            if ( ns.getColumnCount() > 0 ) {
                for ( int i=0; i<ns.getColumnCount(); ++i ) {
                    vals[0] = ns.getColumnName(i);
                    vals[1] = n.getString(vals[0]);
                    if (vals[1] != null) {
                      xml.tag(Tokens.ATTR, attr, vals, 2);
                    }
                }
            }
View Full Code Here

     * @param x the current node
     * @param xml the XMLWriter
     * @return the next node
     */
    private Node nextNode(Node x, XMLWriter xml) {
        Node n, c;
        if ( (c=x.getChild(0)) != null ) {
            // do nothing
        } else if ( (c=x.getNextSibling()) != null ) {
            xml.end();
        } else {
View Full Code Here

    /**
     * @see java.util.Iterator#next()
     */
    public Object next() {
      Node c, x = null;
      if (m_preorder) {
        x = (Node)m_stack.get(m_stack.size()-1);
        if ( (c=x.getChild(0)) != null ) {
          m_stack.add(c);
        } else if ( (c=x.getNextSibling()) != null ) {
          m_stack.set(m_stack.size()-1, c);
        } else {
          m_stack.remove(m_stack.size()-1);
          while (!m_stack.isEmpty()) {
            c = (Node)m_stack.remove(m_stack.size()-1);
            if ( c == m_root ) {
              break;
            } else if ( (c=c.getNextSibling()) != null ) {
              m_stack.add(c); break;
            }
          }
        }
      } else {
        x = (Node)m_stack.remove(m_stack.size()-1);
        if ( x != m_root && (c=x.getNextSibling()) != null ) {
          for (; c != null; c=c.getChild(0)) {
            m_stack.add(c);
          }
        }
      }
      return x;
View Full Code Here

        assertEquals(EHEADERS[1], graph.getEdgeTargetField());
       
        // check all nodes, basic data
        Iterator niter = graph.nodes();
        while ( niter.hasNext() ) {
            Node node = (Node)niter.next();
            int nrow = node.getRow();

            if ( verbose ) System.out.print(nrow+"\t");
           
            // check data members
            for ( int i=0; i<NNODECOLS; ++i ) {
                assertEquals(NODES[i][nrow], node.get(NHEADERS[i]));
                assertEquals(NODES[i][nrow], nodes.get(nrow, NHEADERS[i]));
                if ( verbose ) System.out.print(NHEADERS[i]+":"+NODES[i][nrow]+"\t");
            }
           
            if ( verbose ) {
                System.out.print("in:"+node.getInDegree());
                System.out.print("\t");
                System.out.print("out:"+node.getOutDegree());
                System.out.println();
            }
           
            // check degrees
            assertEquals(node.getInDegree(),      INDEGREE[nrow]);
            assertEquals(graph.getInDegree(nrow),  INDEGREE[nrow]);
            assertEquals(node.getOutDegree(),     OUTDEGREE[nrow]);
            assertEquals(graph.getOutDegree(nrow), OUTDEGREE[nrow]);
           
            // check edges
            Iterator eiter = node.inEdges();
            while ( eiter.hasNext() ) {
                Edge edge = (Edge)eiter.next();
                int erow = edge.getRow();
                assertEquals(nrow, edge.getTargetNode().getRow());
                assertEquals(nrow, graph.getTargetNode(erow));
            }
            eiter = node.outEdges();
            while ( eiter.hasNext() ) {
                Edge edge = (Edge)eiter.next();
                int erow = edge.getRow();
                assertEquals(nrow, edge.getSourceNode().getRow());
                assertEquals(nrow, graph.getSourceNode(erow));
            }
        }
       
        // check all edges, basic data
        Iterator eiter = graph.edges();
        while ( eiter.hasNext() ) {
            Edge edge = (Edge)eiter.next();
            int erow = edge.getRow();
           
            // check data members
            for ( int i=0; i<NEDGECOLS; ++i ) {
                assertEquals(EDGES[i][erow], edge.get(EHEADERS[i]));
                assertEquals(EDGES[i][erow], edges.get(erow, EHEADERS[i]));
            }
           
            // check nodes
            Node s = edge.getSourceNode();
            int srow = s.getRow();
            assertEquals(srow, graph.getSourceNode(erow));
            int sk = nodes.getInt(srow, NHEADERS[0]);
            assertEquals(sk, edges.getInt(erow, EHEADERS[0]));
           
            Node t = edge.getTargetNode();
            int trow = t.getRow();
            assertEquals(trow, graph.getTargetNode(erow));
            int tk = nodes.getInt(trow, NHEADERS[0]);
            assertEquals(tk, edges.getInt(erow, EHEADERS[1]));
           
            assertEquals(srow, edge.getAdjacentNode(t).getRow());
View Full Code Here

TOP

Related Classes of prefuse.data.Node

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.