Smrf.NodeXL.Visualization.Wpf.CollapsedGroupDrawingManager.SetCollapsedDConnectorMotifAttributes C# (CSharp) Method

SetCollapsedDConnectorMotifAttributes() protected method

protected SetCollapsedDConnectorMotifAttributes ( ) : void
return void
    SetCollapsedDConnectorMotifAttributes()
    {
        Debug.Assert(m_oCollapsedGroup != null);
        Debug.Assert(m_oCollapsedGroupVertex != null);
        Debug.Assert(m_oCollapsedGroupAttributes != null);
        AssertValid();

        // Get the vertices that were collapsed into the collapsed group
        // vertex.

        ICollection<IVertex> oCollapsedVertices = m_oCollapsedGroup.Vertices;

        Debug.Assert(oCollapsedVertices != null);
        Debug.Assert(oCollapsedVertices.Count > 0);

        // Use a tapered diamond for the collapsed group vertex.

        m_oCollapsedGroupVertex.SetValue(ReservedMetadataKeys.PerVertexShape,
            VertexShape.SolidTaperedDiamond);

        // Use the color specified in the collapsed attributes.

        SetVertexColorFromCollapsedGroupAttributes(
            ReservedMetadataKeys.PerColor);

        Int32 iAnchorVertices, iSpanVertices;
        Double dSpanScale;

        if (
            !m_oCollapsedGroupAttributes.TryGetValue(
                CollapsedGroupAttributeKeys.AnchorVertices,
                out iAnchorVertices)
            ||
            !m_oCollapsedGroupAttributes.TryGetValue(
                CollapsedGroupAttributeKeys.SpanVertices, out iSpanVertices)
            ||
            !m_oCollapsedGroupAttributes.TryGetValue(
                CollapsedGroupAttributeKeys.SpanScale, out dSpanScale)
            )
        {
            return;
        }

        // Scale the size by a scale factor stored in the collapsed group
        // attributes.  The scale factor ranges from 0 to 1.0.

        Single fRadius = MathUtil.TransformValueToRange(
            (Single)dSpanScale,
            0, 1.0F,
            (Single)MinimumDConnectorRadius,
            (Single)MaximumDConnectorRadius
            );

        m_oCollapsedGroupVertex.SetValue(
            ReservedMetadataKeys.PerVertexRadius, fRadius);

        m_oCollapsedGroupVertex.SetValue(
            ReservedMetadataKeys.PerVertexToolTip,
            GetCollapsedDConnectorMotifToolTip(iAnchorVertices, iSpanVertices)
            );

        SetCollapsedDConnectorMotifEdgeAttributes(iAnchorVertices);
    }