/// <summary>
        ///		Carga los datos de una figura
        /// </summary>
        internal FigureModel LoadFigure(AbstractComponentModel pageItem, MLNode nodeML)
        {
            FigureModel figure = new FigureModel();

            // Asigna los datos
            figure.FillMode = GetFillMode(nodeML.Attributes[ComicRepositoryConstants.TagFillRule].Value);
            // Asigna las propiedades
            figure.Brush = Mediator.BrushesRepository.LoadFirstBrush(nodeML);
            // Asigna el contenido de la figura
            foreach (MLNode childML in nodeML.Nodes)
            {
                switch (childML.Name)
                {
                case ComicRepositoryConstants.TagData:
                    // Asigna los datos de la figura
                    figure.Data = childML.Value;
                    // Normaliza la cadena de datos
                    figure.Data = Mediator.CommonRepository.Normalize(figure.Data);
                    break;

                case ComicRepositoryConstants.TagTransform:
                    figure.Transforms.AddRange(Mediator.ShapesRepository.LoadTransforms(childML));
                    break;
                }
            }
            // Devuelve la figura cargada
            return(figure);
        }
        /// <summary>
        ///		Obtiene la definición de la figura
        /// </summary>
        private ShapeModel GetShape(ShapeModel shape)
        {
            // Obtiene las figuras buscando entre los recursos
            if (shape != null && !string.IsNullOrEmpty(shape.ComponentKey))
            {
                AbstractComponentModel resource = shape.Page.Comic.Resources.Search(shape.ComponentKey);

                // Obtiene los datos del recurso
                if (resource != null && resource is ShapeModel)
                {
                    ShapeModel resourceShape = resource as ShapeModel;

                    // Obtiene el modo de relleno
                    shape.FillMode = resourceShape.FillMode;
                    // Obtiene las figuras
                    shape.Figures.Clear();
                    shape.Figures.AddRange(resourceShape.Figures);
                    // Añade las transformaciones
                    shape.Transforms.InsertRange(0, resourceShape.Transforms);
                }
            }
            // Devuelve la figura
            return(shape);
        }