Subversion Repositories gelsvn

Rev

Rev 594 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef __GLGRAPHICS_IDBUFFERWIREFRAMERENDERER_H__
#define __GLGRAPHICS_IDBUFFERWIREFRAMERENDERER_H__

#include <GL/glew.h>
#include <CGLA/Vec3uc.h>
#include <CGLA/Vec3f.h>
#include <HMesh/Manifold.h>

namespace GLGraphics
{
        
        class IDBufferWireframeRenderer
                {
                        HMesh::Manifold& mesh;
                        
                        GLint id_attrib;
                        GLint popp_attrib;
                        GLint disp_attrib;
                        int XSZ, YSZ;
                        float thickness;
                        float transition;
                        
                        GLuint vs,fs;
                        GLuint line_prog;
                        GLuint idmap;
                        
                        GLuint vertex_buffername;
                        GLuint colors_buffername;                       
                        GLuint line_id_attrib;
                        GLuint line_vertex_pos;
                        GLuint line_disp_attrib;
                        GLuint line_opp_attrib;
                        
                        int triangles, quads;
                public:
                        
                        CGLA::Vec3uc id_get(unsigned int i)
                        {
                                i = i+1;
                                return CGLA::Vec3uc(i&0xff, (i&0xff00)/256, (i&0xff0000)/65536);
                        }
                        
                        IDBufferWireframeRenderer(int _XSZ, int _YSZ, 
                                                          HMesh::Manifold& mesh,
                                                          float _thickness=0.0, 
                                                          float _transition=1.8,
                                                          int atten_mode=0);
                        
                        ~IDBufferWireframeRenderer();
                        
                        void draw(const CGLA::Vec3f& color, 
                                        const CGLA::Vec3f& clear_color);
                };
        
}
#endif