/// <summary> /// Carga una serie de transformaciones /// </summary> internal TransformModelCollection LoadTransforms(MLNode nodeML) { TransformModelCollection transforms = new TransformModelCollection(); // Carga las transformaciones foreach (MLNode childML in nodeML.Nodes) { switch (childML.Name) { case ComicRepositoryConstants.TagTranslate: transforms.Add(new TranslateTransformModel(childML.Attributes[ComicRepositoryConstants.TagTop].Value.GetDouble(0), childML.Attributes[ComicRepositoryConstants.TagLeft].Value.GetDouble(0))); break; case ComicRepositoryConstants.TagMatrix: transforms.Add(new MatrixTransformModel(childML.Attributes[ComicRepositoryConstants.TagData].Value)); break; case ComicRepositoryConstants.TagRotate: transforms.Add(new RotateTransformModel(childML.Attributes[ComicRepositoryConstants.TagAngle].Value.GetDouble(0), Mediator.CommonRepository.GetPoint(childML.Attributes[ComicRepositoryConstants.TagOrigin].Value, 0.5, 0.5))); break; case ComicRepositoryConstants.TagScale: transforms.Add(new ScaleTransformModel(childML.Attributes[ComicRepositoryConstants.TagScaleX].Value.GetDouble(1), childML.Attributes[ComicRepositoryConstants.TagScaleY].Value.GetDouble(1), Mediator.CommonRepository.GetPoint(childML.Attributes[ComicRepositoryConstants.TagCenter].Value, 0.5, 0.5))); break; } } // Devuelve la colección de transformaciones return(transforms); }
/// <summary> /// Obtiene las transformaciones de la figura /// </summary> internal static Transform GetTransforms(TransformModelCollection transforms) { Transform transform = new TranslateTransform(0, 0); // Obtiene las transformaciones de la figura if (transforms != null && transforms.Count > 0) { // Crea un grupo de transformaciones transform = new TransformGroup(); // Añade las transformaciones de la figura foreach (AbstractTransformModel figureTransform in transforms) { if (figureTransform is TranslateTransformModel) { (transform as TransformGroup).Children.Add(ConvertTransform(figureTransform as TranslateTransformModel)); } else if (figureTransform is MatrixTransformModel) { (transform as TransformGroup).Children.Add(ConvertTransform(figureTransform as MatrixTransformModel)); } else if (figureTransform is RotateTransformModel) { (transform as TransformGroup).Children.Add(ConvertTransform(figureTransform as RotateTransformModel)); } else if (figureTransform is ScaleTransformModel) { (transform as TransformGroup).Children.Add(ConvertTransform(figureTransform as ScaleTransformModel)); } } } // Devuelve la transformación return(transform); }