Skip to content

GraphX for .NET

Compare
Choose a tag to compare
@panthernet panthernet released this 16 Aug 23:03
· 49 commits to PCL since this release

RELEASE 2.3.5
FEATURES HIGHLIGHT:

  • Added new awesome vertex snapping feature on vertex drag. Many thanks to perturbare for this wonderful contibution! The feature is implemented around DragBehaviour class
    and is represented in several new settings allowing the drag to be perform around some sort of virtual snap grid. Please read the comment for the DragBehaviour class for detailed info.
  • Added new feature & example preview in showcase app: graph data filtering. This feature allows you to filter the graph prior to layout generation or relayout based on the pipeline of
    LogicCore::Filters that are processed sequentially. These filters can modify graph using custom logic. The output graph will be available for interaction along with the copy of the original
    graph. User then may choose if he wish to revert graph to the original state or apply filtering results permanently.
    Please read the details at: http://panthernet.ru/forum/index.php/topic/346-235-graph-data-filtering-features/

DETAILED CHANGELOG:

  • Added Universal Windows Application support and example project
  • Added StateStorage::ImportState() method to allow state import/export logic between several graphs
  • Added GraphArea::IsDisposed property that indicated that GraphArea object has been disposed and shouldn't be used anymore
  • Added GraphArea::CreateNewStateStorage() protected method to be able to implement custom state storage logic for GraphArea
  • Added ParameterizedLayoutAlgorithmBase::EnsureUniqueRandomInitialPositions property that enables unique random positions generation for layout algorithms. False by default, True for LinLog algorithm.
  • Added VertexControl::VCPRoot property whcih represents the VCP root container for easier runtime VCP management. To be able to use it you have to define PART_vcproot template element as Panel descendant.
  • Added new awesome vertex snapping feature on vertex drag (thanks to perturbare)
  • Added GraphArea::EnableVisualsRenewOnFiltering property which is True by default. Specifies if visual graph should be updated up on relayout method call.
  • Added methods LogicCore::PushFilters(), LogicCore::ApplyFilters() and LogicCore::PopFilters along with LogicCore::Filters property which implements graph data filtering feature
  • Added LogicCore::IsFiltered property to identify graph filtering state. If graph is filtered the filter results can be applied or popped back.
  • Added new porperty EdgeControlBase::HideEdgePointerOnVertexOverlap which can hide edge pointer on zero length edge
  • Added new property EdgeControlBase::HideEdgePointerByEdgeLength to be able to hide edge pointers if edge length is less than or equal to the specified value. Off by default (0 value).
  • Fixed LogicCore::GetVertexSizeRectangles() method input params and description
  • Fixed incorrect edge pointer position on zero length edge
  • Fixed Avalon Dock interaction which caused strange exception by skipping ZooomControl viewfinder unnecessary refresh pass in some cases
  • Fixed edge label positioning, now it is more accurate for pathed edges
  • Fixed LinLog negative energy issue (thanks to Katya)
  • Fixed one vertex ISOM algorithm exception (thanks to jorgensigvardsson)
  • Fixed external alg vertex sizes grab logic (thanks to ValentinMarinov)
  • Made StateStorage class extensible by adding virtual modifiers to methods
  • Improved algorithm factory logic to avoid graph type cast exceptions in some class declaration cases
  • Improved calc performance for large graphs that use both OR and ER algorithms
  • Moved code extensions to GraphX.PCL.Common library thus eliminating the need for GraphX.PCL.Logic for *.Controls libraries
  • Removed GraphArea::EnableWinFormsHostingMode property as it is not needed any more. The WF checks has been automated.