LSLib.Granny.Model.Skeleton.GetBoneByName C# (CSharp) Method

GetBoneByName() public method

public GetBoneByName ( string name ) : Bone
name string
return Bone
        public Bone GetBoneByName(string name)
        {
            return Bones.FirstOrDefault(b => b.Name == name);
        }

Usage Example

Esempio n. 1
0
        private void ConformAnimationBindPoses(Skeleton skeleton, Skeleton conformToSkeleton)
        {
            foreach (var trackGroup in Root.TrackGroups)
            {
                for (var i = 0; i < trackGroup.TransformTracks.Count; i++)
                {
                    var track = trackGroup.TransformTracks[i];
                    var bone  = skeleton.GetBoneByName(track.Name);
                    if (bone == null)
                    {
                        string msg = String.Format("Animation track references bone '{0}' that cannot be found in the skeleton.", track.Name);
                        throw new ExportException(msg);
                    }

                    var conformingBone = conformToSkeleton.GetBoneByName(track.Name);
                    if (conformingBone == null)
                    {
                        string msg = String.Format("Animation track references bone '{0}' that cannot be found in the conforming skeleton.", track.Name);
                        throw new ExportException(msg);
                    }

                    var keyframes = track.ToKeyframes();
                    keyframes.SwapBindPose(bone.OriginalTransform, conformingBone.Transform.ToMatrix4());
                    var newTrack = TransformTrack.FromKeyframes(keyframes);
                    newTrack.Flags                = track.Flags;
                    newTrack.Name                 = track.Name;
                    newTrack.ParentAnimation      = track.ParentAnimation;
                    trackGroup.TransformTracks[i] = newTrack;
                }
            }
        }
All Usage Examples Of LSLib.Granny.Model.Skeleton::GetBoneByName