Subversion Repositories gelsvn

Rev

Rev 584 | Rev 594 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 584 Rev 587
Line 372... Line 372...
372
        glUniform1fARB(glGetUniformLocationARB(prog, "gamma"), gamma);
372
        glUniform1fARB(glGetUniformLocationARB(prog, "gamma"), gamma);
373
        glNewList(display_list,GL_COMPILE);
373
        glNewList(display_list,GL_COMPILE);
374
        
374
        
375
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){      
375
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){      
376
            if(!smooth) 
376
            if(!smooth) 
377
                glNormal3fv(normal(m, *f).get());
377
                glNormal3dv(normal(m, *f).get());
378
            if(no_edges(m, *f)== 3) 
378
            if(no_edges(m, *f)== 3) 
379
                glBegin(GL_TRIANGLES);
379
                glBegin(GL_TRIANGLES);
380
            else 
380
            else 
381
                glBegin(GL_POLYGON);
381
                glBegin(GL_POLYGON);
382
            
382
            
383
            
383
            
384
            for(HalfEdgeWalker w = m.halfedgewalker(*f); !w.full_circle(); w = w.circulate_face_ccw()){
384
            for(Walker w = m.walker(*f); !w.full_circle(); w = w.circulate_face_ccw()){
385
                Vec3d n(normal(m, w.vertex()));
385
                Vec3d n(normal(m, w.vertex()));
386
                if(smooth) 
386
                if(smooth) 
387
                    glNormal3dv(n.get());
387
                    glNormal3dv(n.get());
388
                glVertexAttrib1d(scalar_attrib, field[w.vertex()]);
388
                glVertexAttrib1d(scalar_attrib, field[w.vertex()]);
389
                glVertex3fv(m.pos(w.vertex()).get());
389
                glVertex3dv(m.pos(w.vertex()).get());
390
            }
390
            }
391
            glEnd();
391
            glEnd();
392
        }
392
        }
393
        glEndList();	
393
        glEndList();	
394
        glUseProgram(old_prog);
394
        glUseProgram(old_prog);
Line 441... Line 441...
441
        glUniform1fARB(glGetUniformLocationARB(prog, "gamma"), gamma);
441
        glUniform1fARB(glGetUniformLocationARB(prog, "gamma"), gamma);
442
        glNewList(display_list,GL_COMPILE);
442
        glNewList(display_list,GL_COMPILE);
443
        
443
        
444
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){      
444
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){      
445
            if(!smooth) 
445
            if(!smooth) 
446
                glNormal3fv(normal(m, *f).get());
446
                glNormal3dv(normal(m, *f).get());
447
            if(no_edges(m, *f)== 3) 
447
            if(no_edges(m, *f)== 3) 
448
                glBegin(GL_TRIANGLES);
448
                glBegin(GL_TRIANGLES);
449
            else 
449
            else 
450
                glBegin(GL_POLYGON);
450
                glBegin(GL_POLYGON);
451
            
451
            
452
            
452
            
453
            for(HalfEdgeWalker w = m.halfedgewalker(*f); !w.full_circle(); w = w.circulate_face_ccw()){
453
            for(Walker w = m.walker(*f); !w.full_circle(); w = w.circulate_face_ccw()){
454
                Vec3d n(normal(m, w.vertex()));
454
                Vec3d n(normal(m, w.vertex()));
455
                if(smooth) 
455
                if(smooth) 
456
                    glNormal3dv(n.get());
456
                    glNormal3dv(n.get());
457
                glVertexAttrib1d(scalar_attrib, field[w.vertex()]);
457
                glVertexAttrib1d(scalar_attrib, field[w.vertex()]);
458
                glVertex3fv(m.pos(w.vertex()).get());
458
                glVertex3dv(m.pos(w.vertex()).get());
459
            }
459
            }
460
            glEnd();
460
            glEnd();
461
        }
461
        }
462
        glEndList();	
462
        glEndList();	
463
        glUseProgram(old_prog);
463
        glUseProgram(old_prog);
Line 509... Line 509...
509
        glNewList(display_list,GL_COMPILE);
509
        glNewList(display_list,GL_COMPILE);
510
        
510
        
