home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_09_12
/
9n12044a
< prev
next >
Wrap
Text File
|
1991-10-14
|
3KB
|
85 lines
#include "solid.h"
/* global variables */
struct obj_defn *defn_ptr[MAX_TYPES] = {NULL, NULL,
NULL, NULL}; /* pointers to object definitions */
struct solid_obj *obj_first = (struct solid_obj *)NULL;
/* pointer to first object in scene */
int sweeps = 20; /* number of sweeps to construct
sphere; must be even */
int facets = 36; /* number of facets per sweep */
float proj_z = 100.0; /* distance between viewer and
model */
float proj_d = 10.0; /* distance between viewer and
picture plane */
BOOL init_screen = FALSE; /* indicates whether screen
is initialized */
int maxx, maxy; /* maximum x and y screen coords */
float border = 0.05; /* fraction of graphics screen to
use as a border when maximizing image size */
float screen_x_min, screen_x_max, screen_y_min,
screen_y_max; /* minimum and maximum coordinates
used to maximize image size */
int color_bkgd = BLUE, color_visible = RED,
color_hidden = WHITE; /* color selections for
background, visible lines, hidden lines */
enum LINESTYLE disp_hidden = LINE_NOSHOW; /* how to
display hidden lines: don't display, broken line,
solid line */
float light_x, light_y, light_z; /* light source
coordinates */
int render_opt = TRUE; /* rendering option */
void main(void)
{
struct solid_obj *obj_ptr;
int gdriver = DETECT, gmode;
if (registerbgidriver(EGAVGA_driver) < 0)
quit(ERR_DRIVER, __FILE__, __LINE__);
initgraph(&gdriver, &gmode, "");
setbkcolor(color_bkgd);
setcolor(color_visible);
maxx = getmaxx();
maxy = getmaxy();
outtext("Copyright (c) 1991 by Saul Mooallem");
light_x = 300.0;
light_y = 300.0;
light_z = 300.0;
obj_ptr = make_object(CUBE_OBJ); /* construct
instance */
obj_ptr->color = YELLOW;
obj_ptr->scale = 7.0; /* scaling factor */
obj_ptr->xlate[0] = 20.0; /* translation */
obj_ptr->xlate[1] = -20.0;
obj_ptr->xlate[2] = 15.0;
obj_ptr->YAW = PI / 8.0; /* rotation */
obj_ptr->ROLL = PI / 16.0;
obj_ptr->PITCH = 3.0 * PI / 16.0;
obj_ptr = make_object(SPHERE_OBJ);
obj_ptr->color = RED;
obj_ptr->scale = 30.0;
obj_ptr->YAW = PI / 4.0;
obj_ptr->ROLL = 3 * PI / 4.0;
obj_ptr->PITCH = 3.0 * PI / 8.0;
obj_ptr->xlate[1] = -12.0;
obj_ptr = make_object(CYLIND_OBJ);
obj_ptr->color = YELLOW;
obj_ptr->scale = 6.0;
obj_ptr->YAW = PI / 4.0;
obj_ptr->ROLL = PI / 4.0;
obj_ptr->PITCH = PI / 4.0;
obj_ptr->xlate[0] = -8.0;
obj_ptr->xlate[1] = 8.0;
obj_ptr->xlate[2] = 25.0;
obj_ptr = make_object(CONE_OBJ);
obj_ptr->color = RED;
obj_ptr->scale = 12.0;
obj_ptr->YAW = 3 * PI / 4.0;
obj_ptr->ROLL = 7 * PI / 4.0;
obj_ptr->PITCH = PI / 4.0;
obj_ptr->xlate[0] = 15.0;
obj_ptr->xlate[1] = 8.0;
show_scene();
getch();
closegraph();
}