protected bool wandIsPaused(List<Position> positions) { bool paused = false; //PositionStatistics stats = new PositionStatistics(positions); var lastFive = positions.GetRange(positions.Count - 5, 5); var lastFiveStats = new PositionStatistics(lastFive); if (lastFiveStats.Diagonal() < 10) { paused = true; //Console.WriteLine("Paused. Diagonal: " + lastFiveStats.Diagonal()); } //paused = true; return paused; }
protected virtual bool verifyTrigger(List<Position> positions) { PositionStatistics stats = new PositionStatistics(positions); StrokeDirection direction = StrokeDecomposer.determineDirection(stats.Start(), stats.End()); double distance = stats.Diagonal(); double relativeStartAndEndDistance = stats.FractionOfTotal(stats.Start(), stats.End()); /* if (this.GetType() == typeof(Ascendio)) { Console.WriteLine( "Confidence: " + confidence + " direction: " + direction + " (" + stats.Start().point.ToString() + " -> " + stats.End().point.ToString() + ")" + " distance: " + distance + " (" + relativeStartAndEndDistance + ")"); } */ bool verified = false; foreach (StrokeDirection dir in acceptableDirectionsFromStartToEndPoint) { if (dir == direction) { verified = true; } } verified = verified && confidence >= minConfidence; verified = verified && distance >= 400.0; verified = verified && (relativeStartAndEndDistance * 100) >= minPercentOfTotalBetweenStartAndEndPoints; verified = verified && (relativeStartAndEndDistance * 100) <= maxPercentOfTotalBetweenStartAndEndPoints; return verified; }