public void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();
            if (reader.IsEmptyElement) {
                reader.ReadStartElement();
                return;
            }

            reader.ReadStartElement();
            while (!reader.EOF) {
                if (reader.IsStartElement()) {
                    switch (reader.Name) {
                        case "Transform":
                            XmlTransformElement transform = new XmlTransformElement();
                            transform.ReadXml(reader);
                            Transform = transform;
                            break;

                        default:
                            reader.Skip();
                            break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement) {
                    reader.ReadEndElement();
                    break;
                }
                else
                    reader.Read();
            }
        }
 public XmlDirectionalAnimatedSpriteInstance(IDirectionalAnimatedSpriteInstance spriteInstance)
 {
     if (spriteInstance != null) {
         InitialDirection = spriteInstance.InitialDirection;
         Transform = new XmlTransformElement(spriteInstance.Transform);
     }
 }
        public void WriteXml(XmlWriter writer)
        {
            if (Transform != null) {
                XmlTransformElement elem = Transform as XmlTransformElement;
                if (elem == null)
                    elem = new XmlTransformElement(Transform);

                writer.WriteStartElement("Transform");
                elem.WriteXml(writer);
                writer.WriteEndElement();
            }
        }
 public XmlAnimatedSpriteInstance(IAnimatedSpriteInstance animatedSpriteInstance)
 {
     if (animatedSpriteInstance != null) {
         Transform = new XmlTransformElement(animatedSpriteInstance.Transform);
     }
 }
        public void WriteXml(XmlWriter writer)
        {
            if (InitialDirection != null)
                writer.WriteAttributeString("InitialDirection", InitialDirection);

            if (Transform != null) {
                XmlTransformElement elem = Transform as XmlTransformElement;
                if (elem == null)
                    elem = new XmlTransformElement(Transform);

                writer.WriteStartElement("Transform");
                elem.WriteXml(writer);
                writer.WriteEndElement();
            }
        }
 public XmlStaticSpriteInstance(IStaticSpriteInstance staticSpriteInstance)
 {
     if (staticSpriteInstance != null) {
         Transform = new XmlTransformElement(staticSpriteInstance.Transform);
     }
 }