void draw_broom(float radius, float dx, float dy) { // save geom to file if needed int save_render = 0; if (!file_exists(geom_file)) { save_render = 1; srVertex_set_save_file(geom_file); srEnable(1); glPushMatrix(); glLoadIdentity(); } broom_radius = radius; broom_height = radius * 50.0; brush_radius = radius * 5.0; brush_height = broom_height/3.0; glPushMatrix(); glTranslatef(dx, dy, 0); srColor3rv(broom_colors[1]); glRotatef(-25, 1.0, 0, 0); // draw broom handle glTranslatef(0, 0, -broom_height * 1.0/3.0); srDrawCylinder(broom_radius, broom_radius, broom_height, broom_slices, broom_stacks); // draw broom brushes srColor3rv(broom_colors[0]); glRotatef(180, 0, 1.0, 0); srDrawCylinder(broom_radius, brush_radius, brush_height, broom_slices, broom_stacks); glPopMatrix(); // finish geometry save if (save_render) { srEnable(0); } return; }
void initHardware(void) { /* disable watchdog */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* clock full speed */ clock_prescale_set(clock_div_1); /* Hardware Initialization */ vrefInit(); srInit(); srClear(); srEnable(); USB_Init(); }