void GoOverPathAndCreateLongSegs(Path path) { LongestNudgedSegment currentLongestSeg = null; var oppositeDir = CompassVector.OppositeDir(NudgingDirection); foreach (var edge in path.PathEdges) { var edgeDir = edge.Direction; if (edgeDir == NudgingDirection || edgeDir == oppositeDir) { if (currentLongestSeg == null) #if SHARPKIT //https://code.google.com/p/sharpkit/issues/detail?id=368 { edge.LongestNudgedSegment = currentLongestSeg = new LongestNudgedSegment(LongestNudgedSegs.Count); LongestNudgedSegs.Add(edge.LongestNudgedSegment); } #else { LongestNudgedSegs.Add( edge.LongestNudgedSegment = currentLongestSeg = new LongestNudgedSegment(LongestNudgedSegs.Count)); } #endif else { edge.LongestNudgedSegment = currentLongestSeg; } if (edge.IsFixed) { currentLongestSeg.IsFixed = true; } }
void ShowLongSegsWithIdealPositions(Directions dir) { // ReSharper restore UnusedMember.Local var debCurves = GetObstacleBoundaries(Obstacles, "black"); int i = 0; debCurves.AddRange(LongestNudgedSegs.Select(ls => DebugCurveOfLongSeg(ls, DebugCurve.Colors[i++ % DebugCurve.Colors.Length], dir))); DebugCurveCollection.WriteToFile(debCurves, "c:/tmp/longSegs"); LayoutAlgorithmSettings.ShowDebugCurvesEnumeration(debCurves); }