Example #1
0
        double GetIdealDistanceBetweenHookUpAnywherePortAndPort(HookUpAnywhereFromInsidePort hookPort, Port port)
        {
            var poly       = hookPort.LoosePolyline;
            var point      = port.Location;
            var closestPar = poly.ClosestParameter(point);

            return((point - poly[closestPar]).Length);
        }
 static void RouteClusterParentInEdges(List<Edge> inParentEdges, EdgeRoutingSettings edgeRoutingSettings, Cluster cluster,
     double padding) {
     foreach (var e in cluster.InEdges.Where(e => IsDescendant(e.Source, cluster))) {
         double ePadding = Math.Max(padding, 1.5 * ArrowlengthAtTarget(e));
         var hookPort = e.TargetPort as HookUpAnywhereFromInsidePort;
         if (hookPort == null)
             e.TargetPort = hookPort = new HookUpAnywhereFromInsidePort(() => cluster.BoundaryCurve);
         hookPort.HookSize = ePadding;
         e.Curve = StraightLineEdges.CreateLoop(e.Source.BoundingBox, cluster.BoundingBox, ePadding, false);
         Arrowheads.TrimSplineAndCalculateArrowheads(e, e.Curve, false,
             edgeRoutingSettings.KeepOriginalSpline);
         inParentEdges.Add(e);
     }
 }