Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
 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;
 }
Пример #5
0
		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;
		}
Пример #6
0
 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;
 }