# Class IcicleAlgorithm<N,Row,Column,Color,Font>

java.lang.Object
com.treemap.AbstractAlgorithm<N,Row,Column,Color,Font>
com.treemap.IcicleAlgorithm<N,Row,Column,Color,Font>

All Implemented Interfaces:
  `Algorithm<N,Row,Column,Color,Font>`

public class IcicleAlgorithm<N,Row,Column,Color,Font> extends AbstractAlgorithm<N,Row,Column,Color,Font>

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IcicleAlgorithm()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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.
  `boolean`
  `isChildContained()`
  `boolean`
  `isColorParent()`
  `boolean`
  `isCompatible(com.macrofocus.geom.Shape shape)`
  Indicates whether the layout algorithm can handle the given geometry of its parent
  `boolean`
  `isRenderingLeafLabelsSupported()`
  `boolean`
  `isRenderingParentLabelSupported()`
  `boolean`
  `isSpaceFilling()`
  `void`
  `startLayout(com.macrofocus.geom.Rectangle2D bounds, TreeMapModel<N,Row,Column,Color,Font> model, N root, TreeMapWorker worker)`
  Do nothing by default.
  `String`
  `toString()`

  ### Methods inherited from class AbstractAlgorithm

  `depthFirstLayout, finishLayout, getProperties, iterator, sum`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### IcicleAlgorithm

    public IcicleAlgorithm()

- ## Method Details

  - ### startLayout

    public void startLayout(com.macrofocus.geom.Rectangle2D bounds, TreeMapModel<N,Row,Column,Color,Font> model, N root, TreeMapWorker worker)
    Description copied from class: `AbstractAlgorithm`
    Do nothing by default.
    Specified by:
      `startLayout` in interface `Algorithm<N,Row,Column,Color,Font>`
    Overrides:
      `startLayout` in class `AbstractAlgorithm<N,Row,Column,Color,Font>`
    Parameters:
      `bounds` - the bounds of the view
      `model` - the model
      `root` - the root node
      `worker` -

  - ### breadthFirstLayout

    public boolean breadthFirstLayout(com.macrofocus.geom.Shape shape, MutableTreeMapNode parent, MutableTreeMapNode[] children, double sumSizes, int horizontalVanishingPoint, int verticalVanishingPoint, TreeMapWorker worker)
    Description copied from interface: `Algorithm`
    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.
      `horizontalVanishingPoint` -
      `verticalVanishingPoint` -
      `worker` - the worker thread
    Returns:
      true if the layout has been cancelled, false otherwise

  - ### isRenderingParentLabelSupported

    public boolean isRenderingParentLabelSupported()
    Specified by:
      `isRenderingParentLabelSupported` in interface `Algorithm<N,Row,Column,Color,Font>`
    Overrides:
      `isRenderingParentLabelSupported` in class `AbstractAlgorithm<N,Row,Column,Color,Font>`

  - ### isRenderingLeafLabelsSupported

    public boolean isRenderingLeafLabelsSupported()
    Specified by:
      `isRenderingLeafLabelsSupported` in interface `Algorithm<N,Row,Column,Color,Font>`
    Overrides:
      `isRenderingLeafLabelsSupported` in class `AbstractAlgorithm<N,Row,Column,Color,Font>`

  - ### isColorParent

    public boolean isColorParent()
    Specified by:
      `isColorParent` in interface `Algorithm<N,Row,Column,Color,Font>`
    Overrides:
      `isColorParent` in class `AbstractAlgorithm<N,Row,Column,Color,Font>`

  - ### isChildContained

    public boolean isChildContained()
    Specified by:
      `isChildContained` in interface `Algorithm<N,Row,Column,Color,Font>`
    Overrides:
      `isChildContained` in class `AbstractAlgorithm<N,Row,Column,Color,Font>`

  - ### 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

  - ### isSpaceFilling

    public boolean isSpaceFilling()
    Specified by:
      `isSpaceFilling` in interface `Algorithm<N,Row,Column,Color,Font>`
    Overrides:
      `isSpaceFilling` in class `AbstractAlgorithm<N,Row,Column,Color,Font>`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`