void Viewer::RenderMesh() { glBegin(GL_TRIANGLES); for(size_t fi = 0; fi < faces.size(); fi++) { Eigen::Vector3d v0 = vertices[faces[fi][0]]; Eigen::Vector3d v1 = vertices[faces[fi][1]]; Eigen::Vector3d v2 = vertices[faces[fi][2]]; Eigen::Vector3d e0 = (v1 - v0).normalized(); Eigen::Vector3d e1 = (v2 - v0).normalized(); Eigen::Vector3d normal = e0.cross(e1); glNormal3( normal ); glVector3( v0 ); glVector3( v1 ); glVector3( v2 ); } glEnd(); }
void geometry_morph::decorate() { //targetGraph.draw(); if(octree) { HitResult res; octree->intersectRay(ray, ray.thickness, false); octree->draw(0,1,0,1); // Draw ray glDisable(GL_LIGHTING); glLineWidth(10); glColor3d(1,1,1); glBegin(GL_LINES); glVector3(ray.origin); glVector3((ray.origin + ray.direction * 100)); glEnd(); glEnable(GL_LIGHTING); } if(morpher) { if(morpher->source_octree) morpher->source_octree->draw(0,1,0,1); glDisable(GL_LIGHTING); glPointSize(15); glBegin(GL_POINTS); glColor3d(1,0,0); foreach(Vec3d p, morpher->debugPoints) glVector3(p); glColor3d(0,1,0); foreach(Vec3d p, morpher->debugPoints2) glVector3(p); glEnd(); glEnable(GL_LIGHTING); } }