void nuiService_SkeletonUpdated(object sender, SkeletonUpdatedEventArgs e) { if (this.userIsInRange) { this.ProcessHandControl(e); } }
void kinectService_SkeletonUpdated(object sender, SkeletonUpdatedEventArgs e) { if (this.kinectService.UserIsInRange) { this.OffsetX = e.HandRight.Position.X * Scale; this.OffsetY = e.HandRight.Position.Y * -Scale; } }
void nuiService_SkeletonUpdated(object sender, SkeletonUpdatedEventArgs e) { if (this.enabled) { this.TorsoOffsetX = (this.BoundsDisplaySize / 2) * e.TorsoJoint.Position.X / (this.BoundsWidth / 2); this.TorsoOffsetZ = (this.BoundsDisplaySize / 2) * (e.TorsoJoint.Position.Z - (this.MinDistanceFromCamera + this.BoundsDepth / 2)) / (this.BoundsDepth / 2); } }
void kinectService_SkeletonUpdated(object sender, SkeletonUpdatedEventArgs e) { UserPointColor = this.kinectService.UserIsInRange ? Color.FromArgb(255, 0, 255, 0) : Color.FromArgb(255, 255, 0, 0); TorsoOffsetX = (BoundsDisplaySize / 2) * e.Torso.Position.X / (BoundsWidth / 2); TorsoOffsetZ = (BoundsDisplaySize / 2) * (e.Torso.Position.Z - (MinDistanceFromCamera + BoundsDepth / 2)) / (BoundsDepth / 2); }
void AnalyzeSkeleton(SkeletonUpdatedEventArgs e) { if (e.HandRight.Position.Y > e.HipRight.Position.Y && e.HandRight.Position.Y < e.Head.Position.Y && e.HandRight.Position.X > (e.HipRight.Position.X + .2f) ) { // adjust Y values so that head is at zero of y axis var hand = e.HandRight.Position.Y - e.Head.Position.Y; var hip = e.HipRight.Position.Y - e.Head.Position.Y; var result = hand / hip; var fraction = 1d / this.MenuItems.Count; for (var i = 1; i <= this.MenuItems.Count; i++) { if (fraction * i > result) { var item = this.MenuItems[i - 1]; if (selectedItem != item) { if (selectedItem != null) { this.selectedItem.IsSelected = false; } this.selectedItem = this.MenuItems[i - 1]; this.selectedItem.IsSelected = true; } break; } } } //else //{ // if (this.selectedItem != null) // { // this.selectedItem.IsSelected = false; // this.selectedItem = null; // } //} }
void kinectService_SkeletonUpdated(object sender, SkeletonUpdatedEventArgs e) { this.AnalyzeSkeleton(e); }
void ProcessHandControl(SkeletonUpdatedEventArgs e) { this.leftHandCanMove = e.LeftHandJoint.Position.Y < e.HeadJoint.Position.Y && e.TorsoJoint.Position.Z - e.LeftHandJoint.Position.Z >= MinTorsoDistance && e.TorsoJoint.Position.Z - e.RightHandJoint.Position.Z < MinTorsoDistance; this.rightHandCanMove = e.RightHandJoint.Position.Y < e.HeadJoint.Position.Y && e.TorsoJoint.Position.Z - e.RightHandJoint.Position.Z >= MinTorsoDistance && e.TorsoJoint.Position.Z - e.LeftHandJoint.Position.Z < MinTorsoDistance; this.canZoom = e.LeftHandJoint.Position.Y < e.HeadJoint.Position.Y && e.RightHandJoint.Position.Y < e.HeadJoint.Position.Y && e.TorsoJoint.Position.Z - e.LeftHandJoint.Position.Z >= MinTorsoDistance && e.TorsoJoint.Position.Z - e.RightHandJoint.Position.Z >= MinTorsoDistance; if (this.rotationXMoving & !this.leftHandCanMove) { // stop X rotation this.rotationXMoving = false; return; } if (this.rotationYMoving & !this.rightHandCanMove) { // stop y rotation this.rotationYMoving = false; return; } if (!this.rotationXMoving & this.leftHandCanMove) { // start x rotation this.previousX = new Point(e.LeftHandJoint.Position.X, e.LeftHandJoint.Position.Y); this.rotationXMoving = true; return; } if (!this.rotationYMoving & this.rightHandCanMove) { // start y rotation this.previousY = new Point(e.RightHandJoint.Position.X, e.RightHandJoint.Position.Y); this.rotationYMoving = true; return; } if (this.rotationXMoving & this.leftHandCanMove) { // continue x rotation this.HandleMeterMovement( new Point(e.LeftHandJoint.Position.X, e.LeftHandJoint.Position.Y), false, true); // right and left are inversed return; } if (this.rotationYMoving & this.rightHandCanMove) { // continue y rotation this.HandleMeterMovement( new Point(e.RightHandJoint.Position.X, e.RightHandJoint.Position.Y), true, false); // right and left are inversed return; } if (this.zooming & !this.canZoom) { // stop zooming this.zooming = false; return; } if (!this.zooming & this.canZoom) { // start zooming this.zooming = true; this.previousY = this.previousY = new Point(e.RightHandJoint.Position.X, e.RightHandJoint.Position.Y); return; } if (this.zooming & this.canZoom) { // continue zooming this.HandleMeterMovement( new Point(e.RightHandJoint.Position.X, e.RightHandJoint.Position.Y), true, true); } }
void kinectService_SkeletonUpdated(object sender, SkeletonUpdatedEventArgs e) { this.OffsetX = e.HandRightJoint.Position.X * Scale; this.OffsetY = e.HandRightJoint.Position.Y * -Scale; }