+ Fixed bindings to DefaultEdgePointer::Visibility property
+ Implemented edge cut logic for EdgePointer placed at edge 'source' to gain better visual quality like its 'target' counterpart
+ Added parameters class RandomLayoutAlgorithmParams for corresponding algorithm. It contains Bounds property which can restrict vertex coordinates to respect provided bounds.
+ Implemented many changed in algorithm base classes, mainly in AlgorithmLayoutBase: made VisitedGraph and VertexPositions props assignable externally
+ Implemented RandomLayoutAlgorithms to derive from LayoutAlgorithmBase class
+ Fixed ZoomControl zoom sometimes not firing from code call after control is loaded [WPF]
+ Fixed VB sample project dependencies and refactored code a bit
+ GraphArea::PreloadVertexes() now accepts graph param as optional
+ Added GraphArea::PreloadGraph() method
+ Added selective vertex and edge support for following algorithms: Circular [ALL]
+ Fixed layout algorithm calculations to always receive actual vertex positions as input parameter
This will fix selective VaE support for default algorithms. [WPF, METRO]
+ Made EdgeControl::LabelVerticalOffset property dependecy [WPF, METRO]
+ Updated default control templstes to include some new properties setup by default [WPF, METRO]
1. EdgePointerImage class with name "PART_EdgePointerImageForSource" - marks edge source pointer (new!)
2. EdgePointerImage class with name "PART_EdgePointerImageForTarget" - marks edge target pointer
Look in GeneralTemplate.xaml of ShowcaseApp.WPF project.
+ Fixed annoying data binding error in ZoomControl slider binding [METRO, WPF]
+ Fixed ZoomControl unresponsivness after startup (prev needed to change zoom/translation first to work fine) [WPF,METRO]
!Breaking changes
+ Renamed and changed to Enum - ZoomControl::UseAbsoluteZoomOnMouseWheel to MouseWheelZoomingMode [METRO, WPF]
+ Added new ShowcaseApp.WPF with mostly the same functionality as before but in a new nutshell and with refactored code. Expect new showcases soon.
+ Added some new exceptions for GraphArea on invalid or insufficient data [WPF,METRO]
+ Addded automatic default params generation for GXLogicCore if default algorithm was changed and default params property is null
+ Fixed async calc not being aborted on invalid data (can cause crash) [WPF,METRO]
+ Implemented VertexControl::ShowLabel property as dependecy for templating purpose [WPF]
+ Fixed vertex label display [WPF]
+ Implemented IOverlapRemovalParameters properties setters to be able to change params easily[ALL]
+ Made EdgeBase::RoutingPoints property virtual in case you want to override it and add custom serialization attributes (as was the issue with YAXLib)[ALL]
!Breaking changes
+ Renamed VertexControl::MathShape property to VertexShape for template bindings to work [WPF, METRO]
+ Removed YAXLib project from solution and its dependencies from GraphX projects except showcase project. This will make GraphX independent from this 3rd party lib. [WPF]
The cost is that there is no built in FileServiceProvider anymore but you can easily create your own using provided interface or use YAXLib example from showcase app.
One less additional dll file :)
+ Added selective vertex and edge support for calculations. Use SkipProcessing property on vertex or edge data object to include/exclude in calculations and visualization.
Works only in WPF version.
+ Changed CopyToBidirectionalGraph() extension method
+ Fixed rectangular selection logic
+ Some code refactoring
+ 2 available positioning modes: by sides or by coordinates
+ Always attached to vertex and moves with it
+ Rotation angle support
+ Same template logic as in EdgeLabelControl
+ Added key modifiers to vertex event args
+ Added new layout type Custom. When set layout algorithm calculation is skipped completely and manually added data is used for OR and ER algorithms (if any).
+ Added (reintroduced) GraphArea::SideExpansionSize property which gets or sets additional space for GraphArea borders. Useful for zoom adjustments when custom text or controls which are not used in size calculations must fit into the zooming.
+ Fixed labels rendering for parallel edges. Now they are displayed separately for each edge.
+ Fixed async calculations being broken due to LogicCore property became dependency
+ Fixed ViewFinder not deriving ZoomControl content background
+ Fixed edge label update on alignment change
+ Fixed self-looped edges handling in GraphArea::GenerateEdgesForVertex() method
+ Fixed bugs with edge routing calculation in some cases
+ Implemented some properties as dependencies
+ Reworked EdgeLabelControl inner logic. Should now be more flexible and performance efficient.
+ Some code refactoring. Minor performance improvements.
+ 2 available positioning modes: by sides or by coordinates
+ Always attached to vertex and moves with it
+ Same template logic as in EdgeLabelControl
+ Added key modifiers to vertex event args
+ Fixed ViewFinder not deriving ZoomControl background
+ Implemented some properties as dependencies
+ Reworked EdgeLabelControl inner logic. Should now be more flexible and performance efficient.