Преглед изворни кода

temporary ugly spacing culation

Kolja Strohm пре 6 година
родитељ
комит
06b3606a60
1 измењених фајлова са 9 додато и 2 уклоњено
  1. 9 2
      src/Algorithms/Animated/BK/Compaction.java

+ 9 - 2
src/Algorithms/Animated/BK/Compaction.java

@@ -37,6 +37,13 @@ public class Compaction implements AlgorithmStep{
 		actions = new ArrayList<>();
 	}
 	
+	public double calcSpacing()
+	{
+		double max = 0;
+		for( LayeredGraphNode n : graph.getContainedNodes() )
+			max = Math.max( max, n.getWidth() );
+		return max + 50;
+	}
 	
 	@Override
 	public StepStatus forwardStep() {
@@ -149,9 +156,9 @@ public class Compaction implements AlgorithmStep{
 					boolean oldDef = !sf.v.isXUndefined();
 					sf.v.setSelected();
 					if( sf.v.getSink() != sf.u.getSink() )
-						sf.u.getSink().setShift( Math.min( sf.u.getSink().getShift(), sf.v.getX() - sf.u.getX() - 50 ) );
+						sf.u.getSink().setShift( Math.min( sf.u.getSink().getShift(), sf.v.getX() - sf.u.getX() - calcSpacing() ) );
 					else
-						sf.v.setX( Math.max( sf.v.getX(), sf.u.getX() + 50 ), true );
+						sf.v.setX( Math.max( sf.v.getX(), sf.u.getX() + calcSpacing() ), true );
 					LayeredGraphNode oldW = sf.w;
 					sf.w = sf.w.getAlignedTo();
 					if( sf.w == sf.v )