public Gesture(List <Point> rawPoints) { double minX = Double.MaxValue, minY = Double.MaxValue, maxX = Double.MinValue, maxY = Double.MinValue; foreach (Point p in rawPoints) { minX = Math.Min(minX, p.X); minY = Math.Min(minY, p.Y); maxX = Math.Max(maxX, p.X); maxY = Math.Max(maxY, p.Y); } double sourceDims = 0; double originalDeltaX = maxX - minX; double originalDeltaY = maxY - minY; if (originalDeltaX >= originalDeltaY) { sourceDims = originalDeltaX; double deltaDiff = originalDeltaX - originalDeltaY; minY -= deltaDiff / 2; maxY += deltaDiff / 2; } else { sourceDims = originalDeltaY; double deltaDiff = originalDeltaY - originalDeltaX; minX -= deltaDiff / 2; maxX += deltaDiff / 2; } this.Action = new GestureAction(); Initialize(rawPoints, minX, minY, maxX, maxY); }
private void Initialize(List <Point> rawPoints, double minX, double minY, double maxX, double maxY) { this._Description = null; this._PointVector = new List <Point>(); this._Directions = new List <double>(); this.scaleAndCenterGesture(rawPoints, minX, minY, maxX, maxY); this.Action = new GestureAction(); }
public Gesture(Gesture other) { this._Description = null; this._PointVector = new List <Point>(other.PointVector); this._Directions = new List <double>(other.Directions); this.Action = new GestureAction(other.Action); // make a duplicate of file this._ImagePath = Guid.NewGuid().ToString() + ".png"; try { File.Copy(other.ImagePath, this._ImagePath); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public GestureAction(GestureAction other) { this.Path = other.Path; this.Arguments = other.Arguments; this.StartIn = other.StartIn; }