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);
}