Example #1
0
        public override uint Vertex(out double x, out double y)
        {
            x = 0;
            y = 0;
            uint PathAndFlags = (uint)Path.EPathCommands.LineTo;

            switch (m_idx)
            {
            case 0:
                if (m_vertex == 0)
                {
                    PathAndFlags = (uint)Path.EPathCommands.MoveTo;
                }
                if (m_vertex >= 4)
                {
                    PathAndFlags = (uint)Path.EPathCommands.Stop;
                }
                x = m_vx[m_vertex];
                y = m_vy[m_vertex];
                m_vertex++;
                break;

            case 1:
                if (m_vertex == 0)
                {
                    PathAndFlags = (uint)Path.EPathCommands.MoveTo;
                }
                if (m_vertex >= 4)
                {
                    PathAndFlags = (uint)Path.EPathCommands.Stop;
                }
                x = m_vx[m_vertex];
                y = m_vy[m_vertex];
                m_vertex++;
                break;

            case 2:
                PathAndFlags = m_text_poly.Vertex(out x, out y);

                //return (uint)Path.path_commands_e.path_cmd_stop;
                break;

            case 3:
            case 4:
                PathAndFlags = m_ellipse.Vertex(out x, out y);
                break;

            case 5:
                PathAndFlags = m_storage.Vertex(out x, out y);
                break;

            default:
                PathAndFlags = (uint)Path.EPathCommands.Stop;
                break;
            }

            if (!Path.IsStop(PathAndFlags))
            {
                GetTransform().InverseTransform(ref x, ref y);
            }

            return(PathAndFlags);
        }