void SoftwareRendererImp::draw_element(SVGElement* element) { // Task 4 (part 1): // Modify this to implement the transformation stack switch (element->type) { case POINT: draw_point(static_cast<Point&>(*element)); break; case LINE: draw_line(static_cast<Line&>(*element)); break; case POLYLINE: draw_polyline(static_cast<Polyline&>(*element)); break; case RECT: draw_rect(static_cast<Rect&>(*element)); break; case POLYGON: draw_polygon(static_cast<Polygon&>(*element)); break; case ELLIPSE: draw_ellipse(static_cast<Ellipse&>(*element)); break; case IMAGE: draw_image(static_cast<Image&>(*element)); break; case GROUP: draw_group(static_cast<Group&>(*element)); break; default: break; } }
void GLUI_RadioGroup::draw( int x, int y ) { if ( NOT can_draw() ) return; draw_group(false); }
void GLUI_RadioGroup::set_int_val( int new_val ) { if ( new_val == int_val ) return; set_selected( new_val ); draw_group( true ); output_live(true); }
/*-----------------------------begin_group----------------------------------*/ void begin_group (char *name, int x, int y, int w, int h, YT_COLOR color) { if (name != NULL) { draw_group (name, x, y, w, h, color); } YGetOrigin (&x0group, &y0group); CALCWH (x, y); YSetOrigin (x0group + x, y0group + y); }
void SoftwareRendererImp::draw_element( SVGElement* element ) { // Task 4 (part 1): // Modify this to implement the transformation stack //std::cout << element->transform << endl; //transform svg elements switch(element->type) { case POINT: { transformation = transformation * (element->transform); draw_point(static_cast<Point&>(*element)); transformation = transformation * (element->transform.inv()); break; } case LINE: { transformation = transformation * (element->transform); draw_line(static_cast<Line&>(*element)); transformation = transformation * (element->transform.inv()); break; } case POLYLINE: { transformation = transformation * (element->transform); draw_polyline(static_cast<Polyline&>(*element)); transformation = transformation * (element->transform.inv()); break; } case RECT: { transformation = transformation * (element->transform); draw_rect(static_cast<Rect&>(*element)); transformation = transformation * (element->transform.inv()); break; } case POLYGON: { transformation = transformation * (element->transform); draw_polygon(static_cast<Polygon&>(*element)); transformation = transformation * (element->transform.inv()); break; } case ELLIPSE: { transformation = transformation * (element->transform); draw_ellipse(static_cast<Ellipse&>(*element)); transformation = transformation * (element->transform.inv()); break; } case IMAGE: { transformation = transformation * (element->transform); draw_image(static_cast<Image&>(*element)); transformation = transformation * (element->transform.inv()); break; } case GROUP: { transformation = transformation * (element->transform); draw_group(static_cast<Group&>(*element)); transformation = transformation * (element->transform.inv()); break; } default: break; } }