Beispiel #1
0
        public PersistentHand()
        {
            Id             = 0;
            DetectedHand   = Hand.Invalid;
            StabilizedHand = Hand.Invalid;
            CurrentHand    = Hand.Invalid;
            FinalHand      = Hand.Invalid;

            _Stabilized = new BooleanHandState(this, h => h.PalmVelocity.Magnitude < 50, 25000, long.MaxValue);
            _Velocity   = new IntegerHandState(this, h => Convert.ToInt32(h.PalmVelocity.Magnitude), 50000);
            _X          = new IntegerHandState(this, h => Convert.ToInt32(h.PalmPosition.x), 125000)
            {
                StableTime = 250000, StableDelta = 25, StableVelocity = 60
            };
            _Y = new IntegerHandState(this, h => Convert.ToInt32(h.PalmPosition.y), 125000)
            {
                StableTime = 250000, StableDelta = 25, StableVelocity = 60
            };
            _Z = new IntegerHandState(this, h => Convert.ToInt32(h.PalmPosition.z), 125000)
            {
                StableTime = 250000, StableDelta = 25, StableVelocity = 60
            };
            _Pitch = new IntegerHandState(this, h => h.PitchDegrees(), 125000)
            {
                StableTime = 250000, StableDelta = 5, StableVelocity = int.MaxValue
            };
            _Roll = new IntegerHandState(this, h => h.RollDegrees(), 125000)
            {
                StableTime = 250000, StableDelta = 5, StableVelocity = int.MaxValue
            };
            _Yaw = new IntegerHandState(this, h => h.YawDegrees(), 125000)
            {
                StableTime = 250000, StableDelta = 5, StableVelocity = int.MaxValue
            };
            _FingerCount = new IntegerHandState(this, h => h.Fingers.Count, 0)
            {
                StableDelta = 5, StableTime = 50000, StableVelocity = int.MaxValue
            };

            HandTracker   = new PositionTracker(this, h => h.Position, h => h.Velocity);
            FingerTracker = new PositionTracker(this
                                                , h => h.CurrentHand.Fingers.Leftmost.StabilizedTipPosition
                                                , h => Convert.ToInt32(h.CurrentHand.Fingers.Leftmost.TipVelocity.Magnitude)
                                                );
        }
Beispiel #2
0
        public PersistentHand()
        {
            Id = 0;
            DetectedHand = Hand.Invalid;
            StabilizedHand = Hand.Invalid;
            CurrentHand = Hand.Invalid;
            FinalHand = Hand.Invalid;

            _Stabilized = new BooleanHandState(this, h => h.PalmVelocity.Magnitude < 50, 25000, long.MaxValue);
            _Velocity = new IntegerHandState(this, h => Convert.ToInt32(h.PalmVelocity.Magnitude), 50000);
            _X = new IntegerHandState(this, h => Convert.ToInt32(h.PalmPosition.x), 125000) { StableTime = 250000, StableDelta = 25, StableVelocity = 60 };
            _Y = new IntegerHandState(this, h => Convert.ToInt32(h.PalmPosition.y), 125000) { StableTime = 250000, StableDelta = 25, StableVelocity = 60 };
            _Z = new IntegerHandState(this, h => Convert.ToInt32(h.PalmPosition.z), 125000) { StableTime = 250000, StableDelta = 25, StableVelocity = 60 };
            _Pitch = new IntegerHandState(this, h => h.PitchDegrees(), 125000) { StableTime = 250000, StableDelta = 5, StableVelocity = int.MaxValue };
            _Roll = new IntegerHandState(this, h => h.RollDegrees(), 125000) { StableTime = 250000, StableDelta = 5, StableVelocity = int.MaxValue };
            _Yaw = new IntegerHandState(this, h => h.YawDegrees(), 125000) { StableTime = 250000, StableDelta = 5, StableVelocity = int.MaxValue };
            _FingerCount = new IntegerHandState(this, h => h.Fingers.Count, 0) { StableDelta = 5, StableTime = 50000, StableVelocity = int.MaxValue };

            HandTracker = new PositionTracker(this, h => h.Position, h => h.Velocity);
            FingerTracker = new PositionTracker(this
                                                , h => h.CurrentHand.Fingers.Leftmost.StabilizedTipPosition
                                                , h => Convert.ToInt32(h.CurrentHand.Fingers.Leftmost.TipVelocity.Magnitude)
                                               );
        }