├── .gitattributes
├── .gitignore
├── .nuget
└── NuGet.Config
├── .settings
└── launch.json
├── .vs
└── config
│ └── applicationhost.config
├── Documents
├── AIV.cs
├── CHANGELOG.txt
├── Licenses
│ ├── License.Extended WPF Toolkit.txt
│ ├── License.Graph# - GraphX.txt
│ ├── License.MediaFIles.txt
│ ├── License.ModernUI.txt
│ ├── License.NodeXL.txt
│ ├── License.Quikgraph.txt
│ ├── License.RelativeAnimatingContentControl.txt
│ ├── License.WPFExtensions.txt
│ ├── License.YAXLib.txt
│ └── License.icons.txt
└── TODO.txt
├── Examples
├── ShowcaseApp.WPF
│ ├── App.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── ModernUI.Snowflakes.xaml
│ │ ├── SplashScreen.png
│ │ ├── background.snowflakes.jpg
│ │ ├── blackCircle.png
│ │ ├── blackCircleFilled.png
│ │ ├── board_hd.png
│ │ ├── brick_16.png
│ │ ├── carpet.png
│ │ ├── circle_blue.png
│ │ ├── circle_green.png
│ │ ├── circle_red.png
│ │ ├── dice.png
│ │ ├── female.png
│ │ ├── grid_paper.png
│ │ ├── hand_comp.png
│ │ ├── hand_comp2.png
│ │ ├── hand_comp3.png
│ │ ├── male.png
│ │ ├── tr_grren.png
│ │ └── tr_red.png
│ ├── Content
│ │ ├── SettingsAppearance.xaml
│ │ ├── SettingsAppearance.xaml.cs
│ │ └── SettingsAppearanceViewModel.cs
│ ├── Controls
│ │ ├── MiniContentPage.xaml
│ │ ├── MiniContentPage.xaml.cs
│ │ ├── MiniXamlPage.xaml
│ │ ├── MiniXamlPage.xaml.cs
│ │ ├── MiniXamlTemplatePage.xaml
│ │ ├── MiniXamlTemplatePage.xaml.cs
│ │ ├── SpecialWindowControl.xaml
│ │ └── SpecialWindowControl.xaml.cs
│ ├── ExampleModels
│ │ ├── DataEdge.cs
│ │ ├── DataVertex.cs
│ │ ├── ExampleExternalEdgeRoutingAlgorithm.cs
│ │ ├── ExampleExternalLayoutAlgorithm.cs
│ │ ├── ExampleExternalOverlapRemovalAlgorithm.cs
│ │ ├── ExampleMoveAnimation.cs
│ │ ├── Filters
│ │ │ └── BlueVertexFilter.cs
│ │ ├── GraphAreaExample.cs
│ │ ├── GraphExample.cs
│ │ ├── LogicCoreExample.cs
│ │ └── OrthEr.cs
│ ├── External
│ │ └── WindowGlow
│ │ │ ├── GlowManager.cs
│ │ │ ├── GlowWindow.cs
│ │ │ └── Win32.cs
│ ├── FileSerialization
│ │ ├── FileServiceProviderWPF.cs
│ │ ├── YAXPointArraySerializer.cs
│ │ └── YAXPointSerializer.cs
│ ├── Layouts
│ │ ├── FR_layout.xml
│ │ └── KK_Layout.xml
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Models
│ │ ├── ColorModel.cs
│ │ ├── DataItem.cs
│ │ ├── EditorObjectManager.cs
│ │ ├── EditorOperationMode.cs
│ │ ├── ImageLoader.cs
│ │ ├── LinkCommands.cs
│ │ ├── MiniSpecialType.cs
│ │ ├── ShadowChrome.cs
│ │ ├── ShowcaseHelper.cs
│ │ ├── SimpleCommand.cs
│ │ ├── ThemedDataStorage.cs
│ │ ├── VCTemplateBehaviour.cs
│ │ └── ValueToImageConverter.cs
│ ├── Pages
│ │ ├── Debug
│ │ │ ├── DebugGraph.xaml
│ │ │ └── DebugGraph.xaml.cs
│ │ ├── DynamicGraph.xaml
│ │ ├── DynamicGraph.xaml.cs
│ │ ├── EdgeRoutingGraph.xaml
│ │ ├── EdgeRoutingGraph.xaml.cs
│ │ ├── EditorGraph.xaml
│ │ ├── EditorGraph.xaml.cs
│ │ ├── FeatureLists
│ │ │ ├── FeaturesPageData.xaml
│ │ │ ├── FeaturesPageData.xaml.cs
│ │ │ ├── FeaturesPageEdges.xaml
│ │ │ ├── FeaturesPageEdges.xaml.cs
│ │ │ ├── FeaturesPageLayouts.xaml
│ │ │ ├── FeaturesPageLayouts.xaml.cs
│ │ │ ├── FeaturesPageTemplates.xaml
│ │ │ └── FeaturesPageTemplates.xaml.cs
│ │ ├── GeneralGraph.xaml
│ │ ├── GeneralGraph.xaml.cs
│ │ ├── Introduction.xaml
│ │ ├── Introduction.xaml.cs
│ │ ├── Mini
│ │ │ ├── DataFiltering.xaml
│ │ │ ├── DataFiltering.xaml.cs
│ │ │ ├── EdgesParallel.xaml
│ │ │ ├── EdgesParallel.xaml.cs
│ │ │ ├── LayoutGrouped.xaml
│ │ │ ├── LayoutGrouped.xaml.cs
│ │ │ ├── LayoutVCP.xaml
│ │ │ └── LayoutVCP.xaml.cs
│ │ ├── NNGraph.xaml
│ │ ├── NNGraph.xaml.cs
│ │ ├── Settings.xaml
│ │ ├── Settings.xaml.cs
│ │ ├── ThemedGraph.xaml
│ │ └── ThemedGraph.xaml.cs
│ ├── Properties
│ │ ├── Annotations.cs
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── ShowcaseApp.WPF.csproj
│ ├── ShowcaseApp.WPF.csproj.DotSettings
│ ├── Templates
│ │ ├── Accordion.xaml
│ │ ├── Debug
│ │ │ └── TestTemplates.xaml
│ │ ├── DynamicGraphXTemplates.xaml
│ │ ├── ERGraphXTemplates.xaml
│ │ ├── EditorGraphXTemplates.xaml
│ │ ├── ExpanderTemplates.xaml
│ │ ├── GeneralTemplate.xaml
│ │ ├── Mini
│ │ │ ├── CommonMiniTemplate.xaml
│ │ │ ├── LayoutDataFiltering.xaml
│ │ │ ├── LayoutGroupedTemplate.xaml
│ │ │ └── LayoutVCPTemplate.xaml
│ │ ├── MiniFeatures.xaml
│ │ ├── ThemedGraphXTemplates.xaml
│ │ └── TransparentTooltips.xaml
│ ├── Themes
│ │ └── Generic.xaml
│ ├── app.ico
│ ├── packages.config
│ └── readme.txt
├── SimpleGraph.DotNetCore
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── AssemblyInfo.cs
│ └── SimpleGraph.DotNetCore.csproj
├── SimpleGraph
│ ├── .gitignore
│ ├── App.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Images
│ │ ├── dice.png
│ │ └── update.png
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Models
│ │ ├── DataEdge.cs
│ │ ├── DataVertex.cs
│ │ ├── GXLogicCoreExample.cs
│ │ ├── GraphAreaExample.cs
│ │ └── GraphExample.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── SimpleGraph.csproj
│ ├── packages.config
│ └── readme.txt
├── UAP.SimpleGraph
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── 100.png
│ │ ├── 150.png
│ │ ├── 300.png
│ │ ├── 44.png
│ │ ├── 50.png
│ │ ├── 88.png
│ │ ├── Logo.png
│ │ ├── Logo.scale-100.png
│ │ ├── Logo.scale-200.png
│ │ ├── MidLogo.png
│ │ ├── SmallLogo.png
│ │ ├── SplashScreen.png
│ │ ├── SplashScreen.scale-100.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── StoreLogo.png
│ │ ├── newlogo_big.png
│ │ ├── play.png
│ │ ├── refresh.png
│ │ ├── tr_grren.png
│ │ └── tr_red.png
│ ├── Common
│ │ ├── StandardStyles.xaml
│ │ ├── templates.xaml
│ │ └── templates2.xaml
│ ├── MainPage.xaml
│ ├── MainPage.xaml.cs
│ ├── MainPageDebug.xaml
│ ├── MainPageDebug.xaml.cs
│ ├── Models
│ │ ├── CurvedEr.cs
│ │ ├── CurvedErParameters.cs
│ │ ├── DataEdge.cs
│ │ ├── DataVertex.cs
│ │ ├── DebugItems.cs
│ │ ├── GXLogicCoreExample.cs
│ │ ├── GraphAreaExample.cs
│ │ ├── GraphExample.cs
│ │ └── MouseOverScaleAnimation.cs
│ ├── Package.appxmanifest
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Default.rd.xml
│ ├── UAP.SimpleGraph.csproj
│ ├── UAP.SimpleGraph.nuget.props
│ ├── UAP.SimpleGraph.nuget.targets
│ └── project.lock.json
├── WindowsDesktop_VB.NET_WinForms_Example
│ ├── App.config
│ ├── Form1.Designer.vb
│ ├── Form1.resx
│ ├── Form1.vb
│ ├── Models
│ │ ├── DataEdge.vb
│ │ ├── DataVertex.vb
│ │ ├── GraphAreaExample.vb
│ │ └── GraphExample.vb
│ ├── My Project
│ │ ├── Application.Designer.vb
│ │ ├── Application.myapp
│ │ ├── AssemblyInfo.vb
│ │ ├── Resources.Designer.vb
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.vb
│ │ └── Settings.settings
│ ├── Templates
│ │ └── template.xaml
│ ├── WindowsDesktop_VB.NET_WinForms_Example.vbproj
│ └── packages.config
└── WindowsFormsProject
│ ├── .gitignore
│ ├── Form1.Designer.cs
│ ├── Form1.cs
│ ├── Form1.resx
│ ├── Images
│ ├── dice.png
│ └── update.png
│ ├── Models
│ ├── DataEdge.cs
│ ├── DataVertex.cs
│ ├── GraphAreaExample.cs
│ └── GraphExample.cs
│ ├── Program.cs
│ ├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
│ ├── Templates
│ └── template.xaml
│ ├── WindowsFormsProject.csproj
│ ├── app.config
│ └── packages.config
├── ExternalDlls
├── FirstFloor.ModernUI.dll
└── Microsoft.Windows.Shell.dll
├── GraphX for .NET.sln
├── GraphX.Controls
├── .gitignore
├── Animations
│ ├── DeleteFadeAnimation.cs
│ ├── DeleteShrinkAnimation.cs
│ ├── Enums
│ │ ├── DeleteAnimation.cs
│ │ ├── MouseOverAnimation.cs
│ │ └── MoveAnimation.cs
│ ├── Interfaces
│ │ ├── IBidirectionalControlAnimation.cs
│ │ └── IOneWayControlAnimation.cs
│ ├── MouseOverScaleAnimation.cs
│ ├── MoveAnimationBase.cs
│ ├── MoveFadeAnimation.cs
│ └── MoveSimpleAnimation.cs
├── Behaviours
│ ├── DragBehaviour.cs
│ └── HighlightBehaviour.cs
├── Controls
│ ├── EdgeControl.cs
│ ├── EdgeControlBase.cs
│ ├── EdgeLabels
│ │ ├── AttachableEdgeLabelControl.cs
│ │ └── EdgeLabelControl.cs
│ ├── EdgePointers
│ │ └── DefaultEdgePointer.cs
│ ├── GraphArea.cs
│ ├── GraphAreaBase.cs
│ ├── Misc
│ │ ├── ControlDrawOrder.cs
│ │ ├── EdgeDashStyle.cs
│ │ ├── IEdgeLabelControl.cs
│ │ ├── IEdgePointer.cs
│ │ ├── IGraphArea.cs
│ │ ├── IGraphAreaBase.cs
│ │ ├── IGraphControl.cs
│ │ ├── IPositionChangeNotify.cs
│ │ ├── ITrackableContent.cs
│ │ ├── IVertexConnectionPoint.cs
│ │ ├── IVertexLabelControl.cs
│ │ ├── IZoomControl.cs
│ │ └── LogicCoreChangedAction.cs
│ ├── VertexConnectionPoints
│ │ └── StaticVertexConnectionPoint.cs
│ ├── VertexControl.cs
│ ├── VertexControlBase.cs
│ ├── VertexLabels
│ │ ├── AttachableVertexLabelControl.cs
│ │ └── VertexLabelControl.cs
│ └── ZoomControl
│ │ ├── Converters
│ │ ├── DoubleToLog10Converter.cs
│ │ ├── EqualityToBooleanConverter.cs
│ │ ├── GeometryToPathGeometryConverter.cs
│ │ ├── RoundedValueConverter.cs
│ │ └── VisibilityToBoolConverter.cs
│ │ ├── Helpers
│ │ ├── DoubleHelper.cs
│ │ ├── PointHelper.cs
│ │ └── VisualTreeHelperEx.cs
│ │ ├── SupportClasses
│ │ ├── AreaSelectedEventArgs.cs
│ │ ├── AreaSelectedEventHandler.cs
│ │ ├── ContentSizeChangedHandler.cs
│ │ ├── MouseWheelZoomingMode.cs
│ │ ├── ZoomControlModes.cs
│ │ └── ZoomViewModifierMode.cs
│ │ ├── ViewFinderDisplay.cs
│ │ ├── ZoomContentPresenter.cs
│ │ └── ZoomControl.cs
├── CustomHelper.cs
├── DesignerExampleData
│ ├── EdgeDataExample.cs
│ └── VertexDataExample.cs
├── ExceptionExtensions.cs
├── GeometryHelper.cs
├── GraphX.WPF.Controls.csproj
├── GraphX.WPF.Controls.csproj.DotSettings
├── GraphX.WPF.Controls.nuspec
├── Images
│ └── help_black.png
├── MathHelper.cs
├── Models
│ ├── AnimationFactory.cs
│ ├── ContentSizeChangedEventHandler.cs
│ ├── ControlClickedEventArgs.cs
│ ├── ControlEventArgs.cs
│ ├── DefaultLabelFactory.cs
│ ├── EdgeEventOptions.cs
│ ├── EdgeSelectedEventArgs.cs
│ ├── EdgeSelectedEventHandler.cs
│ ├── GraphControlFactory.cs
│ ├── Interfaces
│ │ ├── IAttachableControl.cs
│ │ ├── IGraphControlFactory.cs
│ │ └── ILabelFactory.cs
│ ├── PropertyChangeNotifier.cs
│ ├── RemoveControlEventHandler.cs
│ ├── StateStorage.cs
│ ├── VertexEventOptions.cs
│ ├── VertexMovedEventArgs.cs
│ ├── VertexPositionChangedEH.cs
│ ├── VertexPositionEventArgs.cs
│ ├── VertexSelectedEventArgs.cs
│ └── VertexSelectedEventHandler.cs
├── PrintHelper.cs
├── Properties
│ └── AssemblyInfo.cs
├── Themes
│ └── Generic.xaml
├── TypeExtensions.cs
└── packages.config
├── GraphX.Core.Controls
├── AssemblyInfo.cs
└── GraphX.Core.Controls.csproj
├── GraphX.METRO.Controls
├── Controls
│ └── ZoomControl
│ │ ├── Converters
│ │ ├── DoubleToLog10Converter.cs
│ │ ├── EqualityToBooleanConverter.cs
│ │ ├── RoundedValueConverter.cs
│ │ └── VisibilityToBoolConverter.cs
│ │ ├── Helpers
│ │ ├── DoubleHelper.cs
│ │ ├── PointHelper.cs
│ │ └── VisualTreeHelperEx.cs
│ │ ├── SupportClasses
│ │ ├── AreaSelectedEventArgs.cs
│ │ ├── AreaSelectedEventHandler.cs
│ │ ├── ContentSizeChangedHandler.cs
│ │ ├── MouseWheelZoomingMode.cs
│ │ ├── ZoomControlModes.cs
│ │ └── ZoomViewModifierMode.cs
│ │ ├── ZoomContentPresenter.cs
│ │ └── ZoomControl.cs
├── DesignerExampleData
│ ├── EdgeDataExample.cs
│ └── VertexDataExample.cs
├── DpExtensions.cs
├── GraphX.METRO.Controls.csproj
├── GraphX.METRO.Controls.csproj.DotSettings
├── Images
│ ├── cross-icon.png
│ ├── help_black.png
│ ├── round1.png
│ └── round2.png
├── METRO.SimpleGraph_TemporaryKey.pfx
├── MathHelper.cs.bak
├── Models
│ ├── AnimationHelper.cs
│ ├── DelegateCommand.cs
│ ├── DispatcherHelper.cs
│ ├── EdgeSelectedEventArgs.cs
│ ├── FileServiceProviderMETRO.cs
│ ├── ModifierKeys.cs
│ ├── MouseButtonEventArgs.cs
│ ├── VertexMovedEventArgs.cs
│ ├── VertexSelectedEventArgs.cs
│ └── XamlTypes
│ │ ├── ViewModelBase.cs
│ │ ├── ViewModelXamlMember.cs
│ │ ├── ViewModelXamlMetadataProvider.cs
│ │ ├── ViewModelXamlType.cs
│ │ ├── XamlSystemType.cs
│ │ └── XamlTypeProvider.cs
├── PrintHelper.cs
├── Properties
│ └── AssemblyInfo.cs
├── Themes
│ └── Generic.xaml
├── packages.config
└── port.txt
├── GraphX.Standard.Common
├── Enums
│ ├── EdgeRoutingAlgorithmTypeEnum.cs
│ ├── EdgesType.cs
│ ├── EventType.cs
│ ├── GraphControlType.cs
│ ├── HighlightStrategy.cs
│ ├── ImageType.cs
│ ├── LayoutAlgorithmTypeEnum.cs
│ ├── OverlapRemovalAlgorithmTypeEnum.cs
│ ├── ProcessingOptionEnum.cs
│ └── VertexShape.cs
├── Exceptions
│ ├── GX_GeneralException.cs
│ ├── GX_InvalidDataException.cs
│ ├── GX_ObjectNotFoundException.cs
│ ├── GX_ObsoleteException.cs
│ └── GX_SerializationException.cs
├── GraphX.Standard.Common.csproj
├── Helpers
│ ├── CommonExtensions.cs
│ └── GraphSharpExtensions.cs
├── Interfaces
│ ├── IAlgorithmFactory.cs
│ ├── IAlgorithmParameters.cs
│ ├── IAlgorithmStorage.cs
│ ├── ICloneable.cs
│ ├── IEdgeRoutingParameters.cs
│ ├── IExternalEdgeRouting.cs
│ ├── IExternalLayout.cs
│ ├── IExternalOverlapRemoval.cs
│ ├── IGXLogicCore.cs
│ ├── IGraphFIlter.cs
│ ├── IGraphXEdge.cs
│ ├── IGraphXVertex.cs
│ ├── IIdentifiableGraphDataObject.cs
│ ├── ILayoutAlgorithm.cs
│ ├── ILayoutEdgeRouting.cs
│ ├── ILayoutParameters.cs
│ ├── IOverlapRemovalAlgorithm.cs
│ ├── IOverlapRemovalParameters.cs
│ ├── IRoutingInfo.cs
│ └── IWeightedEdge.cs
├── Measure
│ ├── Point.cs
│ ├── Rect.cs
│ ├── Size.cs
│ ├── Thickness.cs
│ └── Vector.cs
├── Models
│ ├── EdgeBase.cs
│ ├── EdgeRoutingVisualData.cs
│ ├── GraphSerializationData.cs
│ ├── GraphState.cs
│ ├── Semaphore
│ │ ├── BAutoResetEvent.cs
│ │ ├── BManualResetEvent.cs
│ │ ├── BWaitHandle.cs
│ │ └── Semaphore.cs
│ ├── VertexBase.cs
│ └── WeightedEdge.cs
└── signature.snk
├── GraphX.Standard.Logic
├── Algorithms
│ ├── AlgorithmBase.cs
│ ├── EdgeRouting
│ │ ├── EdgeBundling
│ │ │ ├── BundleEdgeRouting.cs
│ │ │ ├── BundleEdgeRoutingParameters.cs
│ │ │ └── VectorTools.cs
│ │ ├── EdgeRoutingAlgorithmBase.cs
│ │ ├── EdgeRoutingParameters.cs
│ │ ├── PathFinderER
│ │ │ ├── IPathFinder.cs
│ │ │ ├── MatrixItem.cs
│ │ │ ├── PathFinder.cs
│ │ │ ├── PathFinderEdgeRouting.cs
│ │ │ ├── PathFinderEdgeRoutingParameters.cs
│ │ │ └── PriorityQueueB.cs
│ │ └── SimpleER
│ │ │ ├── SimpleERParameters.cs
│ │ │ └── SimpleEdgeRouting.cs
│ ├── GraphHideHelper.cs
│ ├── HierarchicalGraph.cs
│ ├── IAlgorithm.cs
│ ├── IHierarchicalBidirectionalGraph.cs
│ ├── ISoftMutableGraph.cs
│ ├── LayeredTopologicalSortAlgorithm.cs
│ ├── LayoutAlgorithms
│ │ ├── Circular
│ │ │ ├── CircularLayoutAlgorithm.cs
│ │ │ └── CircularLayoutParameters.cs
│ │ ├── FDP
│ │ │ ├── BoundedFRLayoutParameters.cs
│ │ │ ├── Compound
│ │ │ │ ├── CompoundFDPLayoutAlgorithm.Data.cs
│ │ │ │ ├── CompoundFDPLayoutAlgorithm.Init.cs
│ │ │ │ ├── CompoundFDPLayoutAlgorithm.cs
│ │ │ │ ├── CompoundFDPLayoutParameters.cs
│ │ │ │ ├── CompoundGraph.cs
│ │ │ │ ├── CompoundLayoutContext.cs
│ │ │ │ ├── CompoundLayoutIterationEventArgs.cs
│ │ │ │ ├── CompoundVertexInnerLayoutType.cs
│ │ │ │ ├── ICompoundGraph.cs
│ │ │ │ ├── ICompoundLayoutAlgorithm.cs
│ │ │ │ ├── ICompoundLayoutContext.cs
│ │ │ │ ├── ICompoundLayoutIterationEventArgs.cs
│ │ │ │ ├── ILayoutContext.cs
│ │ │ │ ├── IMutableCompoundGraph.cs
│ │ │ │ ├── LayoutContext.cs
│ │ │ │ ├── LayoutMode.cs
│ │ │ │ ├── TestingCompoundLayoutIterationEventArgs.cs
│ │ │ │ └── TestingCompoundVertexInfo.cs
│ │ │ ├── FRCoolingFunction.cs
│ │ │ ├── FRLayoutAlgorithm.cs
│ │ │ ├── FRLayoutParametersBase.cs
│ │ │ ├── FreeFRLayoutParameters.cs
│ │ │ ├── ISOMLayoutAlgorithm.cs
│ │ │ ├── ISOMLayoutParameters.cs
│ │ │ ├── KKLayoutAlgorithm.cs
│ │ │ ├── KKLayoutParameters.cs
│ │ │ ├── LinLogLayoutAlgorithm.QuadTree.cs
│ │ │ ├── LinLogLayoutAlgorithm.cs
│ │ │ └── LinLogLayoutParameters.cs
│ │ ├── Grouped
│ │ │ ├── GroupingLayoutAlgorithm.cs
│ │ │ └── GroupingLayoutAlgorithmParameters.cs
│ │ ├── Hierarchical
│ │ │ ├── EfficientSugiyamaAlgorithm.BuildSparseNormalizedGraph.cs
│ │ │ ├── EfficientSugiyamaAlgorithm.DoCrossingMinimizations.cs
│ │ │ ├── EfficientSugiyamaAlgorithm.DoPreparing.cs
│ │ │ ├── EfficientSugiyamaLayoutAlgorithm.AlternatingLayer.cs
│ │ │ ├── EfficientSugiyamaLayoutAlgorithm.Data.cs
│ │ │ ├── EfficientSugiyamaLayoutAlgorithm.HorizontalAssignment.cs
│ │ │ ├── EfficientSugiyamaLayoutAlgorithm.SegmentContainer.cs
│ │ │ ├── EfficientSugiyamaLayoutAlgorithm.cs
│ │ │ ├── EfficientSugiyamaLayoutParameters.cs
│ │ │ ├── SugiyamaEdgeRoutings.cs
│ │ │ ├── SugiyamaLayoutAlgorithm.Enums.cs
│ │ │ ├── SugiyamaLayoutAlgorithm.SugiEdge.cs
│ │ │ ├── SugiyamaLayoutAlgorithm.SugiVertex.cs
│ │ │ ├── SugiyamaLayoutAlgorithm.VertexLayer.cs
│ │ │ ├── SugiyamaLayoutAlgorithm.VertexLayerCollection.cs
│ │ │ ├── SugiyamaLayoutAlgorithm.cs
│ │ │ └── SugiyamaLayoutParameters.cs
│ │ ├── ILayoutInfoIterationEventArgs.cs
│ │ ├── ILayoutIterationEventArgs.cs
│ │ ├── IParameterizedLayoutAlgorithm.cs
│ │ ├── LayoutAlgorithmBase.cs
│ │ ├── LayoutDirection.cs
│ │ ├── LayoutIterationEventArgs.cs
│ │ ├── LayoutParametersBase.cs
│ │ ├── LayoutUtil.cs
│ │ ├── ParameterizedLayoutAlgorithmBase.cs
│ │ ├── Random
│ │ │ ├── RandomLayoutAlgorithm.cs
│ │ │ └── RandomLayoutAlgorithmParams.cs
│ │ └── Tree
│ │ │ ├── BalloonTreeLayoutAlgorithm.cs
│ │ │ ├── BalloonTreeLayoutParameters.cs
│ │ │ ├── SimpleTreeLayoutAlgorithm.Data.cs
│ │ │ ├── SimpleTreeLayoutAlgorithm.cs
│ │ │ ├── SimpleTreeLayoutParameters.cs
│ │ │ └── SpanningTreeGeneration.cs
│ ├── OverlapRemoval
│ │ ├── FSAAlgorithm.cs
│ │ ├── IOverlapRemovalAlgorithmFactory.cs
│ │ ├── IOverlapRemovalContext.cs
│ │ ├── OneWayFSAAlgorithm.cs
│ │ ├── OneWayFSAParameters.cs
│ │ ├── OverlapRemovalAlgorithmBase.cs
│ │ ├── OverlapRemovalContext.cs
│ │ ├── OverlapRemovalHelper.cs
│ │ ├── OverlapRemovalParameters.cs
│ │ ├── RectangleWrapper.cs
│ │ └── StandardOverlapRemovalAlgorithmFactory.cs
│ ├── SoftMutableBidirectionalGraph.cs
│ ├── SoftMutableHierarchicalGraph.cs
│ ├── TypedEdge.cs
│ └── WrappedVertex.cs
├── GraphX.Standard.Logic.csproj
├── Helpers
│ ├── ReflectionHelper.cs
│ └── ThreadingHelper.cs
└── Models
│ ├── AlgorithmFactory.cs
│ ├── AlgorithmStorage.cs
│ ├── GXLogicCore.cs
│ └── GXLogicCore_Calculation.cs
├── GraphX.UAP.Controls
├── Controls
│ └── ZoomControl
│ │ ├── Converters
│ │ ├── DoubleToLog10Converter.cs
│ │ ├── EqualityToBooleanConverter.cs
│ │ ├── RoundedValueConverter.cs
│ │ └── VisibilityToBoolConverter.cs
│ │ ├── Helpers
│ │ ├── DoubleHelper.cs
│ │ ├── PointHelper.cs
│ │ └── VisualTreeHelperEx.cs
│ │ ├── SupportClasses
│ │ ├── AreaSelectedEventArgs.cs
│ │ ├── AreaSelectedEventHandler.cs
│ │ ├── ContentSizeChangedHandler.cs
│ │ ├── MouseWheelZoomingMode.cs
│ │ ├── ZoomControlModes.cs
│ │ └── ZoomViewModifierMode.cs
│ │ ├── ZoomContentPresenter.cs
│ │ └── ZoomControl.cs
├── DesignerExampleData
│ ├── EdgeDataExample.cs
│ └── VertexDataExample.cs
├── DpExtensions.cs
├── GraphX.UAP.Controls.csproj
├── Images
│ ├── cross-icon.png
│ ├── help_black.png
│ ├── round1.png
│ └── round2.png
├── Models
│ ├── AnimationHelper.cs
│ ├── DelegateCommand.cs
│ ├── DispatcherHelper.cs
│ ├── EdgeSelectedEventArgs.cs
│ ├── FileServiceProviderMETRO.cs
│ ├── ModifierKeys.cs
│ ├── MouseButtonEventArgs.cs
│ ├── VertexMovedEventArgs.cs
│ ├── VertexSelectedEventArgs.cs
│ └── XamlTypes
│ │ ├── ViewModelBase.cs
│ │ ├── ViewModelXamlMember.cs
│ │ ├── ViewModelXamlMetadataProvider.cs
│ │ ├── ViewModelXamlType.cs
│ │ ├── XamlSystemType.cs
│ │ └── XamlTypeProvider.cs
├── PrintHelper.cs
├── Properties
│ ├── AssemblyInfo.cs
│ └── GraphX.UAP.Controls.rd.xml
└── Themes
│ └── Generic.xaml
├── LICENSE
├── README.md
└── info.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Resources
13 | *.png binary
14 | *.jpg binary
15 | *.dll binary
16 | *.exe binary
17 | *.gif binary
18 | *.ico binary
19 |
20 | # Standard to msysgit
21 | *.doc diff=astextplain
22 | *.DOC diff=astextplain
23 | *.docx diff=astextplain
24 | *.DOCX diff=astextplain
25 | *.dot diff=astextplain
26 | *.DOT diff=astextplain
27 | *.pdf diff=astextplain
28 | *.PDF diff=astextplain
29 | *.rtf diff=astextplain
30 | *.RTF diff=astextplain
31 |
--------------------------------------------------------------------------------
/.nuget/NuGet.Config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.settings/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.1.0",
3 | // List of configurations. Add new configurations or edit existing ones.
4 | // ONLY "node" and "mono" are supported, change "type" to switch.
5 | "configurations": [
6 | {
7 | // Name of configuration; appears in the launch configuration drop down menu.
8 | "name": "Launch app.js",
9 | // Type of configuration. Possible values: "node", "mono".
10 | "type": "node",
11 | // Workspace relative or absolute path to the program.
12 | "program": "app.js",
13 | // Automatically stop program after launch.
14 | "stopOnEntry": true,
15 | // Command line arguments passed to the program.
16 | "args": [],
17 | // Workspace relative or absolute path to the working directory of the program being debugged. Default is the current workspace.
18 | "cwd": ".",
19 | // Workspace relative or absolute path to the runtime executable to be used. Default is the runtime executable on the PATH.
20 | "runtimeExecutable": null,
21 | // Environment variables passed to the program.
22 | "env": { }
23 | },
24 | {
25 | "name": "Attach",
26 | "type": "node",
27 | // TCP/IP address. Default is "localhost".
28 | "address": "localhost",
29 | // Port to attach to.
30 | "port": 5858
31 | }
32 | ]
33 | }
34 |
--------------------------------------------------------------------------------
/Documents/AIV.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Documents/AIV.cs
--------------------------------------------------------------------------------
/Documents/Licenses/License.MediaFIles.txt:
--------------------------------------------------------------------------------
1 | http://creativecommons.org/licenses/by/3.0/
--------------------------------------------------------------------------------
/Documents/Licenses/License.YAXLib.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright (c) 2009 - 2011 Sina Iravanian (sina@sinairv.com)
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5 |
6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7 |
8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Documents/TODO.txt:
--------------------------------------------------------------------------------
1 | TODO
2 | 3. Detect bidirectional edge and correctly display it w/o parallelization
3 |
4 | Add edge labels - labels on path
5 | http://www.codeproject.com/Articles/30090/Text-On-A-Path-in-WPF
6 |
7 | http://en.wikipedia.org/wiki/Automatic_label_placement
8 |
9 |
10 | NOTES
11 | 1. If custom object 1st time position is incorrect - CHECK if it has Arrange() specified in LayoutUpdated event!
12 |
13 |
14 | perf
15 | http://blogs.msdn.com/b/llobo/archive/2009/11/10/new-wpf-features-cached-composition.aspx?wa=wsignin1.0
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/App.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Windows;
7 |
8 | namespace ShowcaseApp.WPF
9 | {
10 | ///
11 | /// Interaction logic for App.xaml
12 | ///
13 | public partial class App : Application
14 | {
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/ModernUI.Snowflakes.xaml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 | #0082AD
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/SplashScreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/SplashScreen.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/background.snowflakes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/background.snowflakes.jpg
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/blackCircle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/blackCircle.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/blackCircleFilled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/blackCircleFilled.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/board_hd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/board_hd.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/brick_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/brick_16.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/carpet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/carpet.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/circle_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/circle_blue.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/circle_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/circle_green.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/circle_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/circle_red.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/dice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/dice.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/female.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/female.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/grid_paper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/grid_paper.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/hand_comp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/hand_comp.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/hand_comp2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/hand_comp2.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/hand_comp3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/hand_comp3.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/male.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/male.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/tr_grren.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/tr_grren.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Assets/tr_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/tr_red.png
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Content/SettingsAppearance.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | namespace ShowcaseApp.WPF.Content
4 | {
5 | ///
6 | /// Interaction logic for SettingsAppearance.xaml
7 | ///
8 | public partial class SettingsAppearance : UserControl
9 | {
10 | public SettingsAppearance()
11 | {
12 | InitializeComponent();
13 |
14 | // a simple view model for appearance configuration
15 | this.DataContext = new SettingsAppearanceViewModel();
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Controls/MiniContentPage.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Controls/MiniContentPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 | using System.Windows.Controls;
3 | using ShowcaseApp.WPF.Controls;
4 |
5 | namespace ShowcaseApp.WPF.Pages
6 | {
7 | ///
8 | /// Interaction logic for MiniContentPage.xaml
9 | ///
10 | public partial class MiniContentPage : UserControl, ISpecialWindowContentIntro, INotifyPropertyChanged
11 | {
12 | public MiniContentPage()
13 | {
14 | InitializeComponent();
15 | DataContext = this;
16 | }
17 |
18 | private string _text;
19 | public string IntroText { get { return _text; } set { _text = value; OnPropertyChanged("IntroText"); } }
20 | public event PropertyChangedEventHandler PropertyChanged;
21 |
22 | protected virtual void OnPropertyChanged(string propertyName)
23 | {
24 | var handler = PropertyChanged;
25 | if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Controls/MiniXamlPage.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Controls/MiniXamlTemplatePage.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Controls/SpecialWindowControl.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/ExampleModels/DataVertex.cs:
--------------------------------------------------------------------------------
1 | using GraphX.Common.Models;
2 |
3 | namespace ShowcaseApp.WPF
4 | {
5 | public class DataVertex: VertexBase
6 | {
7 | public string Text { get; set; }
8 | public string Name { get; set; }
9 | public string Profession { get; set; }
10 | public string Gender { get; set; }
11 | public int Age { get; set; }
12 | public int ImageId { get; set; }
13 |
14 | public bool IsBlue { get; set; }
15 |
16 | #region Calculated or static props
17 |
18 | public override string ToString()
19 | {
20 | return Text;
21 | }
22 |
23 | #endregion
24 |
25 | ///
26 | /// Default constructor for this class
27 | /// (required for serialization).
28 | ///
29 | public DataVertex():this(string.Empty)
30 | {
31 | }
32 |
33 | public DataVertex(string text = "")
34 | {
35 | Text = string.IsNullOrEmpty(text) ? "New Vertex" : text;
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/ExampleModels/ExampleExternalEdgeRoutingAlgorithm.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using System.Collections.Generic;
3 | using GraphX.Measure;
4 | using GraphX.Common.Interfaces;
5 |
6 | namespace ShowcaseApp.WPF
7 | {
8 | public class ExampleExternalEdgeRoutingAlgorithm : IExternalEdgeRouting
9 | {
10 | public void Compute(CancellationToken cancellationToken)
11 | {
12 | }
13 |
14 | public IDictionary VertexSizes { get; set; }
15 |
16 | public IDictionary VertexPositions { get; set; }
17 |
18 | readonly Dictionary _edgeRoutes = new Dictionary();
19 | public IDictionary EdgeRoutes { get { return _edgeRoutes; }}
20 |
21 | public Point[] ComputeSingle(TEdge edge) { return null; }
22 |
23 | public void UpdateVertexData(TVertex vertex, Point position, Rect size) { }
24 |
25 |
26 | public Rect AreaRectangle { get; set; }
27 |
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/ExampleModels/ExampleExternalOverlapRemovalAlgorithm.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using System;
3 | using System.Collections.Generic;
4 | using GraphX.Measure;
5 | using GraphX.Common.Interfaces;
6 |
7 | namespace ShowcaseApp.WPF
8 | {
9 | public class ExampleExternalOverlapRemovalAlgorithm: IExternalOverlapRemoval
10 | {
11 | public IDictionary Rectangles { get; set; }
12 |
13 | public void Compute(CancellationToken cancellationToken)
14 | {
15 | throw new NotImplementedException();
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/ExampleModels/ExampleMoveAnimation.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using GraphX.Controls.Animations;
3 |
4 | namespace ShowcaseApp.WPF
5 | {
6 | public class ExampleMoveAnimation: MoveAnimationBase
7 | {
8 | public ExampleMoveAnimation()
9 | {
10 | //set animation duration
11 | Duration = TimeSpan.FromSeconds(1);
12 | }
13 |
14 | public override void Cleanup()
15 | {
16 | //cleanup something
17 | }
18 |
19 | public override void RunVertexAnimation()
20 | {
21 | //do some vertex animation. Can be optional.
22 |
23 | //you need to call this manually at the animation end
24 | //if you want corresponding event fired on complete
25 | OnCompleted();
26 | }
27 |
28 | public override void RunEdgeAnimation()
29 | {
30 | //do some edge animation. Can be optional.
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/ExampleModels/Filters/BlueVertexFilter.cs:
--------------------------------------------------------------------------------
1 | using GraphX.Common.Interfaces;
2 | using QuikGraph;
3 |
4 | namespace ShowcaseApp.WPF.Filters
5 | {
6 | public class BlueVertexFilter: IGraphFilter>
7 | {
8 | public BidirectionalGraph ProcessFilter(BidirectionalGraph inputGraph)
9 | {
10 | inputGraph.RemoveVertexIf(a => !a.IsBlue);
11 | return inputGraph;
12 | }
13 | }
14 |
15 | public class YellowVertexFilter : IGraphFilter>
16 | {
17 | public BidirectionalGraph ProcessFilter(BidirectionalGraph inputGraph)
18 | {
19 | inputGraph.RemoveVertexIf(a => a.IsBlue);
20 | return inputGraph;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/ExampleModels/GraphAreaExample.cs:
--------------------------------------------------------------------------------
1 | using GraphX;
2 | using GraphX.Controls;
3 | using QuikGraph;
4 |
5 | namespace ShowcaseApp.WPF
6 | {
7 | public class GraphAreaExample : GraphArea> { }
8 | }
9 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/ExampleModels/GraphExample.cs:
--------------------------------------------------------------------------------
1 | using QuikGraph;
2 |
3 | namespace ShowcaseApp.WPF
4 | {
5 | public class GraphExample : BidirectionalGraph
6 | {
7 | }
8 |
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/ExampleModels/LogicCoreExample.cs:
--------------------------------------------------------------------------------
1 | using GraphX.Logic.Models;
2 | using QuikGraph;
3 |
4 | namespace ShowcaseApp.WPF
5 | {
6 | public class LogicCoreExample : GXLogicCore>
7 | {
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Models/ColorModel.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Media;
2 |
3 | namespace ShowcaseApp.WPF.Models
4 | {
5 | public class ColorModel
6 | {
7 | public Color Color {get;set;}
8 | public string Text { get; set; }
9 |
10 | public ColorModel(string text, Color color)
11 | {
12 | Text = text; Color = color;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Models/DataItem.cs:
--------------------------------------------------------------------------------
1 | namespace ShowcaseApp.WPF.Models
2 | {
3 | public class DataItem
4 | {
5 | public int ID { get; set; }
6 |
7 | public string Text { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Models/EditorOperationMode.cs:
--------------------------------------------------------------------------------
1 | namespace ShowcaseApp.WPF.Models
2 | {
3 | public enum EditorOperationMode
4 | {
5 | Select = 0,
6 | Edit,
7 | Delete
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Models/ImageLoader.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Windows.Media.Imaging;
4 |
5 | namespace ShowcaseApp.WPF.Models
6 | {
7 | public static class ImageLoader
8 | {
9 | private static readonly List Images = new List();
10 |
11 | static ImageLoader()
12 | {
13 | Images.Add(new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseApp.WPF;component/Assets/circle_red.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad });
14 | Images.Add(new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseApp.WPF;component/Assets/circle_blue.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad });
15 | Images.Add(new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseApp.WPF;component/Assets/circle_green.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad });
16 | }
17 |
18 | public static BitmapImage GetImageById(int id)
19 | {
20 | return Images.Count < id ? null : Images[id];
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Models/LinkCommands.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Input;
2 |
3 | namespace ShowcaseApp.WPF.Models
4 | {
5 | public static class LinkCommands
6 | {
7 | private static readonly RoutedUICommand ShowMiniSpecialDialogInternal = new RoutedUICommand("Show help", "ShowMiniSpecialDialog", typeof(LinkCommands));
8 |
9 | ///
10 | /// Gets the navigate link routed command.
11 | ///
12 | public static RoutedUICommand ShowMiniSpecialDialog
13 | {
14 | get { return ShowMiniSpecialDialogInternal; }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Models/MiniSpecialType.cs:
--------------------------------------------------------------------------------
1 | namespace ShowcaseApp.WPF.Models
2 | {
3 | public enum MiniSpecialType
4 | {
5 | None,
6 | LayoutVCP,
7 | EdgesParallel,
8 | LayoutGrouped,
9 | DataFiltering
10 | }
11 | }
--------------------------------------------------------------------------------
/Examples/ShowcaseApp.WPF/Models/SimpleCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Input;
3 |
4 | namespace ShowcaseApp.WPF.Models
5 | {
6 | public class SimpleCommand : ICommand
7 | {
8 | public Predicate