ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rhdobj.c
(Generate patch)

Comparing ray/src/hd/rhdobj.c (file contents):
Revision 3.7 by gwlarson, Fri Dec 18 11:06:45 1998 UTC vs.
Revision 3.9 by gwlarson, Thu Dec 31 12:57:06 1998 UTC

# Line 416 | Line 416 | memerr:
416   }
417  
418  
419 < static int
419 > static
420   cmderror(cn, err)               /* report command error */
421   int     cn;
422   char    *err;
423   {
424          sprintf(errmsg, "%s: %s", rhdcmd[cn], err);
425          error(COMMAND, errmsg);
426        return(cn);
426   }
427  
428  
# Line 432 | Line 431 | dobj_command(cmd, args)                /* run object display command
431   char    *cmd;
432   register char   *args;
433   {
434 +        int     somechange = 0;
435          int     cn, na, doxfm;
436          register int    nn;
437          char    *alist[MAXAC+1], *nm;
# Line 459 | Line 459 | register char  *args;
459                          dobj_load(alist[0], alist[0]);
460                  else if (na == 2)
461                          dobj_load(alist[0], alist[1]);
462 <                else
463 <                        return(cmderror(cn, "need octree [name]"));
462 >                else {
463 >                        cmderror(cn, "need octree [name]");
464 >                        return(0);
465 >                }
466                  break;
467          case DO_UNLOAD:                         /* clear an object */
468                  if (na > 1) goto toomany;
469                  if (na && alist[0][0] == '*')
470 <                        dobj_cleanup();
470 >                        somechange += dobj_cleanup();
471                  else
472 <                        dobj_unload(na ? alist[0] : curname);
472 >                        somechange += dobj_unload(na ? alist[0] : curname);
473                  break;
474          case DO_XFORM:                          /* transform object */
475          case DO_MOVE:
# Line 476 | Line 478 | register char  *args;
478                  } else {
479                          nm = curname; nn = 0;
480                  }
481 <                if (cn == DO_MOVE && nn >= na)
482 <                        return(cmderror(cn, "missing transform"));
483 <                dobj_xform(nm, cn==DO_MOVE, na-nn, alist+nn);
481 >                if (cn == DO_MOVE && nn >= na) {
482 >                        cmderror(cn, "missing transform");
483 >                        return(0);
484 >                }
485 >                somechange += dobj_xform(nm, cn==DO_MOVE, na-nn, alist+nn);
486                  break;
487          case DO_UNMOVE:                         /* undo last transform */
488 <                dobj_unmove();
488 >                somechange += dobj_unmove();
489                  break;
490          case DO_OBJECT:                         /* print object statistics */
491                  if (dobj_putstats(na ? alist[0] : curname, sstdout))
# Line 495 | Line 499 | register char  *args;
499                                  break;
500                  switch (nn) {
501                  case 0:
502 <                        return(cmderror(cn, "need new object name"));
502 >                        cmderror(cn, "need new object name");
503 >                        return(0);
504                  case 1:
505                          nm = curname;
506                          break;
# Line 508 | Line 513 | register char  *args;
513                  if (!dobj_dup(nm, alist[nn-1]))
514                          break;
515                  if (na > nn)
516 <                        dobj_xform(curname, 1, na-nn, alist+nn);
516 >                        somechange += dobj_xform(curname, 1, na-nn, alist+nn);
517                  else
518                          curobj->drawcode = DO_HIDE;
519                  savedxf(curobj);
# Line 518 | Line 523 | register char  *args;
523          case DO_HIDE:
524                  if (na > 1) goto toomany;
525                  dobj_lighting(na ? alist[0] : curname, cn);
526 +                somechange++;
527                  break;
528          default:
529                  error(CONSISTENCY, "bad command id in dobj_command");
530          }
531 <        dev_view(&odev.v);                      /* redraw */
526 <        return(cn);
531 >        return(somechange);
532   toomany:
533          return(cmderror(cn, "too many arguments"));
534   }
# Line 571 | Line 576 | char   *oct, *nam;
576          op->xfav[op->xfac=0] = NULL;
577                                          /* load octree into display list */
578          dolights = 0;
579 +        domats = 1;
580          op->listid = rgl_octlist(fpath, op->center, &op->radius);
581                                          /* start rtrace */
582          rtargv[RTARGC-1] = fpath;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines