All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.uci.ics.jung.visualization.renderers.EdgeArrowRenderingSupport Maven / Gradle / Ivy

package edu.uci.ics.jung.visualization.renderers;

import edu.uci.ics.jung.visualization.RenderContext;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.Line2D;

public interface EdgeArrowRenderingSupport {

  /**
   * Returns a transform to position the arrowhead on this edge shape at the point where it
   * intersects the passed node shape.
   *
   * @param rc the rendering context used for rendering the arrow
   * @param edgeShape the shape used to draw the edge
   * @param nodeShape the shape used to draw the node
   * @return a transform used for positioning the arrowhead for this node and edge
   */
  AffineTransform getArrowTransform(RenderContext rc, Shape edgeShape, Shape nodeShape);

  /**
   * Returns a transform to position the arrowhead on this edge shape at the point where it
   * intersects the passed node shape.
   *
   * @param rc the rendering context used for rendering the arrow
   * @param edgeShape the shape used to draw the edge
   * @param nodeShape the shape used to draw the node
   * @return a transform used for positioning the arrowhead for this node and edge
   */
  AffineTransform getReverseArrowTransform(
      RenderContext rc, Shape edgeShape, Shape nodeShape);

  /**
   * Returns a transform to position the arrowhead on this edge shape at the point where it
   * intersects the passed node shape.
   *
   * 

The Loop edge is a special case because its starting point is not inside the node. The * passedGo flag handles this case. * * @param rc the rendering context used for rendering the arrow * @param edgeShape the shape used to draw the edge * @param nodeShape the shape used to draw the node * @param passedGo used for rendering loop edges * @return a transform used for positioning the arrowhead for this node and edge */ AffineTransform getReverseArrowTransform( RenderContext rc, Shape edgeShape, Shape nodeShape, boolean passedGo); /** * Returns a transform to position the arrowhead on this edge shape at the point where it * intersects the passed node shape. * * @param rc the rendering context used for rendering the arrow * @param edgeShape the shape used to draw the edge * @param nodeShape the shape used to draw the node * @return a transform used for positioning the arrowhead for this node and edge */ AffineTransform getArrowTransform(RenderContext rc, Line2D edgeShape, Shape nodeShape); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy