GetRadius
(
IVertex oVertex
)
{
Debug.Assert(oVertex != null);
AssertValid();
// Start with the default radius.
Double dRadius = m_dRadius;
Object oPerVertexRadiusAsObject;
// Check for a per-vertex radius. Note that the radius is stored as a
// Single in the vertex's metadata to reduce memory usage.
if ( oVertex.TryGetValue(ReservedMetadataKeys.PerVertexRadius,
typeof(Single), out oPerVertexRadiusAsObject) )
{
dRadius = (Double)(Single)oPerVertexRadiusAsObject;
if (dRadius < MinimumRadius || dRadius > MaximumRadius)
{
throw new FormatException( String.Format(
"{0}: The vertex with the ID {1} has an out-of-range"
+ " ReservedMetadataKeys.PerVertexRadius value. Valid"
+ " values are between {2} and {3}."
,
this.ClassName,
oVertex.ID,
MinimumRadius,
MaximumRadius
) );
}
}
return (dRadius * m_dGraphScale);
}