Exemple #1
0
    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);
        }
    }