Palm.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using bbiwarg.Recognition.HandRecognition;
  7. using bbiwarg.Recognition.Tracking;
  8. using bbiwarg.Utility;
  9. namespace bbiwarg.Recognition.PalmRecognition
  10. {
  11. class Palm : TrackableObject
  12. {
  13. public Hand Hand { get; private set; }
  14. public Vector2D WristUpper { get; private set; }
  15. public Vector2D WristLower { get; private set; }
  16. public Vector2D FingersUpper { get; private set; }
  17. public Vector2D FingersLower { get; private set; }
  18. public Quadrangle Quad { get; private set; }
  19. public Palm(Hand hand, Vector2D wristUpper, Vector2D wristLower, Vector2D fingersLower, Vector2D fingersUpper)
  20. {
  21. Hand = hand;
  22. WristUpper = wristUpper;
  23. WristLower = wristLower;
  24. FingersUpper = fingersUpper;
  25. FingersLower = fingersLower;
  26. if (Hand.Side == HandSide.Left)
  27. Quad = new Quadrangle(WristUpper, FingersUpper, FingersLower, WristLower);
  28. else
  29. Quad = new Quadrangle(FingersUpper, WristUpper, WristLower, FingersLower);
  30. }
  31. public Vector2D getRelativePosition(Vector2D absolutePosition) {
  32. return Quad.getRelativePosition(absolutePosition);
  33. }
  34. public bool isInside(Vector2D position) {
  35. return Quad.isInside(position);
  36. }
  37. }
  38. }