SliceAndDiceAlgorithm

class SliceAndDiceAlgorithm(orientationStrategy: SliceAndDiceAlgorithm.OrientationStragegy = AlternateOrientationStrategy()) : AbstractAlgorithm

Implementation of the Slice-and-dice algorithm described in the original treemap paper. It is described in:

Ben Shneiderman. Tree Visualization with Tree-Maps: 2-d Space-filling Approach. ACM Transactions on Graphics, 11(1), pp. 92-99, 1992.

It uses parallel lines to divide a rectangle representing an item into smaller rectangles representing its children. At each level of hierarchy the orientation of the lines - vertical or horizontal - is switched (Alternate), computed according to the aspect ratio (Best), or fixed (Vertical, Horizontal).

Complexity: O(n), where n is the number of nodes in the tree.

Constructors

Link copied to clipboard
constructor(orientationStrategy: SliceAndDiceAlgorithm.OrientationStragegy = AlternateOrientationStrategy())

Types

Link copied to clipboard

Switched between vertical and horizontal at each hierarchy level

Link copied to clipboard

Computed according to the aspect ratio

Link copied to clipboard

Types of orientation of the rectangle divisions

Properties

Link copied to clipboard
open override val isChildContained: Boolean
Link copied to clipboard
open override val isColorParent: Boolean
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val isSpaceFilling: Boolean
Link copied to clipboard
open override val properties: MutableProperties<String?>?

Properties for storing layout algorithm specific options.

Functions

Link copied to clipboard
open override fun <N, Row, Column> breadthFirstLayout(shape: Shape, parent: N, children: Array<N>, sumSizes: Double, horizontalVanishingPoint: Int, verticalVanishingPoint: Int, accessor: TreeMapAccessor<N>, worker: TreeMapWorker?): Boolean

{@inheritDoc}

Link copied to clipboard
open override fun <N, Row, Column> depthFirstLayout(shape: Shape?, parent: N, children: Array<N>, sumSizes: Double, horizontalVanishingPoint: Int, verticalVanishingPoint: Int, accessor: TreeMapAccessor<N>, worker: TreeMapWorker?): Boolean

Arrange the items in the given array to fill the given shape. This is called during the first pass, while traversing the tree from the bottom up.

Link copied to clipboard
open override fun <N, Row, Column> finishLayout(bounds: Rectangle2D?, model: TreeMapModel<N, Row, Column>?, root: N)

Do nothing by default.

Link copied to clipboard
Link copied to clipboard
open override fun isCompatible(shape: Shape?): Boolean

Indicates whether the layout algorithm can handle the given geometry of its parent

Link copied to clipboard
open override fun <N, Row, Column> iterator(model: TreeMapModel<N, Row, Column>, root: N): Iterable<N>

Breadth first traversal by default.

Link copied to clipboard
open override fun <N, Row, Column> startLayout(bounds: Rectangle2D?, model: TreeMapModel<N, Row, Column>, root: N, worker: TreeMapWorker?)

Do nothing by default.

Link copied to clipboard
open override fun toString(): String