Class mxMedianHybridCrossingReduction

java.lang.Object
com.mxgraph.layout.hierarchical.stage.mxMedianHybridCrossingReduction
All Implemented Interfaces:
mxHierarchicalLayoutStage

public class mxMedianHybridCrossingReduction extends Object implements mxHierarchicalLayoutStage
Performs a vertex ordering within ranks as described by Gansner et al 1993
  • Field Details

    • layout

      protected mxHierarchicalLayout layout
      Reference to the enclosing layout algorithm
    • maxIterations

      protected int maxIterations
      The maximum number of iterations to perform whilst reducing edge crossings
    • nestedBestRanks

      protected mxGraphAbstractHierarchyCell[][] nestedBestRanks
      Stores each rank as a collection of cells in the best order found for each layer so far
    • currentBestCrossings

      protected int currentBestCrossings
      The total number of crossings found in the best configuration so far
    • iterationsWithoutImprovement

      protected int iterationsWithoutImprovement
    • maxNoImprovementIterations

      protected int maxNoImprovementIterations
  • Constructor Details

    • mxMedianHybridCrossingReduction

      public mxMedianHybridCrossingReduction(mxHierarchicalLayout layout)
      Constructor that has the roots specified
  • Method Details

    • execute

      public void execute(Object parent)
      Performs a vertex ordering within ranks as described by Gansner et al 1993
      Specified by:
      execute in interface mxHierarchicalLayoutStage
    • calculateRankCrossing

      protected int calculateRankCrossing(int i, mxGraphHierarchyModel model)
      Calculates the number of edges crossings between the specified rank and the rank below it
      Parameters:
      i - the topmost rank of the pair ( higher rank value )
      model - the internal hierarchy model of the graph
      Returns:
      the number of edges crossings with the rank beneath