public IExternalOverlapRemoval <TVertex> GenerateOverlapRemovalAlgorithm(Dictionary <TVertex, Rect> rectangles = null)
 {
     if (ExternalOverlapRemovalAlgorithm == null)
     {
         //create default OR
         return(AlgorithmFactory.CreateOverlapRemovalAlgorithm(DefaultOverlapRemovalAlgorithm, null, DefaultOverlapRemovalAlgorithmParams));
     }
     else
     {
         var overlap = ExternalOverlapRemovalAlgorithm;
         overlap.Rectangles = rectangles;
         return(overlap);
     }
 }