@@ -13,6 +13,7 @@ namespace Zeiss.PiWeb.Formplot.FileFormat
13
13
#region usings
14
14
15
15
using System ;
16
+ using System . Collections . Generic ;
16
17
using System . Linq ;
17
18
18
19
#endregion
@@ -145,37 +146,24 @@ private static StraightnessPlot ConvertCircleToStraightness<TPoint, TGeometry>(
145
146
result . Actual . CoordinateSystem = source . Actual . CoordinateSystem ;
146
147
result . Nominal . CoordinateSystem = source . Nominal . CoordinateSystem ;
147
148
148
- double ? lastAngle = null ;
149
149
const double radToDeg = 180 / Math . PI ;
150
150
151
151
foreach ( var segment in source . Segments )
152
152
{
153
153
var resultSegment = new Segment < LinePoint , LineGeometry > ( segment . Name , segment . SegmentType ) ;
154
+ var points = new List < LinePoint > ( segment . Points . Count ) ;
155
+
154
156
result . Segments . Add ( resultSegment ) ;
155
157
156
158
foreach ( var point in segment . Points )
157
159
{
158
- double position ;
159
- if ( ! lastAngle . HasValue )
160
- {
161
- lastAngle = AdjustAngle ( point . Angle * radToDeg ) ;
162
- position = lastAngle . Value ;
163
- }
164
- else
165
- {
166
- var angle = AdjustAngle ( point . Angle * radToDeg ) ;
167
-
168
- while ( angle < lastAngle )
169
- angle += 360 ;
170
-
171
- lastAngle = angle ;
172
- position = angle ;
173
- }
174
-
175
- var resultPoint = new LinePoint ( position , point . Deviation ) ;
160
+ var resultPoint = new LinePoint ( AdjustAngle ( point . Angle * radToDeg ) , point . Deviation ) ;
176
161
CopyDefaults ( point , resultPoint ) ;
177
- resultSegment . Points . Add ( resultPoint ) ;
162
+ points . Add ( resultPoint ) ;
178
163
}
164
+
165
+ foreach ( var point in points . OrderBy ( p => p . Position ) )
166
+ resultSegment . Points . Add ( point ) ;
179
167
}
180
168
181
169
return result ;
0 commit comments