private void FindClosestSegments(
Dictionary<Segment, Segment> segmentPairs,
List<Segment> segments)
{
foreach( Segment segOuter in segments )
{
bool first = true;
double dist = 0;
Segment closest = null;
foreach( Segment segInner in segments )
{
if( segOuter == segInner )
continue;
if( segInner.Space == segOuter.Space )
continue;
double d = segOuter.Distance(
segInner );
if( first || d < dist )
{
dist = d;
first = false;
closest = segInner;
}
}
segmentPairs.Add( segOuter, closest );
}
}