WarpMagnifierTransform(WarpMagnifierTransform from) { m_CenterX = from.m_CenterX; m_CenterY = from.m_CenterY; m_Magnification = from.m_Magnification; m_Radius = from.m_Radius; m_Radius2 = from.m_Radius2; m_Radius2Magnification2 = from.m_Radius2Magnification2; m_RadiusMulMagnificationMinus1 = from.m_RadiusMulMagnificationMinus1; }
void DrawingPanel_Paint(object sender, GUI.PaintEventArgs e) { e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; // Transformed Matrix4 mtx = Matrix4.CreateTranslation(-m_SVGPathBounds.Center.X, -m_SVGPathBounds.Center.Y); double scale = m_ScaleSlider.Value; mtx.Scale(scale, scale, MatrixOrder.Append); mtx.Rotate(m_RotateSlider.Value, MatrixOrder.Append); int k = 30; mtx.Translate(ClientWidth / 2 + k, ClientHeight / 2 + k, MatrixOrder.Append); Point center = new Point(m_x, m_y); WarpMagnifierTransform warpMagnifierTransform = new WarpMagnifierTransform(); warpMagnifierTransform.Center = center; warpMagnifierTransform.Magnification = m_MagnificationSlider.Value; warpMagnifierTransform.Radius = m_RadiusSlider.Value / warpMagnifierTransform.Magnification; SVGWarpMagnifier WarpMagnifier = new SVGWarpMagnifier(warpMagnifierTransform); double opacity = e.Graphics.Opacity; e.Graphics.Opacity = m_OpacitySlider.Value; m_SVGPath.Render(e.Graphics, mtx, WarpMagnifier); e.Graphics.Opacity = opacity; // radius if (m_ShowSightCheckBox.IsChecked) { e.Graphics.DrawCircle(m_RadiusPen, center, m_RadiusSlider.Value); double crossSize = 10; e.Graphics.DrawLine(m_RadiusPen, new Point(center.X - crossSize, center.Y), new Point(center.X + crossSize, center.Y)); e.Graphics.DrawLine(m_RadiusPen, new Point(center.X, center.Y - crossSize), new Point(center.X, center.Y + crossSize)); } }
public SVGWarpMagnifier(WarpMagnifierTransform transform) : base(transform) { }