public Joint(float xCoord, float yCoord, float zCoord, JointName jointName) { this.xCoord = xCoord; this.yCoord = yCoord; this.zCoord = zCoord; this.jointName = jointName; }
public static float GetNeckAngle(FacetrackingManager facetrackingManager, JointName joint) { float angle = 0; if (facetrackingManager == null) { facetrackingManager = FacetrackingManager.Instance; } if (facetrackingManager && facetrackingManager.IsTrackingFace()) { switch (joint) { case JointName.pan: angle = facetrackingManager.GetHeadRotation().eulerAngles.y; if (angle > 180f) { angle = angle - 360f; //180도를 넘을리는 없지만 각의 범위를 -180~180로 쓰겠다는 의미 } break; case JointName.tilt: angle = facetrackingManager.GetHeadRotation().eulerAngles.x; if (angle > 180f) { angle = angle - 360f; } break; default: break; } } return(angle); }
// create a JointSkeleton based on a Skeleton instance received from Kinect sensor public JointSkeleton(Skeleton skeleton) { foreach (JointType jointType in Enum.GetValues(typeof(JointType))) { if (!Mapper.JointTypeJointNameMap.ContainsKey(jointType)) { continue; } SkeletonPoint pt = skeleton.Joints[jointType].Position; JointName jointName = Mapper.JointTypeJointNameMap[jointType]; Joint joint = new Joint(pt.X, pt.Y, pt.Z, jointName); joints[Mapper.JointIndexMap[jointName]] = joint; } }
public Position GetJoint(int sensor, int skeleton, JointName id) { switch (id) { case JointName.HandLeft: return(SmartAverage(this.GetRawJoint(sensor, skeleton, RawJointName.HandLeft1), this.GetRawJoint(sensor, skeleton, RawJointName.HandLeft2))); case JointName.HandRight: return(SmartAverage(this.GetRawJoint(sensor, skeleton, RawJointName.HandRight1), this.GetRawJoint(sensor, skeleton, RawJointName.HandRight2))); case JointName.Head: return(SmartAverage(this.GetRawJoint(sensor, skeleton, RawJointName.Head1), this.GetRawJoint(sensor, skeleton, RawJointName.Head2))); case JointName.FootLeft: return(FootAverage(this.GetRawJoint(sensor, skeleton, RawJointName.FootLeft1), this.GetRawJoint(sensor, skeleton, RawJointName.FootLeft2), this.GetRawJoint(sensor, skeleton, RawJointName.FootLeftHigh))); case JointName.FootRight: return(FootAverage(this.GetRawJoint(sensor, skeleton, RawJointName.FootRight1), this.GetRawJoint(sensor, skeleton, RawJointName.FootRight2), this.GetRawJoint(sensor, skeleton, RawJointName.FootRightHigh))); case JointName.Hip: return(SmartAverage(this.GetRawJoint(sensor, skeleton, RawJointName.Hip1), this.GetRawJoint(sensor, skeleton, RawJointName.Hip2))); default: return(Position.Invalid); } }
public static float LimitJointAngle(JointName jointName, float angle) // angle 제한하는 함수 { switch (jointName) { case JointName.shoulder_l1: case JointName.shoulder_r1: case JointName.pan: angle = Mathf.Clamp(angle, -90f, 90f); break; case JointName.tilt: angle = Mathf.Clamp(angle, -30f, 15f); break; case JointName.shoulder_l2: case JointName.elbow_l: angle = Mathf.Clamp(angle, -90f, 0f); break; case JointName.shoulder_r2: case JointName.elbow_r: angle = Mathf.Clamp(angle, 0f, 90f); break; default: break; } return(angle); }
public Joint GetJoint(JointName jointName) { return(joints[Mapper.JointIndexMap[jointName]]); }
// Start is called before the first frame update void Start() { rigidbody = GetComponent <Rigidbody>(); targetJoint = (JointName)Random.Range(0, 25); }
/// <summary> /// JointName is only checked if in both objects JointName is not NULL. Everything else is checked regardless /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { if (!(obj is BoneAnimation animation)) { return(false); } bool result = TranslationX.SequenceEqual(animation.TranslationX) && TranslationY.SequenceEqual(animation.TranslationY) && TranslationZ.SequenceEqual(animation.TranslationZ) && RotationX.SequenceEqual(animation.RotationX) && RotationY.SequenceEqual(animation.RotationY) && RotationZ.SequenceEqual(animation.RotationZ) && ScaleX.SequenceEqual(animation.ScaleX) && ScaleY.SequenceEqual(animation.ScaleY) && ScaleZ.SequenceEqual(animation.ScaleZ); return(result && ((JointName != null && animation.JointName != null) ? JointName.Equals(animation.JointName) : true)); }
public Position GetAverageJoint(JointName id) { return(Position.Invalid); }
public Position GetCombinedJoint(JointName id) { return(Position.Invalid); }