using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using bbiwarg.Recognition.HandRecognition; using bbiwarg.Recognition.Tracking; using bbiwarg.Utility; namespace bbiwarg.Recognition.PalmRecognition { class Palm : TrackableObject { public Hand Hand { get; private set; } public Vector2D WristUpper { get; private set; } public Vector2D WristLower { get; private set; } public Vector2D FingersUpper { get; private set; } public Vector2D FingersLower { get; private set; } public Quadrangle Quad { get; private set; } public Palm(Hand hand, Vector2D wristUpper, Vector2D wristLower, Vector2D fingersLower, Vector2D fingersUpper) { Hand = hand; WristUpper = wristUpper; WristLower = wristLower; FingersUpper = fingersUpper; FingersLower = fingersLower; if (Hand.Side == HandSide.Left) Quad = new Quadrangle(WristUpper, FingersUpper, FingersLower, WristLower); else Quad = new Quadrangle(FingersUpper, WristUpper, WristLower, FingersLower); } public Vector2D getRelativePosition(Vector2D absolutePosition) { return Quad.getRelativePosition(absolutePosition); } public bool isInside(Vector2D position) { return Quad.isInside(position); } } }