protected void UpdateBones(HeadSensor sensor) { if (headTarget.head.target.confidence.position > KinectDevice.TrackingConfidence(KinectDevice.JointID.Head)) { if (headTarget.humanoid.leftHandTarget.hand.target.confidence.position > KinectDevice.TrackingConfidence(KinectDevice.JointID.WristLeft) && headTarget.humanoid.rightHandTarget.hand.target.confidence.position > KinectDevice.TrackingConfidence(KinectDevice.JointID.WristRight)) { CalibrateWithHeadAndHands(); } else { CalibrateWithHead(); } return; } //if (headTarget.head.target.confidence.rotation > 0) { // headTarget.head.target.transform.rotation = Kinect2Tracker.SmoothRotation(headTarget.head.target.transform.rotation, sensor.head.rotation); // headTarget.head.target.confidence.rotation = sensor.head.confidence.rotation; // headTarget.head.target.transform.position = Kinect2Tracker.SmoothPosition(headTarget.head.target.transform.position, sensor.head.position); // headTarget.head.target.confidence.position = sensor.head.confidence.position; //} //if (headTarget.neck.target.confidence.rotation > 0) { // headTarget.neck.target.transform.rotation = Kinect2Tracker.SmoothRotation(headTarget.neck.target.transform.rotation, sensor.neck.rotation); // headTarget.neck.target.confidence.rotation = sensor.neck.confidence.rotation; // headTarget.neck.target.transform.position = Kinect2Tracker.SmoothPosition(headTarget.neck.target.transform.position, sensor.neck.position); // headTarget.neck.target.confidence.position = sensor.neck.confidence.position; //} else { if (headTarget.neck.target.transform != null) { headTarget.neck.target.transform.position = Target.ToVector3(sensor.neck.position); headTarget.neck.target.transform.rotation = Target.ToQuaternion(sensor.neck.rotation); headTarget.neck.target.confidence = sensor.neck.confidence; } if (headTarget.head.target.transform != null) { headTarget.head.target.transform.position = Target.ToVector3(sensor.head.position); headTarget.head.target.transform.rotation = Target.ToQuaternion(sensor.head.rotation); headTarget.head.target.confidence = sensor.head.confidence; } if (rotationTrackingAxis == RotationTrackingAxis.XY) { headTarget.head.target.transform.rotation = Quaternion.LookRotation(headTarget.head.target.transform.rotation * Vector3.forward); } } if (headTarget.virtual3d) { UpdateVirtual3D(); } }
protected virtual void UpdateHeadTargetTransform(HeadSensor headTracker) { if (headTarget.head.target.transform != null) { if (headTracker.head.confidence.rotation > 0) { headTarget.head.target.transform.rotation = Target.ToQuaternion(headTracker.head.rotation) * sensor2TargetRotation; } if (headTracker.head.confidence.position > 0) { headTarget.head.target.transform.position = Target.ToVector3(headTracker.head.position) + headTarget.head.target.transform.rotation * sensor2TargetPosition; } headTarget.head.target.confidence = headTracker.head.confidence; } }