/// <exception cref="ArgumentNullException"><paramref name="svgElement" /> is <see langword="null" />.</exception> /// <exception cref="ArgumentNullException"><paramref name="sourceMatrix" /> is <see langword="null" />.</exception> /// <exception cref="ArgumentNullException"><paramref name="viewMatrix" /> is <see langword="null" />.</exception> /// <exception cref="ArgumentNullException"><paramref name="eplContainer" /> is <see langword="null" />.</exception> public override void Translate(T svgElement, Matrix sourceMatrix, Matrix viewMatrix, EplContainer eplContainer) { if (svgElement == null) { throw new ArgumentNullException(nameof(svgElement)); } if (sourceMatrix == null) { throw new ArgumentNullException(nameof(sourceMatrix)); } if (viewMatrix == null) { throw new ArgumentNullException(nameof(viewMatrix)); } if (eplContainer == null) { throw new ArgumentNullException(nameof(eplContainer)); } if (svgElement.Text == null) { return; } var text = this.RemoveIllegalCharacters(svgElement.Text); if (string.IsNullOrEmpty(text)) { return; } this.GetPosition(svgElement, sourceMatrix, viewMatrix, out var horizontalStart, out var verticalStart, out var sector, out var fontSize); this.GetFontSelection(svgElement, fontSize, out var fontSelection, out var horizontalMultiplier, out var verticalMultiplier); this.AddTranslationToContainer(svgElement, horizontalStart, verticalStart, sector, fontSelection, horizontalMultiplier, verticalMultiplier, text, eplContainer); }
/// <exception cref="ArgumentNullException"><paramref name="svgElement" /> is <see langword="null" />.</exception> /// <exception cref="ArgumentNullException"><paramref name="text" /> is <see langword="null" />.</exception> /// <exception cref="ArgumentNullException"><paramref name="eplContainer" /> is <see langword="null" />.</exception> protected virtual void AddTranslationToContainer([NotNull] T svgElement, int horizontalStart, int verticalStart, int sector, int fontSelection, int horizontalMultiplier, int verticalMultiplier, [NotNull] string text, [NotNull] EplContainer eplContainer) { if (svgElement == null) { throw new ArgumentNullException(nameof(svgElement)); } if (text == null) { throw new ArgumentNullException(nameof(text)); } if (eplContainer == null) { throw new ArgumentNullException(nameof(eplContainer)); } ReverseImage reverseImage; if ((svgElement.Fill as SvgColourServer)?.Colour == Color.White) { reverseImage = ReverseImage.Reverse; } else { reverseImage = ReverseImage.Normal; } eplContainer.Body.Add(this.EplCommands.AsciiText(horizontalStart, verticalStart, sector, fontSelection, horizontalMultiplier, verticalMultiplier, reverseImage, text)); }