public override ScanLine DoTask(ScanLine source) { int count = source.Count; ScanLine ret = new ScanLine(source.LaserID, count); ret.DisplayAsLine = source.DisplayAsLine; if (count < 4) { ret.AddRange(source); } else { BezierBuilder bez = new BezierBuilder(SegmentPerCurve, MinSquareDistance); bez.SetControlPoints(source); switch (Mode) { case eMode.Mode0: ret.AddRange(bez.GetDrawingPoints0()); break; case eMode.Mode1: ret.AddRange(bez.GetDrawingPoints1()); break; default: ret.AddRange(bez.GetDrawingPoints2()); break; } } return(ret); }
public override ScanLine DoTask(ScanLine source) { int count = source.Count; ScanLine ret = new ScanLine(source.LaserID, count); ret.DisplayAsLine = source.DisplayAsLine; if (count < 3) { ret.AddRange(source); } else { ret.Add(source[0]); for (int i = 1; i < count - 1; i++) { if (CancelPending) { return(source); } ret.Add(source[i - 1].Average(source[i + 1])); } ret.Add(source[count - 1]); } return(ret); }
public override ScanLine DoTask(ScanLine source) { ScanLine ret = new ScanLine(source.LaserID, source.Count); ret.AddRange(source); /* * if (source != null && source.Count > 0) * { * Point3D avg = Point3D.Average(source); * ret.Add(avg); * } */ return(ret); }
public override ScanLine DoTask(ScanLine source) { int count = source.Count; ScanLine ret = new ScanLine(source.LaserID, count); ret.DisplayAsLine = source.DisplayAsLine; if (count < 3) ret.AddRange(source); else { ret.Add(source[0]); for (int i = 1; i < count - 1; i++) { if (CancelPending) return source; ret.Add(source[i - 1].Average(source[i + 1])); } ret.Add(source[count - 1]); } return ret; }
public override ScanLine DoTask(ScanLine source) { ScanLine ret = new ScanLine(source.LaserID, source.Count); ret.AddRange(source); /* if (source != null && source.Count > 0) { Point3D avg = Point3D.Average(source); ret.Add(avg); } */ return ret; }
public override ScanLine DoTask(ScanLine source) { int count = source.Count; ScanLine ret = new ScanLine(source.LaserID, count); ret.DisplayAsLine = source.DisplayAsLine; if (count < 4) ret.AddRange(source); else { BezierBuilder bez = new BezierBuilder(SegmentPerCurve, MinSquareDistance); bez.SetControlPoints(source); switch (Mode) { case eMode.Mode0: ret.AddRange(bez.GetDrawingPoints0()); break; case eMode.Mode1: ret.AddRange(bez.GetDrawingPoints1()); break; default: ret.AddRange(bez.GetDrawingPoints2()); break; } } return ret; }