Ejemplo n.º 1
0
    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);
     
}
Ejemplo n.º 4
0
/*-----------------------------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;
  }

}