private void VisitPath(IGraphicsPathIteratorFP iterator)
        {
            if (iterator != null)
            {
                iterator.Begin();
                int j = 0;
                for (int i = 0; i < _fromPath._cmdsSize; i++)
                {
                    switch (_fromPath._cmds[i])
                    {
                    case CMD_NOP:
                        break;

                    case CMD_MOVETO:
                        iterator.MoveTo(_fromPath._pnts[j++]);
                        break;

                    case CMD_LINETO:
                        iterator.LineTo(_fromPath._pnts[j++]);
                        break;

                    case CMD_QCURVETO:
                        iterator.QuadTo(_fromPath._pnts[j++],
                                        _fromPath._pnts[j++]);
                        break;

                    case CMD_CCURVETO:
                        iterator.CurveTo(_fromPath._pnts[j++],
                                         _fromPath._pnts[j++], _fromPath._pnts[j++]);
                        break;

                    case CMD_CLOSE:
                        iterator.Close();
                        break;

                    default:
                        return;
                    }
                }
                iterator.End();
            }
        }
        private void VisitPath(IGraphicsPathIteratorFP iterator)
        {
            if (iterator != null)
            {

                iterator.Begin();
                int j = 0;
                for (int i = 0; i < _fromPath._cmdsSize; i++)
                {
                    switch (_fromPath._cmds[i])
                    {

                        case CMD_NOP:
                            break;

                        case CMD_MOVETO:
                            iterator.MoveTo(_fromPath._pnts[j++]);
                            break;

                        case CMD_LINETO:
                            iterator.LineTo(_fromPath._pnts[j++]);
                            break;

                        case CMD_QCURVETO:
                            iterator.QuadTo(_fromPath._pnts[j++],
                                    _fromPath._pnts[j++]);
                            break;

                        case CMD_CCURVETO:
                            iterator.CurveTo(_fromPath._pnts[j++],
                                    _fromPath._pnts[j++], _fromPath._pnts[j++]);
                            break;

                        case CMD_CLOSE:
                            iterator.Close();
                            break;

                        default:
                            return;

                    }
                }
                iterator.End();
            }
        }