void WFACE::draw(WOBJECT *t,WCONTROL *c,ZBUFFER *zb) { WPOINT2 a[8]; double z_coord[8]; WSHORT intensity[8]; WPOINT normls[8]; int i,clr; for(i=0;i<verts;i++) { a[i] = t->vertex[vertex[i]].bd; if ((a[i].x<=0)||(a[i].x>=c->Win_W)||(a[i].y<=0)||(a[i].y>=c->Win_H)) return; // Clipping ? // TextXY(a[i].x,a[i].y,itoa(face->vertex[i],sss,10),WHITE); } switch(c->model) { case DSF: WFillPoly(verts,a,0); // Black WPoly(verts,a,t->textur.color1); break; case DSC: case FFC: shade = compute_shade(t,c); clr = color_number(t->textur.color1,shade); WFillPoly(verts,a,clr); break; case FFF: WPoly(verts,a,t->textur.color1); break; case ZBF: shade = compute_shade(t,c); clr = color_number(t->textur.color1,shade); for(i=0;i<verts;i++) z_coord[i]=t->vertex[vertex[i]].bod.z; zb->ZBF_Polygon(verts,a,z_coord,clr,c); break; case GRD: for(i=0;i<verts;i++) { intensity[i]=t->vertex[vertex[i]].intensity; z_coord[i]=t->vertex[vertex[i]].bod.z; } zb->GRD_Polygon(verts,a,z_coord,intensity,&t->textur,c); break; case PNG: for(i=0;i<verts;i++) { normls[i]=t->vertex[vertex[i]].normv; z_coord[i]=t->vertex[vertex[i]].bod.z; } zb->PNG_Polygon(verts,a,z_coord,normls,&t->textur,c); break; } }
ui_file_style cli_style_option::style () const { int fg = color_number (m_foreground); int bg = color_number (m_background); ui_file_style::intensity intensity = ui_file_style::NORMAL; for (int i = 0; i < ARRAY_SIZE (cli_intensities); ++i) { if (m_intensity == cli_intensities[i]) { intensity = (ui_file_style::intensity) i; break; } } return ui_file_style (fg, bg, intensity); }