376 |
|
VIEW nv = ourview; |
377 |
|
double d; |
378 |
|
/* get new view origin */ |
379 |
< |
if (!sscanvec(s, nv.vp)) { |
380 |
< |
int x, y; |
379 |
> |
if (sscanf(s, "%lf %lf", &d, &d) == 1) { |
380 |
> |
/* just moving some distance */ |
381 |
> |
VSUM(nv.vp, nv.vp, nv.vdir, d); |
382 |
> |
} else if (!sscanvec(s, nv.vp)) { |
383 |
> |
int x, y; /* need to pick origin */ |
384 |
|
RAY thisray; |
385 |
|
if (dev->getcur == NULL) |
386 |
|
return; |
399 |
|
} |
400 |
|
if (thisray.rod < 0.0) /* don't look through other side */ |
401 |
|
flipsurface(&thisray); |
402 |
< |
VSUM(nv.vp, thisray.rop, thisray.ron, 2.0*FTINY); |
402 |
> |
VSUM(nv.vp, thisray.rop, thisray.ron, 20.0*FTINY); |
403 |
|
VCOPY(nv.vdir, thisray.ron); |
404 |
|
} else if (!sscanvec(sskip2(s,3), nv.vdir) || normalize(nv.vdir) == 0.0) |
405 |
|
VCOPY(nv.vdir, ourview.vdir); |