Changeset 2834 for trunk/packages/vizservers/nanovis
- Timestamp:
- Mar 9, 2012 1:18:24 PM (12 years ago)
- Location:
- trunk/packages/vizservers/nanovis
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/PlaneRenderer.cpp
r2822 r2834 20 20 21 21 PlaneRenderer::PlaneRenderer(CGcontext _context, int _width, int _height) : 22 active_plane(-1),23 n_planes(0),24 render_width(_width),25 render_height(_height),26 g_context(_context)22 _active_plane(-1), 23 _n_planes(0), 24 _render_width(_width), 25 _render_height(_height), 26 _g_context(_context) 27 27 { 28 plane.clear();29 tf.clear();28 _plane.clear(); 29 _tf.clear(); 30 30 init_shaders(); 31 31 } … … 40 40 { 41 41 //plane rendering shader 42 m_fprog = LoadCgSourceProgram(g_context, "one_plane.cg", CG_PROFILE_FP30,42 _fprog = LoadCgSourceProgram(_g_context, "one_plane.cg", CG_PROFILE_FP30, 43 43 NULL); 44 m_data_param = cgGetNamedParameter(m_fprog, "data");45 m_tf_param = cgGetNamedParameter(m_fprog, "tf");46 m_render_param = cgGetNamedParameter(m_fprog, "render_param");44 _data_param = cgGetNamedParameter(_fprog, "data"); 45 _tf_param = cgGetNamedParameter(_fprog, "tf"); 46 _render_param = cgGetNamedParameter(_fprog, "render_param"); 47 47 } 48 48 … … 50 50 PlaneRenderer::add_plane(Texture2D* _p, TransferFunction* tfPtr) 51 51 { 52 int ret = n_planes;52 int ret = _n_planes; 53 53 54 plane.push_back(_p);55 tf.push_back(tfPtr);54 _plane.push_back(_p); 55 _tf.push_back(tfPtr); 56 56 57 57 if(ret==0) 58 active_plane = ret;58 _active_plane = ret; 59 59 60 n_planes++;60 _n_planes++; 61 61 return ret; 62 62 } … … 64 64 void 65 65 PlaneRenderer::remove_plane(int index) { 66 std::vector<Texture2D*>::iterator piter = plane.begin()+index;67 std::vector<TransferFunction*>::iterator tfiter = tf.begin()+index;66 std::vector<Texture2D*>::iterator piter = _plane.begin()+index; 67 std::vector<TransferFunction*>::iterator tfiter = _tf.begin()+index; 68 68 69 plane.erase(piter);70 tf.erase(tfiter);69 _plane.erase(piter); 70 _tf.erase(tfiter); 71 71 72 n_planes--;72 _n_planes--; 73 73 } 74 74 … … 76 76 PlaneRenderer::render() 77 77 { 78 if ( n_planes == 0)78 if (_n_planes == 0) 79 79 return; 80 80 … … 82 82 glEnable(GL_BLEND); 83 83 84 glViewport(0, 0, render_width,render_height);84 glViewport(0, 0, _render_width, _render_height); 85 85 glMatrixMode(GL_PROJECTION); 86 86 glLoadIdentity(); 87 gluOrtho2D(0, render_width, 0,render_height);87 gluOrtho2D(0, _render_width, 0, _render_height); 88 88 glMatrixMode(GL_MODELVIEW); 89 89 glLoadIdentity(); … … 92 92 93 93 //if no active plane 94 if ( active_plane == -1)94 if (_active_plane == -1) 95 95 return; 96 96 97 activate_shader( active_plane);97 activate_shader(_active_plane); 98 98 glBegin(GL_QUADS); 99 99 glTexCoord2f(0, 0); glVertex2f(0, 0); 100 glTexCoord2f(1, 0); glVertex2f( render_width, 0);101 glTexCoord2f(1, 1); glVertex2f( render_width,render_height);102 glTexCoord2f(0, 1); glVertex2f(0, render_height);100 glTexCoord2f(1, 0); glVertex2f(_render_width, 0); 101 glTexCoord2f(1, 1); glVertex2f(_render_width, _render_height); 102 glTexCoord2f(0, 1); glVertex2f(0, _render_height); 103 103 glEnd(); 104 104 deactivate_shader(); … … 109 109 PlaneRenderer::activate_shader(int index) 110 110 { 111 cgGLSetTextureParameter( m_data_param,plane[index]->id);112 cgGLSetTextureParameter( m_tf_param,tf[index]->id());113 cgGLEnableTextureParameter( m_data_param);114 cgGLEnableTextureParameter( m_tf_param);111 cgGLSetTextureParameter(_data_param, _plane[index]->id); 112 cgGLSetTextureParameter(_tf_param, _tf[index]->id()); 113 cgGLEnableTextureParameter(_data_param); 114 cgGLEnableTextureParameter(_tf_param); 115 115 116 cgGLSetParameter4f( m_render_param, 0., 0., 0., 0.);116 cgGLSetParameter4f(_render_param, 0., 0., 0., 0.); 117 117 118 cgGLBindProgram( m_fprog);118 cgGLBindProgram(_fprog); 119 119 cgGLEnableProfile(CG_PROFILE_FP30); 120 120 } … … 124 124 { 125 125 cgGLDisableProfile(CG_PROFILE_FP30); 126 cgGLDisableTextureParameter( m_data_param);127 cgGLDisableTextureParameter( m_tf_param);126 cgGLDisableTextureParameter(_data_param); 127 cgGLDisableTextureParameter(_tf_param); 128 128 } 129 129 … … 131 131 PlaneRenderer::set_active_plane(int index) 132 132 { 133 active_plane = index;133 _active_plane = index; 134 134 } 135 135 … … 137 137 PlaneRenderer::set_screen_size(int w, int h) 138 138 { 139 render_width = w;140 render_height = h;139 _render_width = w; 140 _render_height = h; 141 141 } -
trunk/packages/vizservers/nanovis/PlaneRenderer.h
r2822 r2834 14 14 * ====================================================================== 15 15 */ 16 #ifndef _PLANE_RENDERER_H_ 17 #define _PLANE_RENDERER_H_ 18 19 #include <GL/glew.h> 20 #include <Cg/cgGL.h> 16 #ifndef PLANE_RENDERER_H 17 #define PLANE_RENDERER_H 21 18 22 19 #include <math.h> … … 24 21 #include <assert.h> 25 22 #include <float.h> 23 26 24 #include <vector> 25 26 #include <GL/glew.h> 27 #include <Cg/cgGL.h> 27 28 28 29 #include "global.h" … … 32 33 class PlaneRenderer 33 34 { 34 private:35 std::vector<Texture2D*> plane; // Array of volumes36 std::vector<TransferFunction*> tf; // Array of corresponding transfer functions37 int active_plane; // The active plane, only one is rendered38 int n_planes;39 40 int render_width; //render size41 int render_height;42 43 //cg related44 CGcontext g_context; // The Nvidia cg context45 CGprogram m_fprog;46 CGparameter m_data_param;47 CGparameter m_tf_param;48 CGparameter m_render_param;49 50 void init_shaders();51 void activate_shader(int plane_index);52 void deactivate_shader();53 54 35 public: 55 36 PlaneRenderer(CGcontext _context, int width, int height); 37 56 38 ~PlaneRenderer(); 57 39 58 40 int add_plane(Texture2D* _p, TransferFunction* _tf); 41 59 42 // Add a plane and its transfer function. We require a transfer function 60 43 // when a plane is added. 61 44 void remove_plane(int index); 45 62 46 void set_active_plane(int index); //set the active plane to be rendered 47 63 48 void set_screen_size(int w, int h); //change the rendering size 49 64 50 void render(); 51 52 private: 53 void init_shaders(); 54 55 void activate_shader(int plane_index); 56 57 void deactivate_shader(); 58 59 std::vector<Texture2D *> _plane; // Array of volumes 60 std::vector<TransferFunction *> _tf; // Array of corresponding transfer functions 61 int _active_plane; // The active plane, only one is rendered 62 int _n_planes; 63 64 int _render_width; //render size 65 int _render_height; 66 67 //cg related 68 CGcontext _g_context; // The Nvidia cg context 69 CGprogram _fprog; 70 CGparameter _data_param; 71 CGparameter _tf_param; 72 CGparameter _render_param; 65 73 }; 66 74 -
trunk/packages/vizservers/nanovis/nanovis.cpp
r2831 r2834 121 121 std::vector<PointSet *> NanoVis::pointSet; 122 122 #endif 123 123 124 PlaneRenderer *NanoVis::plane_renderer = NULL; 125 #if PLANE_CMD 124 126 // pointers to 2D planes, currently handle up 10 125 127 Texture2D *NanoVis::plane[10]; 128 #endif 129 Texture2D *NanoVis::legendTexture = NULL; 126 130 NvColorTableRenderer *NanoVis::color_table_renderer = NULL; 127 131 … … 523 527 data[i] = data[i+256] = (float)(i/255.0); 524 528 } 525 plane[0]= new Texture2D(256, 2, GL_FLOAT, GL_LINEAR, 1, data);526 int index = plane_renderer->add_plane( plane[0], tf);529 legendTexture = new Texture2D(256, 2, GL_FLOAT, GL_LINEAR, 1, data); 530 int index = plane_renderer->add_plane(legendTexture, tf); 527 531 plane_renderer->set_active_plane(index); 528 532 … … 549 553 550 554 TRACE("leaving render_legend\n"); 551 delete plane[0];555 delete legendTexture; 552 556 return TCL_OK; 553 557 } … … 671 675 } 672 676 677 #if PROTOTYPE 673 678 /* 674 679 * FIXME: This routine is fairly expensive (60000 floating pt divides). … … 694 699 delete[] data; 695 700 } 701 #endif 696 702 697 703 void NanoVis::initParticle() -
trunk/packages/vizservers/nanovis/nanovis.h
r2831 r2834 108 108 109 109 static VolumeRenderer *vol_renderer; 110 static PointSetRenderer *pointset_renderer;111 110 #ifndef NEW_FLOW_ENGINE 112 111 static NvParticleRenderer *flowVisRenderer; … … 117 116 static NvLIC *licRenderer; 118 117 static PlaneRenderer *plane_renderer; 118 #if PLANE_CMD 119 static Texture2D *plane[]; //< Pointers to 2D planes 120 #endif 121 #ifdef USE_POINTSET_RENDERER 122 static PointSetRenderer *pointset_renderer; 119 123 static std::vector<PointSet *> pointSet; 120 121 /** 122 * pointers to 2D planes 123 */ 124 static Texture2D *plane[]; 124 #endif 125 126 static Texture2D *legendTexture; 125 127 static NvColorTableRenderer *color_table_renderer; 128 126 129 static graphics::RenderContext *renderContext; 127 130 static std::vector<HeightMap *> heightMap;
Note: See TracChangeset
for help on using the changeset viewer.