The R Project SVN R

Rev

Rev 29959 | Rev 30980 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 29959 Rev 30129
Line 1357... Line 1357...
1357
/* contour(x, y, z, levels, labels, labcex, drawlabels, 
1357
/* contour(x, y, z, levels, labels, labcex, drawlabels, 
1358
 *         method, vfont, col = col, lty = lty, lwd = lwd)
1358
 *         method, vfont, col = col, lty = lty, lwd = lwd)
1359
 */
1359
 */
1360
SEXP do_contour(SEXP call, SEXP op, SEXP args, SEXP env)
1360
SEXP do_contour(SEXP call, SEXP op, SEXP args, SEXP env)
1361
{
1361
{
1362
    SEXP oargs, c, x, y, z, vfont, col, lty, lwd, labels;
1362
    SEXP oargs, c, x, y, z, vfont, col, rawcol, lty, lwd, labels;
1363
    int i, j, nx, ny, nc, ncol, nlty, nlwd;
1363
    int i, j, nx, ny, nc, ncol, nlty, nlwd;
1364
    int ltysave, colsave, lwdsave;
1364
    int ltysave, colsave, lwdsave;
1365
    double cexsave;
1365
    double cexsave;
1366
    double atom, zmin, zmax;
1366
    double atom, zmin, zmax;
1367
    char *vmax, *vmax0;
1367
    char *vmax, *vmax0;
Line 1422... Line 1422...
1422
	typeface = INTEGER(vfont)[0];
1422
	typeface = INTEGER(vfont)[0];
1423
	fontindex = INTEGER(vfont)[1];
1423
	fontindex = INTEGER(vfont)[1];
1424
    }
1424
    }
1425
    args = CDR(args);
1425
    args = CDR(args);
1426
 
1426
 
-
 
1427
    rawcol = CAR(args);
1427
    PROTECT(col = FixupCol(CAR(args), NA_INTEGER));
1428
    PROTECT(col = FixupCol(rawcol, NA_INTEGER));
1428
    ncol = length(col);
1429
    ncol = length(col);
1429
    args = CDR(args);
1430
    args = CDR(args);
1430
 
1431
 
1431
    PROTECT(lty = FixupLty(CAR(args), Rf_gpptr(dd)->lty));
1432
    PROTECT(lty = FixupLty(CAR(args), Rf_gpptr(dd)->lty));
1432
    nlty = length(lty);
1433
    nlty = length(lty);
Line 1512... Line 1513...
1512
    for (i = 0; i < nc; i++) {
1513
    for (i = 0; i < nc; i++) {
1513
	vmax = vmaxget();
1514
	vmax = vmaxget();
1514
	Rf_gpptr(dd)->lty = INTEGER(lty)[i % nlty];
1515
	Rf_gpptr(dd)->lty = INTEGER(lty)[i % nlty];
1515
	if (Rf_gpptr(dd)->lty == NA_INTEGER)
1516
	if (Rf_gpptr(dd)->lty == NA_INTEGER)
1516
	    Rf_gpptr(dd)->lty = ltysave;
1517
	    Rf_gpptr(dd)->lty = ltysave;
1517
	Rf_gpptr(dd)->col = INTEGER(col)[i % ncol];
-
 
1518
	if (Rf_gpptr(dd)->col == NA_INTEGER)
1518
	if (isNAcol(rawcol, i, ncol))
1519
	    Rf_gpptr(dd)->col = colsave;
1519
	    Rf_gpptr(dd)->col = colsave;
-
 
1520
	else 
-
 
1521
	    Rf_gpptr(dd)->col = INTEGER(col)[i % ncol];
1520
	Rf_gpptr(dd)->lwd = REAL(lwd)[i % nlwd];
1522
	Rf_gpptr(dd)->lwd = REAL(lwd)[i % nlwd];
1521
	if (Rf_gpptr(dd)->lwd == NA_REAL)
1523
	if (Rf_gpptr(dd)->lwd == NA_REAL)
1522
	    Rf_gpptr(dd)->lwd = lwdsave;
1524
	    Rf_gpptr(dd)->lwd = lwdsave;
1523
	Rf_gpptr(dd)->cex = labcex;
1525
	Rf_gpptr(dd)->cex = labcex;
1524
	contour(x, nx, y, ny, z, REAL(c)[i], labels, i,
1526
	contour(x, nx, y, ny, z, REAL(c)[i], labels, i,