private void Update() { this.IsInitialized = !(Head == null && // Neck == null && Hips == null && UpperSpine == null && // Chest == null && // RightArmShoulder == null && RightArmUpper == null && RightArmLower == null && RightLegUpper == null && RightLegLower == null && RightLegFoot == null && // RightLegToes == null && // LeftArmShoulder == null && LeftArmUpper == null && LeftArmLower == null && LeftLegUpper == null && LeftLegLower == null && LeftLegFoot == null // LeftLegToes == null ); if (BoneList.Count == 0) { BoneList.Add(Bone.AssociateBoneJoints(Head, () => HeadPosition, () => NeckPosition)); BoneList.Add(Bone.AssociateBoneJoints(Neck, () => NeckPosition, () => SpineShoulderPosition)); BoneList.Add(Bone.AssociateBoneJoints(Chest, () => NeckPosition, () => ChestPosition)); BoneList.Add(Bone.AssociateBoneJoints(UpperSpine, () => ChestPosition, () => LowerSpineTipPosition)); BoneList.Add(Bone.AssociateBoneJoints(LowerSpine, () => LowerSpineTipPosition, () => HipsPosition)); BoneList.Add(Bone.AssociateBoneJoints(Hips, () => LowerSpineTipPosition, () => SpineBasePosition)); BoneList.Add(Bone.AssociateBoneJoints(RightArmShoulder, () => SpineShoulderPosition, () => RightCollarBonePosition)); BoneList.Add(Bone.AssociateBoneJoints(RightArmUpper, () => RightCollarBonePosition, () => RightArmElbowPosition)); BoneList.Add(Bone.AssociateBoneJoints(RightArmLower, () => RightArmElbowPosition, () => RightArmWristPosition)); BoneList.Add(Bone.AssociateBoneJoints(RightArmHand, () => RightArmWristPosition, () => RightArmHandTipPosition)); BoneList.Add(Bone.AssociateBoneJoints(RightLegUpper, () => SpineBasePosition, () => RightLegHipPosition)); BoneList.Add(Bone.AssociateBoneJoints(RightLegLower, () => SpineBasePosition, () => RightLegKneePosition)); BoneList.Add(Bone.AssociateBoneJoints(RightLegFoot, () => RightLegKneePosition, () => RightLegAnklePosition)); BoneList.Add(Bone.AssociateBoneJoints(RightLegToes, () => RightLegAnklePosition, () => RightLegFootPosition)); BoneList.Add(Bone.AssociateBoneJoints(LeftArmShoulder, () => SpineShoulderPosition, () => LeftCollarBonePosition)); BoneList.Add(Bone.AssociateBoneJoints(LeftArmUpper, () => LeftCollarBonePosition, () => LeftArmElbowPosition)); BoneList.Add(Bone.AssociateBoneJoints(LeftArmLower, () => LeftArmElbowPosition, () => LeftArmWristPosition)); BoneList.Add(Bone.AssociateBoneJoints(LeftArmHand, () => LeftArmWristPosition, () => LeftArmHandTipPosition)); BoneList.Add(Bone.AssociateBoneJoints(LeftLegUpper, () => SpineBasePosition, () => LeftLegHipPosition)); BoneList.Add(Bone.AssociateBoneJoints(LeftLegLower, () => SpineBasePosition, () => LeftLegKneePosition)); BoneList.Add(Bone.AssociateBoneJoints(LeftLegFoot, () => LeftLegKneePosition, () => LeftLegAnklePosition)); BoneList.Add(Bone.AssociateBoneJoints(LeftLegToes, () => LeftLegAnklePosition, () => LeftLegFootPosition)); } //BoneList.ForEach(x => Bone.Update(x)); foreach (var bone in BoneList) { Bone.Update(bone); } }