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(); } }