511
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){
511
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){
512
            
512
            
513
            if(!smooth) 
513
            if(!smooth) 
514
                glNormal3fv(normal(m, *f).get());
514
                glNormal3dv(normal(m, *f).get());
515
            if(no_edges(m, *f)== 3) 
515
            if(no_edges(m, *f)== 3) 
516
                glBegin(GL_TRIANGLES);
516
                glBegin(GL_TRIANGLES);
517
            else 
517
            else 
518
                glBegin(GL_POLYGON);
518
                glBegin(GL_POLYGON);
519
            
519
            
520
            for(HalfEdgeWalker w = m.halfedgewalker(*f); !w.full_circle(); w = w.circulate_face_ccw())
520
            for(Walker w = m.walker(*f); !w.full_circle(); w = w.circulate_face_ccw())
521
            {
521
            {
522
                Vec3d n(normal(m, w.vertex()));
522
                Vec3d n(normal(m, w.vertex()));
523
                if(smooth) 
523
                if(smooth) 
524
                    glNormal3dv(n.get());
524
                    glNormal3dv(n.get());
525
                glVertexAttrib1d(scalar_attrib, field[w.vertex()]);
525
                glVertexAttrib1d(scalar_attrib, field[w.vertex()]);
526
                glVertex3fv(m.pos(w.vertex()).get());
526
                glVertex3dv(m.pos(w.vertex()).get());
527
            }
527
            }
528
            glEnd();
528
            glEnd();
529
        }
529
        }
530
        glEndList();	
530
        glEndList();	
531
        glUseProgram(old_prog);
531
        glUseProgram(old_prog);
Line 549... Line 549...
549
        glUniform1iARB(glGetUniformLocationARB(prog, "noise_tex"),0);
549
        glUniform1iARB(glGetUniformLocationARB(prog, "noise_tex"),0);
550
        GLuint direction = glGetAttribLocation(prog, "direction");	
550
        GLuint direction = glGetAttribLocation(prog, "direction");	
551
        glNewList(display_list,GL_COMPILE);
551
        glNewList(display_list,GL_COMPILE);
552
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){
552
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){
553
            if(!smooth) 
553
            if(!smooth) 
554
                glNormal3fv(normal(m, *f).get());
554
                glNormal3dv(normal(m, *f).get());
555
            if(no_edges(m, *f) == 3) 
555
            if(no_edges(m, *f) == 3) 
556
                glBegin(GL_TRIANGLES);
556
                glBegin(GL_TRIANGLES);
557
            else 
557
            else 
558
                glBegin(GL_POLYGON);
558
                glBegin(GL_POLYGON);
559
            
559
            
560
            for(HalfEdgeWalker w = m.halfedgewalker(*f); !w.full_circle(); w = w.circulate_face_ccw()){
560
            for(Walker w = m.walker(*f); !w.full_circle(); w = w.circulate_face_ccw()){
561
                Vec3d n(normal(m, w.vertex()));
561
                Vec3d n(normal(m, w.vertex()));
562
                if(smooth) 
562
                if(smooth) 
563
                    glNormal3dv(n.get());
563
                    glNormal3dv(n.get());
564
                
564
                
565
                Vec3d d = lines[w.vertex()];
565
                Vec3d d = lines[w.vertex()];
566
                d = normalize(d-n*dot(n,d));
566
                d = normalize(d-n*dot(n,d));
567
                glVertexAttrib3dv(direction, d.get());
567
                glVertexAttrib3dv(direction, d.get());
568
                glVertex3fv(m.pos(w.vertex()).get());
568
                glVertex3dv(m.pos(w.vertex()).get());
569
            }
569
            }
570
            glEnd();
570
            glEnd();
571
        }
571
        }
572
        
572
        
573
        glBindTexture(GL_TEXTURE_3D, 0);
573
        glBindTexture(GL_TEXTURE_3D, 0);
Line 746... Line 746...
746
            if(no_edges(m, *f) != 3) 
746
            if(no_edges(m, *f) != 3) 
747
                continue;
747
                continue;
748
            else 
748
            else 
749
                glBegin(GL_TRIANGLES);
749
                glBegin(GL_TRIANGLES);
750
            
750
            
751
            for(HalfEdgeWalker w = m.halfedgewalker(*f); !w.full_circle(); w = w.circulate_face_ccw()){
751
            for(Walker w = m.walker(*f); !w.full_circle(); w = w.circulate_face_ccw()){
752
                Vec3d n(normal(m, w.vertex()));
752
                Vec3d n(normal(m, w.vertex()));
753
                glNormal3dv(n.get());
753
                glNormal3dv(n.get());
754
                glColor4dv(field[w.vertex()].get());
754
                glColor4dv(field[w.vertex()].get());
755
                glVertex3fv(m.pos(w.vertex()).get());
755
                glVertex3dv(m.pos(w.vertex()).get());
756
            }
756
            }
757
            glEnd();
757
            glEnd();
758
        }
758
        }
759
        glUseProgram(old_prog);
759
        glUseProgram(old_prog);
760
        glEndList();	
760
        glEndList();