/// <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); }