Class IndexedFRLayoutAlgorithm2D<V,​E>

  • Type Parameters:
    V - the graph vertex type
    E - the graph edge type
    All Implemented Interfaces:
    LayoutAlgorithm2D<V,​E>

    public class IndexedFRLayoutAlgorithm2D<V,​E>
    extends FRLayoutAlgorithm2D<V,​E>
    Fruchterman and Reingold Force-Directed Placement Algorithm using the Barnes-Hut indexing technique with a QuadTree. The Barnes-Hut indexing technique is described in the following paper:
    • J. Barnes and P. Hut. A hierarchical O(N log N) force-calculation algorithm. Nature. 324(4):446--449, 1986.
    Author:
    Dimitrios Michail
    • Field Detail

      • DEFAULT_THETA_FACTOR

        public static final double DEFAULT_THETA_FACTOR
        Default $\theta$ value for approximation using the Barnes-Hut technique
        See Also:
        Constant Field Values
      • theta

        protected double theta
      • savedComparisons

        protected long savedComparisons
      • initializer

        protected Function<V,​Point2D> initializer
        A model initializer
    • Constructor Detail

      • IndexedFRLayoutAlgorithm2D

        public IndexedFRLayoutAlgorithm2D()
        Create a new layout algorithm
      • IndexedFRLayoutAlgorithm2D

        public IndexedFRLayoutAlgorithm2D​(int iterations,
                                          double theta)
        Create a new layout algorithm
        Parameters:
        iterations - number of iterations
        theta - parameter for approximation using the Barnes-Hut technique
      • IndexedFRLayoutAlgorithm2D

        public IndexedFRLayoutAlgorithm2D​(int iterations,
                                          double theta,
                                          double normalizationFactor)
        Create a new layout algorithm
        Parameters:
        iterations - number of iterations
        theta - parameter for approximation using the Barnes-Hut technique
        normalizationFactor - normalization factor for the optimal distance
      • IndexedFRLayoutAlgorithm2D

        public IndexedFRLayoutAlgorithm2D​(int iterations,
                                          double theta,
                                          double normalizationFactor,
                                          Random rng)
        Create a new layout algorithm
        Parameters:
        iterations - number of iterations
        theta - theta parameter for the Barnes-Hut approximation
        normalizationFactor - normalization factor for the optimal distance
        rng - the random number generator
      • IndexedFRLayoutAlgorithm2D

        public IndexedFRLayoutAlgorithm2D​(int iterations,
                                          double theta,
                                          double normalizationFactor,
                                          Random rng,
                                          double tolerance)
        Create a new layout algorithm
        Parameters:
        iterations - number of iterations
        theta - theta parameter for the Barnes-Hut approximation
        normalizationFactor - normalization factor for the optimal distance
        rng - the random number generator
        tolerance - tolerance used when comparing floating point values
    • Method Detail

      • getSavedComparisons

        public long getSavedComparisons()
        Get the total number of saved comparisons due to the Barnes-Hut technique.
        Returns:
        the total number of saved comparisons
      • getInitializer

        public Function<V,​Point2D> getInitializer()
        Get the initializer
        Returns:
        the initializer
      • setInitializer

        public void setInitializer​(Function<V,​Point2D> initializer)
        Set the initializer
        Parameters:
        initializer - the initializer
      • init

        protected void init​(Graph<V,​E> graph,
                            LayoutModel2D<V> model)
        Initialize a model using the initializer.
        Parameters:
        graph - the graph
        model - the model