--- ray/src/hd/rhdobj.h 1998/08/19 17:45:24 3.1 +++ ray/src/hd/rhdobj.h 1998/12/31 12:57:06 3.5 @@ -21,7 +21,7 @@ #define DO_NCMDS 10 /* number of object display commands */ /* commands entered on stdin only */ -#define DO_INIT {"load","unload","xform","move","unmove","dup",\ +#define DO_INIT {"load","clear","xform","move","unmove","dup",\ "show","light","hide","object"} /******************************************************************* @@ -44,26 +44,32 @@ int dobj_command(cmd, args) : check/run object display command char *cmd, *args; : command name and argument string -Check to see if this is an object display command, and return the command -number after running it if it is, or -1 if it isn't. Error messages should +Check to see if this is an object display command, and return -1 if +it isn't. If it is a valid command that results in some visible +change, return non-zero, otherwise return 0. Error messages should be printed with error(COMMAND,err). double -dobj_trace(rorg, rdir) : check for ray intersection with objects +dobj_trace(nm, rorg, rdir) : check for ray intersection with objects +char nm[]; : object name (modified) FVECT rorg, rdir; : ray origin and direction -Check to see if the given ray intersects any of the visible objects, +Check to see if the given ray intersects the given object, returning the distance the ray traveled if it did, or FHUGE if it didn't. +If nm contains "*", then all visible objects are checked and the name +of the intersected object is returned, or "" if none. If nm is NULL, +then all visible objects are checked, but the name is not returned. -void +int dobj_render() : render visible objects to OpenGL Renders all display objects using OpenGL, assuming desired view has been set. This routine also assumes that the tone-mapping library is being used to set exposure, and it queries this information to -adjust light sources as necessary for illuminated objects. +adjust light sources as necessary for illuminated objects. Returns +the number of objects rendered. void