本文整理汇总了C#中KinectManager.IsJointTracked方法的典型用法代码示例。如果您正苦于以下问题:C# KinectManager.IsJointTracked方法的具体用法?C# KinectManager.IsJointTracked怎么用?C# KinectManager.IsJointTracked使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KinectManager
的用法示例。
在下文中一共展示了KinectManager.IsJointTracked方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Update
// Update is called once per frame
void Update()
{
km = KinectManager.Instance;
string trackedJointsString = "Tracked Joints:";
if (km != null) {
if (km.IsUserDetected()) {
uint userId = km.GetPlayer1ID();
/*trackedJointsString += "\nchecking joints";
if(km.IsJointTracked(userId, (int)rightHand))
trackedJointsString += "\nRight hand";
if(km.IsJointTracked(userId, (int)rightWrist))
trackedJointsString += "\nRight wrist";
if(km.IsJointTracked(userId, (int)centreHip))
trackedJointsString += "\nCentre Hip";
if(km.IsJointTracked(userId, (int)leftShoulder))
trackedJointsString += "\nLeft shoulder";
if(km.IsJointTracked(userId, (int)centreShoulder))
trackedJointsString += "\nCentre shoulder";
if(km.IsJointTracked(userId, (int)rightShoulder))
trackedJointsString += "\nRight shoulder";
trackedJointsString += "\ndone checking joints";*/
if (km.IsJointTracked(userId, (int)rightHand) && km.IsJointTracked(userId, (int)rightShoulder))
wristVector = km.GetJointPosition(userId, (int)rightHand) - km.GetJointPosition(userId, (int)rightShoulder);
if (km.IsJointTracked(userId, (int)rightShoulder) && km.IsJointTracked(userId, (int)leftShoulder))
shouldersVector = km.GetJointPosition(userId, (int)rightShoulder) - km.GetJointPosition(userId, (int)leftShoulder);
if (km.IsJointTracked(userId, (int)centreShoulder) && km.IsJointTracked(userId, (int)centreHip))
backVector = km.GetJointPosition(userId, (int)centreShoulder) - km.GetJointPosition(userId, (int)centreHip);
//GramSchmidt Orthonormal Space
Vector3 e2 = backVector.normalized;
Vector3 e1 = (shouldersVector - Vector3.Dot (shouldersVector,e2) * e2).normalized;
wristVectorInPlane = new Vector2(Vector3.Dot(e1, wristVector), Vector3.Dot(e2, wristVector));
}
}
trackedJointsText.text = trackedJointsString;
CheckPointingTopRight();
}
示例2: GetUserBoneLength
private bool GetUserBoneLength(KinectManager manager, KinectInterop.JointType baseJoint, KinectInterop.JointType endJoint, float scaleFactor, ref float length)
{
length = 0f;
if(manager && manager.IsJointTracked(currentUserId, (int)baseJoint) &&
manager.IsJointTracked(currentUserId, (int)endJoint))
{
Vector3 vPos1 = manager.GetJointPosition(currentUserId, (int)baseJoint);
Vector3 vPos2 = manager.GetJointPosition(currentUserId, (int)endJoint);
length = (vPos2 - vPos1).magnitude * scaleFactor;
return true;
}
return false;
}
示例3: GetUserBodyHeight
private bool GetUserBodyHeight(KinectManager manager, float scaleFactor, ref float height)
{
height = 0f;
if(manager && manager.IsJointTracked(currentUserId, (int)KinectInterop.JointType.HipLeft) &&
manager.IsJointTracked(currentUserId, (int)KinectInterop.JointType.HipRight) &&
manager.IsJointTracked(currentUserId, (int)KinectInterop.JointType.ShoulderLeft) &&
manager.IsJointTracked(currentUserId, (int)KinectInterop.JointType.ShoulderRight))
{
//Vector3 posHipCenter = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.SpineBase);
Vector3 posHipLeft = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.HipLeft);
Vector3 posHipRight = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.HipRight);
Vector3 posHipCenter = (posHipLeft + posHipRight) / 2;
Vector3 posShoulderLeft = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.ShoulderLeft);
Vector3 posShoulderRight = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.ShoulderRight);
Vector3 posShoulderCenter = (posShoulderLeft + posShoulderRight) / 2;
height = (posShoulderCenter.y - posHipCenter.y) * scaleFactor;
return true;
}
return false;
}
示例4: GetJointPosition
// gets the joint position in space
private Vector3 GetJointPosition(KinectManager manager, int joint)
{
Vector3 vPosJoint = Vector3.zero;
if(manager.IsJointTracked(currentUserId, joint))
{
if(foregroundCamera)
{
// get the background rectangle (use the portrait background, if available)
Rect backgroundRect = foregroundCamera.pixelRect;
PortraitBackground portraitBack = PortraitBackground.Instance;
if(portraitBack && portraitBack.enabled)
{
backgroundRect = portraitBack.GetBackgroundRect();
}
// get the color overlay position
vPosJoint = manager.GetJointPosColorOverlay(currentUserId, joint, foregroundCamera, backgroundRect);
}
else
//if(vPosJoint == Vector3.zero)
{
vPosJoint = manager.GetJointPosition(currentUserId, joint);
}
}
return vPosJoint;
}