Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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);
    }
}