Joint と JointTrackingState の初期値
About
Joint と JointTrackingState の初期値の確認が必要になったので検証しました。特に JointTrackingState は msdn やインテリセンスでは Inferred(推測) が一番上に掲載されます。しかしながら初期値が Infrred であることは非常に問題です。そんな実装はあり得ないだろう、と思いつつも、念のため検証に至った次第です。普通に考えれば NotTracked が初期値として与えられているべきです。先に結論を述べておくと、JointTrackingStateの初期値は NotTracked であることが確認できました。
検証とその結果
次のコードを実行して確認しました。
Joint joint = new Joint(); Console.WriteLine(joint.JointType + ", " + joint.TrackingState); SkeletonPoint skeletonPoint = new SkeletonPoint(); Console.WriteLine (skeletonPoint.X + ", " + skeletonPoint.Y + ", " + skeletonPoint.Z); foreach (JointTrackingState trackingState in Enum.GetValues(typeof(JointTrackingState))) { Console.Write(trackingState + ","); } Console.WriteLine();
検証結果は次の通りです。JointTrackingStateの初期値は NotTracked であることが確認できました。予想通りで何よりです。
HipCenter, NotTracked 0, 0, 0 NotTracked,Inferred,Tracked,