FingerSliceTrail.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using bbiwarg.Utility;
  7. namespace bbiwarg.Detectors.FingerDetection
  8. {
  9. class FingerSliceTrail
  10. {
  11. public List<FingerSlice> Slices { get; private set; }
  12. public FingerSlice Start { get { return Slices[0]; } }
  13. public FingerSlice End { get { return Slices[Slices.Count - 1]; } }
  14. public int NumSlices { get { return Slices.Count; } }
  15. public LineSegment2D LineSegment { get { return new LineSegment2D(End.Mid, Start.Mid); } }
  16. public FingerSliceTrail(FingerSlice slice)
  17. {
  18. Slices = new List<FingerSlice>();
  19. Slices.Add(slice);
  20. }
  21. public void addSlice(FingerSlice slice)
  22. {
  23. Slices.Add(slice);
  24. }
  25. public Vector2D getEndDirection() {
  26. int numSlicesToInnerEnd = Constants.FingerNumSlicesForRelativeDirection;
  27. int innerEndIndex = Math.Max(0, NumSlices - numSlicesToInnerEnd);
  28. return (End.Mid - Slices[innerEndIndex].Mid).normalize();
  29. }
  30. }
  31. }