/* * whether to perform antialiasing via sub-pixel sampling */ static int antialias = 0; static int both_sides = 0; struct bu_vls occlusion_objects = BU_VLS_INIT_ZERO; struct rt_i *occlusion_rtip = NULL; struct application **occlusion_apps; /* Viewing module specific "set" variables */ struct bu_structparse view_parse[] = { {"%d", 1, "detect_regions", bu_byteoffset(detect_regions), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "dr", bu_byteoffset(detect_regions), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "detect_distance", bu_byteoffset(detect_distance), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "dd", bu_byteoffset(detect_distance), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "detect_normals", bu_byteoffset(detect_normals), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "dn", bu_byteoffset(detect_normals), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "detect_ids", bu_byteoffset(detect_ids), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "di", bu_byteoffset(detect_ids), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 3, "foreground", bu_byteoffset(fgcolor), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 3, "fg", bu_byteoffset(fgcolor), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 3, "background", bu_byteoffset(bgcolor), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 3, "bg", bu_byteoffset(bgcolor), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "overlay", bu_byteoffset(overlay), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "ov", bu_byteoffset(overlay), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "blend", bu_byteoffset(blend), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}, {"%d", 1, "bl", bu_byteoffset(blend), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL},
{"%d", 1, "debug", SHDR_O(fire_debug), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "flicker", SHDR_O(fire_flicker), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "stretch", SHDR_O(fire_stretch), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "lacunarity", SHDR_O(noise_lacunarity), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "H", SHDR_O(noise_h_val), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "octaves", SHDR_O(noise_octaves), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 3, "scale", SHDR_O(noise_size), bu_mm_cvt }, {"%f", 3, "vscale", SHDR_AO(noise_vscale), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 3, "delta", SHDR_AO(noise_delta), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 3, "max", SHDR_AO(fire_max), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 3, "min", SHDR_AO(fire_min), BU_STRUCTPARSE_FUNC_NULL }, {"", 0, (char *)0, 0, BU_STRUCTPARSE_FUNC_NULL } }; struct bu_structparse fire_parse_tab[] = { {"i", bu_byteoffset(fire_print_tab[0]), "fire_print_tab", 0, BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "f", SHDR_O(fire_flicker), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "st", SHDR_O(fire_stretch), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "l", SHDR_O(noise_lacunarity), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "H", SHDR_O(noise_h_val), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "o", SHDR_O(noise_octaves), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 1, "s", SHDR_O(noise_size), bu_mm_cvt }, {"%f", 3, "v", SHDR_AO(noise_vscale), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 3, "vs", SHDR_AO(noise_vscale), BU_STRUCTPARSE_FUNC_NULL }, {"%f", 3, "d", SHDR_AO(noise_delta), BU_STRUCTPARSE_FUNC_NULL }, {"", 0, (char *)0, 0, BU_STRUCTPARSE_FUNC_NULL } }; HIDDEN int fire_setup(register struct region *rp, struct bu_vls *matparm, char **dpp, struct mfuncs *mfp, struct rt_i *rtip), fire_render(struct application *ap, struct partition *pp, struct shadework *swp, char *dp); HIDDEN void fire_print(register struct region *rp, char *dp), fire_free(char *cp);
#define SHDR_NULL ((struct gauss_specific *)0) #define SHDR_O(m) bu_offsetof(struct gauss_specific, m) /* description of how to parse/print the arguments to the shader * There is at least one line here for each variable in the shader specific * structure above */ struct bu_structparse gauss_print_tab[] = { {"%g", 1, "sigma", SHDR_O(gauss_sigma), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }, {"", 0, (char *)0, 0, BU_STRUCTPARSE_FUNC_NULL, NULL, NULL } }; struct bu_structparse gauss_parse_tab[] = { {"%p", 1, "gauss_print_tab", bu_byteoffset(gauss_print_tab[0]), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }, {"%g", 1, "s", SHDR_O(gauss_sigma), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }, {"", 0, (char *)0, 0, BU_STRUCTPARSE_FUNC_NULL, NULL, NULL } }; HIDDEN int gauss_setup(register struct region *rp, struct bu_vls *matparm, void **dpp, const struct mfuncs *mfp, struct rt_i *rtip); HIDDEN int gauss_render(struct application *ap, const struct partition *pp, struct shadework *swp, void *dp); HIDDEN void gauss_print(register struct region *rp, void *dp); HIDDEN void gauss_free(void *cp); /* The "mfuncs" structure defines the external interface to the shader. * Note that more than one shader "name" can be associated with a given * shader by defining more than one mfuncs struct in this array. * See sh_phong.c for an example of building more than one shader "name" * from a set of source functions. There you will find that "glass" "mirror"
}; #define SHDR_NULL ((struct toon_specific *)0) #define SHDR_O(m) bu_offsetof(struct toon_specific, m) /* description of how to parse/print the arguments to the shader * There is at least one line here for each variable in the shader specific * structure above */ struct bu_structparse toon_print_tab[] = { {"", 0, (char *)0, 0, BU_STRUCTPARSE_FUNC_NULL, NULL, NULL } }; struct bu_structparse toon_parse_tab[] = { {"%p", 1, "toon_print_tab", bu_byteoffset(toon_print_tab[0]), BU_STRUCTPARSE_FUNC_NULL, NULL, NULL }, {"", 0, (char *)0, 0, BU_STRUCTPARSE_FUNC_NULL, NULL, NULL } }; HIDDEN int toon_setup(register struct region *rp, struct bu_vls *matparm, void **dpp, const struct mfuncs *mfp, struct rt_i *rtip); HIDDEN int toon_render(struct application *ap, const struct partition *pp, struct shadework *swp, void *dp); HIDDEN void toon_print(register struct region *rp, void *dp); HIDDEN void toon_free(void *cp); /* The "mfuncs" structure defines the external interface to the shader. * Note that more than one shader "name" can be associated with a given * shader by defining more than one mfuncs struct in this array. * See sh_phong.c for an example of building more than one shader "name" * from a set of source functions. There you will find that "glass" "mirror" * and "plastic" are all names for the same shader with different default
extern FILE *outfp; extern point_t viewbase_model; /* lower_left of viewing plane */ extern mat_t view2model; extern fastf_t viewsize; extern int width; extern int height; int numreflect = DEFAULTREFLECT; /* max number of reflections */ /* Viewing module specific "set" variables */ struct bu_structparse view_parse[] = { #if !defined(__alpha) /* XXX Alpha does not support this initialization! */ {"%d", 1, "maxreflect", bu_byteoffset(numreflect), BU_STRUCTPARSE_FUNC_NULL }, #endif {"", 0, (char *)0, 0, BU_STRUCTPARSE_FUNC_NULL } }; const char title[] = "RTRAD"; const char usage[] = "\ Usage: rtrad [options] model.g objects... >file.rad\n\ Options:\n\ -s # Grid size in pixels, default 512\n\ -a Az Azimuth in degrees\n\ -e Elev Elevation in degrees\n\ -M Read matrix, cmds on stdin\n\ -o file.rad Output file name, else stdout\n\ -x # Set librt debug flags\n\ ";