예제 #1
0
        private void OnCanvasPrePaint(NCanvasPaintEventArgs args)
        {
            args.PaintVisitor.PushTransform(NMatrix.CreateTranslationMatrix(10, 10));

            // input path interiors
            if (m_ShowInputPathInteriors.Checked)
            {
                args.PaintVisitor.ClearStyles();
                args.PaintVisitor.SetFill(NColor.LightBlue);

                for (int i = 0; i < m_InputPaths.Count; i++)
                {
                    args.PaintVisitor.PaintPath(m_InputPaths[i]);
                }
            }

            // input path outlines
            if (m_ShowInputPathOutlines.Checked)
            {
                args.PaintVisitor.ClearStyles();
                args.PaintVisitor.SetStroke(NColor.Black, 1);

                for (int i = 0; i < m_InputPaths.Count; i++)
                {
                    args.PaintVisitor.PaintPath(m_InputPaths[i]);
                }
            }

            // output path interior
            if (m_ShowOutputPathInterior.Checked)
            {
                args.PaintVisitor.ClearStyles();
                args.PaintVisitor.SetFill(new NColor(NColor.LightCoral, 128));
                args.PaintVisitor.PaintPath(m_OutputPath);
            }

            // output path outline
            if (m_ShowOutputPathOutline.Checked)
            {
                args.PaintVisitor.ClearStyles();
                args.PaintVisitor.SetStroke(NColor.Black, 2);
                args.PaintVisitor.PaintPath(m_OutputPath);
            }

            args.PaintVisitor.PopTransform();
        }