
Improves user interaction and rendering speed for diagrams containing tens of thousands of items.
Features
- Spatial index - Set the EnableSpatialIndex property of the Diagram to create an index of item positions for faster hit-testing and viewport clipping queries. This should greatly improve user interaction and rendering speed for diagrams containing tens of thousands, or more, items.
- Note that rendering speed improves only when showing a smaller part of the diagram inside DiagramView's viewport.
- Pattern router - New PatternRouter class, routes links by applying patterns of segment and turn sequences and accepting them when resulting paths do not cross nodes:
- A path is accepted if its final segment ends in a target point and is orthogonal to the respective side of the target node. If there are several possible paths, the router selects the shortest one.
- The MinimumDistance property specifies a minimum allowed distance of link segments from nodes.
- The PreferredDistance property specifies a distance of first or last link bend from the associated node.
- PatternRouter includes several predefined patterns designed to create consistent-looking paths, and allows the creation of custom patterns.
- Custom patterns can be defined as a sequence of RouteStep objects specifying whether the path advances by relative or absolute distance, or changes direction.
- Composite router - The CompositeRouter class lets you chain link routers (objects implementing ILinkRouter interface) so that a link passes through the sequence until it gets routed successfully.
- Diagram's default router is now set to a CompositeRouter instance containing a PatternRouter and GridRouter sequence. This applies several standard pattern paths when possible, and otherwise routes links using the cost minimizing heuristics-based grid router.
- API changes
- Suspend and Resume methods have been removed from ILinkRouter.
(Call Diagram's SuspendLinkRouter and ResumeLinkRouter methods instead.) - Default Diagram.LinkRouter has been changed from QuickRouter to CompositeRouter instance.
- The bool SmartPolylineEnds property of RoutingOptions has been replaced by PolylineRouting enum property, which also provides an option to prevent inclined link segments for LinkShape.Polyline routes.
- CreateGdiPen method of Pen class now requires the target Graphics object as an argument.
- Suspend and Resume methods have been removed from ILinkRouter.