Package com.treemap

Class PivotByAlgorithm

java.lang.Object
com.treemap.AbstractAlgorithm
com.treemap.PivotByAlgorithm
All Implemented Interfaces:
Algorithm

public class PivotByAlgorithm extends AbstractAlgorithm
Implementation of the Pivot By algorithm. It is described described in:

Ben Shneiderman and Martin Wattenberg. Ordered treemap layouts. IEEE Symposium on Information Visualization, 0:73, 2001.

Complexity: O(n^2), where n is the number of nodes in the tree (depends on the pivot in use).

  • Constructor Details

    • PivotByAlgorithm

      public PivotByAlgorithm()
    • PivotByAlgorithm

      public PivotByAlgorithm(PivotByAlgorithm.Type type)
  • Method Details

    • breadthFirstLayout

      public boolean breadthFirstLayout(com.macrofocus.geom.Shape shape, MutableTreeMapNode parent, MutableTreeMapNode[] children, double sumSizes, int horizontalVanishingPoint, int verticalVanishingPoint, TreeMapWorker worker)
      Arrange the items in the given array to fill the given shape. This is called during the first pass, while traversing the tree top down.
      Parameters:
      shape - the current rectangle being divided.
      parent - the parent node.
      children - the items to map.
      sumSizes - the size of the parent.
      worker - the worker thread
      Returns:
      true if the layout has been cancelled, false otherwise
    • isCompatible

      public boolean isCompatible(com.macrofocus.geom.Shape shape)
      Description copied from interface: Algorithm
      Indicates whether the layout algorithm can handle the given geometry of its parent
      Parameters:
      shape - the geometry of its parent
      Returns:
      true if it can lay out the children using the specified geometrical shape
    • toString

      public String toString()
      Overrides:
      toString in class Object