//public AnimationFrame ToAnimationFrame(TextureAtlas textureAtlas)
        //{
        //    AnimationFrame toReturn = ToAnimationFrame(null, false);
        //    var entry = textureAtlas.GetEntryFor(this.TextureName);

        //    if (entry != null)
        //    {

        //        float left;
        //        float right;
        //        float top;
        //        float bottom;


        //        entry.FullToReduced(toReturn.LeftCoordinate, toReturn.RightCoordinate,
        //            toReturn.TopCoordinate, toReturn.BottomCoordinate,
        //            out left, out right, out top, out bottom);

        //        toReturn.LeftCoordinate = left;
        //        toReturn.RightCoordinate = right;
        //        toReturn.TopCoordinate = top;
        //        toReturn.BottomCoordinate = bottom;

        //    }

        //    return toReturn;
        //}


        internal static AnimationFrameSave FromXElement(System.Xml.Linq.XElement element)
        {
            AnimationFrameSave toReturn = new AnimationFrameSave();


            foreach (var subElement in element.Elements())
            {
                switch (subElement.Name.LocalName)
                {
                case "FlipHorizontal":
                    toReturn.FlipHorizontal = SceneSave.AsBool(subElement);
                    break;

                case "FlipVertical":
                    toReturn.FlipVertical = SceneSave.AsBool(subElement);
                    break;

                case "TextureName":
                    toReturn.TextureName = subElement.Value;
                    break;

                case "FrameLength":
                    toReturn.FrameLength = SceneSave.AsFloat(subElement);
                    break;

                case "LeftCoordinate":
                    toReturn.LeftCoordinate = SceneSave.AsFloat(subElement);
                    break;

                case "RightCoordinate":
                    toReturn.RightCoordinate = SceneSave.AsFloat(subElement);
                    break;

                case "TopCoordinate":
                    toReturn.TopCoordinate = SceneSave.AsFloat(subElement);
                    break;

                case "BottomCoordinate":
                    toReturn.BottomCoordinate = SceneSave.AsFloat(subElement);
                    break;

                case "RelativeX":
                    toReturn.RelativeX = SceneSave.AsFloat(subElement);
                    break;

                case "RelativeY":
                    toReturn.RelativeY = SceneSave.AsFloat(subElement);
                    break;
                }
            }

            return(toReturn);
        }