Smrf.NodeXL.Visualization.Wpf.GroupDrawer.TryDrawCombinedIntergroupEdges C# (CSharp) Method

TryDrawCombinedIntergroupEdges() public method

public TryDrawCombinedIntergroupEdges ( IGraph graph, GraphDrawingContext graphDrawingContext, Visual &visual ) : System.Boolean
graph IGraph
graphDrawingContext GraphDrawingContext
visual Visual
return System.Boolean
    TryDrawCombinedIntergroupEdges
    (
        IGraph graph,
        GraphDrawingContext graphDrawingContext,
        out Visual visual
    )
    {
        Debug.Assert(graph != null);
        Debug.Assert(graphDrawingContext != null);
        AssertValid();

        visual = null;

        GroupLayoutDrawingInfo oGroupLayoutDrawingInfo;

        if ( !GroupMetadataManager.TryGetGroupLayoutDrawingInfo(
            graph, out oGroupLayoutDrawingInfo) )
        {
            return (false);
        }

        IEnumerable<IntergroupEdgeInfo> oCombinedIntergroupEdges =
            oGroupLayoutDrawingInfo.CombinedIntergroupEdges;

        if (oCombinedIntergroupEdges == null)
        {
            return (false);
        }

        DrawingVisual oCombinedIntergroupEdgeDrawingVisual =
            new DrawingVisual();

        using ( DrawingContext oDrawingContext =
            oCombinedIntergroupEdgeDrawingVisual.RenderOpen() )
        {
            foreach (IntergroupEdgeInfo oCombinedIntergroupEdge in
                oCombinedIntergroupEdges)
            {
                DrawCombinedIntergroupEdge(oDrawingContext,
                    graphDrawingContext, oCombinedIntergroupEdge,
                    oGroupLayoutDrawingInfo);
            }
        }

        visual = oCombinedIntergroupEdgeDrawingVisual;
        return (true);
    }