public void calcAttraction(EdgeItem e) { NodeItem n1 = e.getSourceItem(); Params n1p = getParams(n1); NodeItem n2 = e.getTargetItem(); Params n2p = getParams(n2); double xDelta = n1p.loc[0] - n2p.loc[0]; double yDelta = n1p.loc[1] - n2p.loc[1]; double deltaLength = Math.max(EPSILON, Math.sqrt(xDelta*xDelta + yDelta*yDelta)); double force = (deltaLength*deltaLength) / forceConstant; if (Double.isNaN(force)) { System.err.println("Mathematical error..."); } double xDisp = (xDelta/deltaLength) * force; double yDisp = (yDelta/deltaLength) * force; n1p.disp[0] -= xDisp; n1p.disp[1] -= yDisp; n2p.disp[0] += xDisp; n2p.disp[1] += yDisp; }
protected float getSpringLength(EdgeItem e) { float defaultLength = getDefaultSpringLength(); String dist = e.getString("distance"); if (dist.equals("")) { return defaultLength; }else{ return Float.parseFloat(dist) * (defaultLength * 25.f); //285.7f; } }
/** * Set the highlighted state of the neighbors of a node. * @param n the node under consideration * @param state the highlighting state to apply to neighbors */ protected void setNeighborHighlight(NodeItem n, boolean state) { Iterator iter = n.edges(); while ( iter.hasNext() ) { EdgeItem eItem = (EdgeItem)iter.next(); NodeItem nItem = eItem.getAdjacentItem(n); if (eItem.isVisible() || highlightWithInvisibleEdge) { eItem.setHighlighted(state); nItem.setHighlighted(state); } } if ( activity != null ) n.getVisualization().run(activity); }
VisualItem item1 = edge.getSourceItem(); VisualItem item2 = edge.getTargetItem(); if ( e.isDirected() && m_edgeArrow != Constants.EDGE_ARROW_NONE ) { VisualItem dest = forward ? e.getTargetItem() : e.getSourceItem(); int i = GraphicsLib.intersectLineRectangle(start, end, dest.getBounds(), m_isctPoints);
while(outEdges.hasNext()){ EdgeItem edge = EdgeItem.class.cast(outEdges.next()); if (edge.getString(AnalysisConstants.EDGE_TYPE).equals( AnalysisConstants.FILE_EDGE_TYPE)){ edge.setVisible(isExpanded);
private void unselectEdge() { if (selectedEdge != null) { selectedEdge.setHighlighted(false); selectedEdge = null; } }
/** * Visit a specific node and update its degree-of-interest. */ private void visit(NodeItem n, NodeItem c, int doi, int lDist) { PrefuseLib.updateVisible(n, true); double localDOI = -lDist / Math.min(1000.0, m_divisor); n.setDOI(doi+localDOI); if ( c != null ) { EdgeItem e = (EdgeItem)c.getParentEdge(); e.setDOI(c.getDOI()); PrefuseLib.updateVisible(e, true); } }
VisualItem item1 = edge.getSourceItem(); VisualItem item2 = edge.getTargetItem(); if ( e.isDirected() && m_edgeArrow != Constants.EDGE_ARROW_NONE ) { VisualItem dest = forward ? e.getTargetItem() : e.getSourceItem(); int i = GraphicsLib.intersectLineRectangle(start, end, dest.getBounds(), m_isctPoints);
private void selectEdge(EdgeItem edge) { if (edge != null) { edge.setHighlighted(true); selectedEdge = edge; } unselectNode(); }
@Override protected Shape getRawShape(VisualItem item) { EdgeItem edge = (EdgeItem) item; VisualItem item1 = edge.getSourceItem(); VisualItem item2 = edge.getTargetItem(); if (!isLoopNode && edge.isDirected() && m_edgeArrow != Constants.EDGE_ARROW_NONE) { boolean forward = (m_edgeArrow == Constants.EDGE_ARROW_FORWARD); Point2D start = m_tmpPoints[forward ? 0 : 1]; Point2D end = m_tmpPoints[forward ? 1 : 0]; VisualItem dest = forward ? edge.getTargetItem() : edge.getSourceItem(); Point2D center = new Point2D.Double(dest.getBounds().getCenterX(), dest.getBounds().getCenterY()); List<Point2D> intersections = IntersectionUtil.getCircleLineIntersectionPoint(start, end, center, dest.getBounds().getWidth() / 2); lineEnd.setLocation(0, -m_arrowHeight); at.transform(lineEnd, lineEnd); } else if (isLoopNode && edge.isDirected() && m_edgeArrow != Constants.EDGE_ARROW_NONE) { double x = m_tmpPoints[0].getX(); double y = m_tmpPoints[0].getY();
public void calcAttraction(EdgeItem e) { NodeItem n1 = e.getSourceItem(); Params n1p = getParams(n1); NodeItem n2 = e.getTargetItem(); Params n2p = getParams(n2); double xDelta = n1p.loc[0] - n2p.loc[0]; double yDelta = n1p.loc[1] - n2p.loc[1]; double deltaLength = Math.max(EPSILON, Math.sqrt(xDelta*xDelta + yDelta*yDelta)); double force = (deltaLength*deltaLength) / forceConstant; if (Double.isNaN(force)) { System.err.println("Mathematical error..."); } double xDisp = (xDelta/deltaLength) * force; double yDisp = (yDelta/deltaLength) * force; n1p.disp[0] -= xDisp; n1p.disp[1] -= yDisp; n2p.disp[0] += xDisp; n2p.disp[1] += yDisp; }
while ( iter.hasNext() ) { EdgeItem e = (EdgeItem)iter.next(); NodeItem n1 = e.getSourceItem(); ForceItem f1 = (ForceItem)n1.get(FORCEITEM); NodeItem n2 = e.getTargetItem(); ForceItem f2 = (ForceItem)n2.get(FORCEITEM); float coeff = getSpringCoefficient(e);