www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

gputriangle.cpp (1334B)


      1 #include "all_includes.hh"
      2 
      3 GPUTriangle::GPUTriangle(Vertex left, Vertex top, Vertex right, unsigned char _r, unsigned char _g, unsigned char _b)
      4 	: c(left, top, right), r(_r), g(_g), b(_b), vnormal(c.normalizedNormal()) {
      5 }
      6 
      7 GPUTriangle::GPUTriangle(Triangle _c, unsigned char _r, unsigned char _g, unsigned char _b)
      8 	: c(_c), r(_r), g(_g), b(_b), vnormal(c.normalizedNormal()) {
      9 }
     10 
     11 void GPUTriangle::display() const {
     12 	View::setColor(r,g,b);
     13 	glNormal3d(vnormal.x,vnormal.y,vnormal.z);
     14 	glVertex3d(c[LEFT].x,c[LEFT].y,c[LEFT].z);
     15 	glVertex3d(c[TOP].x,c[TOP].y,c[TOP].z);
     16 	glVertex3d(c[RIGHT].x,c[RIGHT].y,c[RIGHT].z);
     17 }
     18 
     19 void GPUTriangle::displayNormal() const {
     20 	glColor3ub(255,255,0);
     21 	// Vertex v = (c[0] + c[1] + c[2]) / 3;
     22 	// glVertex3d(v.x,v.y,v.z);
     23 	// glVertex3d(v.x+vnormal.x*50,v.y+vnormal.y*50,v.z+vnormal.z*50);
     24 
     25 	glColor3ub(255,0,0);
     26 	Vertex v = (c[LEFT]*8 + c[TOP] + c[RIGHT]) / 10;//(c[0] + c[1] + c[2]) / 3;
     27 	glVertex3d(v.x,v.y,v.z);
     28 	glVertex3d(v.x+vnormal.x*50,v.y+vnormal.y*50,v.z+vnormal.z*50);
     29 
     30 	glColor3ub(0,255,0);
     31 	v = (c[LEFT] + c[TOP]*8 + c[RIGHT]) / 10;
     32 	glVertex3d(v.x,v.y,v.z);
     33 	glVertex3d(v.x+vnormal.x*50,v.y+vnormal.y*50,v.z+vnormal.z*50);
     34 
     35 	glColor3ub(0,0,255);
     36 	v = (c[LEFT] + c[TOP] + c[RIGHT]*8) / 10;
     37 	glVertex3d(v.x,v.y,v.z);
     38 	glVertex3d(v.x+vnormal.x*50,v.y+vnormal.y*50,v.z+vnormal.z*50);
     39 }