Exemple #1
0
        TryCalculateGraphMetrics
        (
            IGraph graph,
            CalculateGraphMetricsContext calculateGraphMetricsContext,
            out GraphMetricColumn [] graphMetricColumns
        )
        {
            Debug.Assert(graph != null);
            Debug.Assert(calculateGraphMetricsContext != null);
            AssertValid();

            graphMetricColumns = null;

            // Partition the graph into motifs using the MotifCalculator class in
            // the Algorithms namespace, which knows nothing about Excel.

            Algorithms.MotifCalculator oMotifCalculator =
                new Algorithms.MotifCalculator();

            ICollection <Motif> oMotifs;

            if (!oMotifCalculator.TryCalculateMotifs(graph,
                                                     m_eMotifsToCalculate, m_iDConnectorMinimumAnchorVertices,
                                                     m_iDConnectorMaximumAnchorVertices,
                                                     m_iCliqueMinimumMemberVertices, m_iCliqueMaximumMemberVertices,
                                                     calculateGraphMetricsContext.BackgroundWorker, out oMotifs))
            {
                // The user cancelled.

                return(false);
            }

            // Convert the collection of motifs to an array of GraphMetricColumn
            // objects.

            graphMetricColumns =
                GroupsToGraphMetricColumnsConverter.Convert <Motif>(
                    oMotifs,
                    (oMotif) => oMotif.VerticesInMotif,
                    (oMotif) => MotifToGroupName(oMotif),
                    true,
                    (oMotif) => oMotif.CollapsedAttributes
                    );

            return(true);
        }
    TryCalculateGraphMetrics
    (
        IGraph graph,
        CalculateGraphMetricsContext calculateGraphMetricsContext,
        out GraphMetricColumn [] graphMetricColumns
    )
    {
        Debug.Assert(graph != null);
        Debug.Assert(calculateGraphMetricsContext != null);
        AssertValid();

        graphMetricColumns = null;

        // Partition the graph into motifs using the MotifCalculator class in
        // the Algorithms namespace, which knows nothing about Excel.

        Algorithms.MotifCalculator oMotifCalculator =
            new Algorithms.MotifCalculator();

        ICollection<Motif> oMotifs;

        if ( !oMotifCalculator.TryCalculateMotifs(graph,
            m_eMotifsToCalculate, m_iDConnectorMinimumAnchorVertices,
            m_iDConnectorMaximumAnchorVertices,
            m_iCliqueMinimumMemberVertices, m_iCliqueMaximumMemberVertices,
            calculateGraphMetricsContext.BackgroundWorker, out oMotifs) )
        {
            // The user cancelled.

            return (false);
        }

        // Convert the collection of motifs to an array of GraphMetricColumn
        // objects.

        graphMetricColumns =
            GroupsToGraphMetricColumnsConverter.Convert<Motif>(
                oMotifs,
                (oMotif) => oMotif.VerticesInMotif,
                (oMotif) => MotifToGroupName(oMotif),
                true,
                (oMotif) => oMotif.CollapsedAttributes
                );

        return (true);
    }