FingerSlice.cs 1.0 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.Recognition.FingerRecognition
  8. {
  9. class FingerSlice
  10. {
  11. private LineSegment2D lineSegment;
  12. private bool lineSegmentUpToDate;
  13. public Vector2D Start { get; private set; }
  14. public Vector2D Mid { get; private set; }
  15. public Vector2D End { get; private set; }
  16. public LineSegment2D LineSegment { get { if (!lineSegmentUpToDate) updateLineSegment(); return lineSegment; } }
  17. public Vector2D Direction { get { return LineSegment.Direction; } }
  18. public float Length { get { return LineSegment.Length; } }
  19. public FingerSlice(Vector2D start, Vector2D end)
  20. {
  21. Start = start;
  22. End = end;
  23. Mid = (start + end) / 2;
  24. lineSegmentUpToDate = false;
  25. }
  26. private void updateLineSegment()
  27. {
  28. lineSegment = new LineSegment2D(Start, End);
  29. }
  30. }
  31. }