示例#1
0
    private void UpdateBonesToSelectedBlendshape()
    {
        if (_selectedblendShapeName != null)
        {
            foreach (var bone in _bones)
            {
                var defaultBone = _defaultBones[bone.name];

                var boneData = new BoneData()
                {
                    LocalPosition = bone.localPosition - defaultBone.LocalPosition,
                    LocalRotation = bone.localRotation,
                    LocalScale    = bone.localScale
                };

                var blendshapeData = _blendshapeData[_selectedblendShapeName];

                var isSavingBoneDefault = boneData.Equals(_identityBone);
                if (isSavingBoneDefault)
                {
                    blendshapeData.Bones.Remove(bone.name);
                }
                else
                {
                    blendshapeData.Bones[bone.name] = boneData;
                }
            }
        }
    }
示例#2
0
        private void UpdateSegmentPosition(JointType j1, JointType j2, Segment seg)
        {
            var bone = new Bone(j1, j2);

            if (this.segments.ContainsKey(bone))
            {
                BoneData data = this.segments[bone];
                data.UpdateSegment(seg);
                BoneData old = this.segments[bone];
                if (data.Equals(old))
                {
                    Console.WriteLine("sama plis");
                }
                this.segments[bone] = data;
            }
            else
            {
                this.segments.Add(bone, new BoneData(seg));
            }
        }