This commit is contained in:
David Tschumperlé 2018-06-15 08:46:10 +02:00 committed by Stefan Haustein
parent bf7a2ef987
commit 6163781659

View file

@ -46729,12 +46729,14 @@ namespace cimg_library_suffixed {
x0 = (int)projections(n0,0), y0 = (int)projections(n0,1), x0 = (int)projections(n0,0), y0 = (int)projections(n0,1),
x1 = (int)projections(n1,0), y1 = (int)projections(n1,1), x1 = (int)projections(n1,0), y1 = (int)projections(n1,1),
x2 = (int)projections(n2,0), y2 = (int)projections(n2,1), x2 = (int)projections(n2,0), y2 = (int)projections(n2,1),
x3 = (int)projections(n3,0), y3 = (int)projections(n3,1); x3 = (int)projections(n3,0), y3 = (int)projections(n3,1),
xc = (x0 + x1 + x2 + x3)/4, yc = (y0 + y1 + y2 + y3)/4;
const float const float
z0 = vertices(n0,2) + Z + _focale, z0 = vertices(n0,2) + Z + _focale,
z1 = vertices(n1,2) + Z + _focale, z1 = vertices(n1,2) + Z + _focale,
z2 = vertices(n2,2) + Z + _focale, z2 = vertices(n2,2) + Z + _focale,
z3 = vertices(n3,2) + Z + _focale; z3 = vertices(n3,2) + Z + _focale,
zc = (z0 + z1 + z2 + z3)/4;
switch (render_type) { switch (render_type) {
case 0 : case 0 :
@ -46810,13 +46812,19 @@ namespace cimg_library_suffixed {
case 4 : { case 4 : {
const float const float
lightprop0 = lightprops(n0), lightprop1 = lightprops(n1), lightprop0 = lightprops(n0), lightprop1 = lightprops(n1),
lightprop2 = lightprops(n2), lightprop3 = lightprops(n3); lightprop2 = lightprops(n2), lightprop3 = lightprops(n3),
lightpropc = (lightprop0 + lightprop1 + lightprop2 + lightprop2)/4;
if (zbuffer) if (zbuffer)
draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,lightprop0,lightprop1,lightprop2,opacity). draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,xc,yc,zc,pcolor,lightprop0,lightprop1,lightpropc,opacity).
draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,pcolor,lightprop0,lightprop2,lightprop3,opacity); draw_triangle(zbuffer,x1,y1,z1,x2,y2,z2,xc,yc,zc,pcolor,lightprop1,lightprop2,lightpropc,opacity).
draw_triangle(zbuffer,x2,y2,z2,x3,y3,z3,xc,yc,zc,pcolor,lightprop2,lightprop3,lightpropc,opacity).
draw_triangle(zbuffer,x3,y3,z3,x0,y0,z0,xc,yc,zc,pcolor,lightprop3,lightprop0,lightpropc,opacity);
else else
draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,lightprop0,lightprop1,lightprop2,opacity). draw_triangle(x0,y0,x1,y1,xc,yc,pcolor,lightprop0,lightprop1,lightpropc,opacity).
draw_triangle(x0,y0,x2,y2,x3,y3,pcolor,lightprop0,lightprop2,lightprop3,opacity); draw_triangle(x1,y1,x2,y2,xc,yc,pcolor,lightprop1,lightprop2,lightpropc,opacity).
draw_triangle(x2,y2,x3,y3,xc,yc,pcolor,lightprop2,lightprop3,lightpropc,opacity).
draw_triangle(x3,y3,x0,y0,xc,yc,pcolor,lightprop3,lightprop0,lightpropc,opacity);
#ifdef cimg_use_board #ifdef cimg_use_board
if (pboard) { if (pboard) {
board.setPenColorRGBi((unsigned char)(color[0]), board.setPenColorRGBi((unsigned char)(color[0]),
@ -46837,13 +46845,19 @@ namespace cimg_library_suffixed {
lx0 = (unsigned int)lightprops(n0,0), ly0 = (unsigned int)lightprops(n0,1), lx0 = (unsigned int)lightprops(n0,0), ly0 = (unsigned int)lightprops(n0,1),
lx1 = (unsigned int)lightprops(n1,0), ly1 = (unsigned int)lightprops(n1,1), lx1 = (unsigned int)lightprops(n1,0), ly1 = (unsigned int)lightprops(n1,1),
lx2 = (unsigned int)lightprops(n2,0), ly2 = (unsigned int)lightprops(n2,1), lx2 = (unsigned int)lightprops(n2,0), ly2 = (unsigned int)lightprops(n2,1),
lx3 = (unsigned int)lightprops(n3,0), ly3 = (unsigned int)lightprops(n3,1); lx3 = (unsigned int)lightprops(n3,0), ly3 = (unsigned int)lightprops(n3,1),
lxc = (lx0 + lx1 + lx2 + lx3)/4, lyc = (ly0 + ly1 + ly2 + ly3)/4;
if (zbuffer) if (zbuffer)
draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,light_texture,lx0,ly0,lx1,ly1,lx2,ly2,opacity). draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,xc,yc,zc,pcolor,light_texture,lx0,ly0,lx1,ly1,lxc,lyc,opacity).
draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,pcolor,light_texture,lx0,ly0,lx2,ly2,lx3,ly3,opacity); draw_triangle(zbuffer,x1,y1,z1,x2,y2,z2,xc,yc,zc,pcolor,light_texture,lx1,ly1,lx2,ly2,lxc,lyc,opacity).
draw_triangle(zbuffer,x2,y2,z2,x3,y3,z3,xc,yc,zc,pcolor,light_texture,lx2,ly2,lx3,ly3,lxc,lyc,opacity).
draw_triangle(zbuffer,x3,y3,z3,x0,y0,z0,xc,yc,zc,pcolor,light_texture,lx3,ly3,lx0,ly0,lxc,lyc,opacity);
else else
draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,light_texture,lx0,ly0,lx1,ly1,lx2,ly2,opacity). draw_triangle(x0,y0,x1,y1,xc,yc,pcolor,light_texture,lx0,ly0,lx1,ly1,lxc,lyc,opacity).
draw_triangle(x0,y0,x2,y2,x3,y3,pcolor,light_texture,lx0,ly0,lx2,ly2,lx3,ly3,opacity); draw_triangle(x1,y1,x2,y2,xc,yc,pcolor,light_texture,lx1,ly1,lx2,ly2,lxc,lyc,opacity).
draw_triangle(x2,y2,x3,y3,xc,yc,pcolor,light_texture,lx2,ly2,lx3,ly3,lxc,lyc,opacity).
draw_triangle(x3,y3,x0,y0,xc,yc,pcolor,light_texture,lx3,ly3,lx0,ly0,lxc,lyc,opacity);
#ifdef cimg_use_board #ifdef cimg_use_board
if (pboard) { if (pboard) {
const float const float