/// <summary> /// <see cref="Bspline.Model.Interfaces.ILogicDelegate"/> /// </summary> public void OnMotionDataPacketFiltered(MotionDataPacket dataPacket) { this.ModelDelegate.OnMotionDataPacketReady(dataPacket); if (this.Record) { this.AlgPoints.Add(dataPacket.RightPosition); } }
/// <summary> /// <see cref="ModelViewColleague"/> /// </summary> /// <param name="motionDataPacket"></param> internal override void UpdateTrackingStream(MotionDataPacket motionDataPacket) { this.PaintingDelegate.OnGestureMove(motionDataPacket.RightPosition.Position); this.RightHandLeft = motionDataPacket.RightPosition.Position.X; this.RightHandTop = motionDataPacket.RightPosition.Position.Y; this.OnPropertyChanged(() => this.CoordinateText); }
/// <summary> /// Filters the massive amount of <see cref="Bspline.Core.DataPacket.MotionDataPacket"/> coming from <see cref="Bspline.Media.MediaWrapperBase"/> /// </summary> /// <param name="dataPacket"></param> public void Filter(MotionDataPacket dataPacket) { if (this.CanSaveHand) { IPosition avgPosition = this.RightHands .Select(hand => { hand.Position.X = (int)this.RightHands.Average(obj => obj.Position.X); hand.Position.Y = (int)this.RightHands.Average(obj => obj.Position.Y); return(hand); }).First(); this.LogicDelegate.OnMotionDataPacketFiltered(new MotionDataPacket(null, avgPosition)); this.Reset(); } else { this.RightHands.Add(dataPacket.RightPosition); } }
/// <summary> /// <see cref="Bspline.Core.Interfaces.IModelDelegate"/> /// </summary> public void OnMotionDataPacketReady(MotionDataPacket motionDataPacket) { this.NoiseFilter.Filter(motionDataPacket); }
/// <summary> /// <see cref="IModelDelegate"/> /// </summary> public void OnMotionDataPacketReady(MotionDataPacket motionDataPacket) { this.ModelViewCollection.ForEach(mv => mv.UpdateTrackingStream(motionDataPacket)); }
/// <summary> /// Update upon motion stream /// </summary> /// <param name="motionDataPacket">motion data</param> internal virtual void UpdateTrackingStream(MotionDataPacket motionDataPacket) { }