Ignore:
Timestamp:
Mar 21, 2009 4:57:03 PM (15 years ago)
Author:
gah
Message:

preparation to remove glui from build

Location:
trunk/packages/vizservers/nanovis
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/nanovis/NvParticleAdvectionShader.cpp

    r1331 r1362  
    2323        "main");
    2424    _posTimestepParam  = cgGetNamedParameter(_cgFP, "timestep");
    25     _maxParam  = cgGetNamedParameter(_cgFP, "max");
    26     _velTexParam = cgGetNamedParameter(_cgFP, "vel_tex");
    27     _posTexParam = cgGetNamedParameter(_cgFP, "pos_tex");
    28     //_tfTexParam = cgGetNamedParameter(_cgFP, "tf_tex");
    29     _initPosTexParam = cgGetNamedParameter(_cgFP, "init_pos_tex");
    30     _scaleParam = cgGetNamedParameter(_cgFP, "scale");
    31     _modeParam = cgGetNamedParameter(_cgFP, "mode");
     25    _maxParam          = cgGetNamedParameter(_cgFP, "max");
     26    _velTexParam       = cgGetNamedParameter(_cgFP, "vel_tex");
     27    _posTexParam       = cgGetNamedParameter(_cgFP, "pos_tex");
     28    //_tfTexParam      = cgGetNamedParameter(_cgFP, "tf_tex");
     29    _initPosTexParam   = cgGetNamedParameter(_cgFP, "init_pos_tex");
     30    _scaleParam        = cgGetNamedParameter(_cgFP, "scale");
     31    _modeParam         = cgGetNamedParameter(_cgFP, "mode");
    3232}
    3333
    3434//void NvParticleAdvectionShader::bind(unsigned int texID, unsigned int tfTexID, unsigned int initPosTexID)
    35 void NvParticleAdvectionShader::bind(unsigned int texID, unsigned int initPosTexID)
     35
     36void
     37NvParticleAdvectionShader::bind(unsigned int texID, unsigned int initPosTexID)
    3638{
    3739    cgGLBindProgram(_cgFP);
  • trunk/packages/vizservers/nanovis/NvParticleRenderer.cpp

    r1333 r1362  
    2727#define NV_32
    2828
    29 NvParticleRenderer::NvParticleRenderer(int w, int h, CGcontext context)
    30     : scale(1, 1, 1), _activate(false), origin(0, 0, 0)
     29NvParticleRenderer::NvParticleRenderer(int w, int h, CGcontext context) :
     30    scale(1, 1, 1),
     31    _activate(false),
     32    origin(0, 0, 0)
    3133{
    3234    psys_width = w;
     
    5456
    5557#ifdef NV_32
    56     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
    57 #else
    58     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
    59 #endif
    60     glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_RECTANGLE_NV, psys_tex[0], 0);
     58    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV,
     59        psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
     60#else
     61    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height,
     62        0, GL_RGBA, GL_FLOAT, NULL);
     63#endif
     64    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
     65        GL_TEXTURE_RECTANGLE_NV, psys_tex[0], 0);
    6166
    6267
     
    6772    glTexParameterf(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    6873#ifdef NV_32
    69     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
    70 #else
    71     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
    72 #endif
    73     glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_RECTANGLE_NV, psys_tex[1], 0);
     74    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV,
     75        psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
     76#else
     77    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height,
     78        0, GL_RGBA, GL_FLOAT, NULL);
     79#endif
     80    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
     81        GL_TEXTURE_RECTANGLE_NV, psys_tex[1], 0);
    7482 
    7583    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
     
    8088    glTexParameterf(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    8189#ifdef NV_32
    82     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
    83 #else
    84     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
     90    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV,
     91        psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
     92#else
     93    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width,
     94        psys_height, 0, GL_RGBA, GL_FLOAT, NULL);
    8595#endif
    8696
     
    125135    // I need to find out why GL_FLOAT_RGBA32_NV doesn't work
    126136#ifdef NV_32
    127     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, (float*)p);
    128 #else
    129     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, (float*)p);
     137    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV,
     138                 psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, (float*)p);
     139#else
     140    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width,
     141                 psys_height, 0, GL_RGBA, GL_FLOAT, (float*)p);
    130142#endif
    131143    glBindTexture(GL_TEXTURE_RECTANGLE_NV, 0);
     
    137149    // I need to find out why GL_FLOAT_RGBA32_NV doesn't work
    138150#ifdef NV_32
    139     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, (float*)p);
    140 #else
    141     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, (float*)p);
     151    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV,
     152                 psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, (float*)p);
     153#else
     154    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height,
     155                 0, GL_RGBA, GL_FLOAT, (float*)p);
    142156#endif
    143157    glBindTexture(GL_TEXTURE_RECTANGLE_NV, 0);
     
    151165
    152166#ifdef NV_32
    153     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, (float*)data);
    154 #else
    155     glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, (float*)data);#
    156 #endif
    157                                                                                                                        glBindTexture(GL_TEXTURE_RECTANGLE_NV, 0);
    158  
     167    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA32_NV,
     168                 psys_width, psys_height, 0, GL_RGBA, GL_FLOAT, (float*)data);
     169#else
     170    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, psys_width, psys_height,
     171                 0, GL_RGBA, GL_FLOAT, (float*)data);
     172#endif
     173    glBindTexture(GL_TEXTURE_RECTANGLE_NV, 0);
    159174    flip = true;
    160175    reborn = false;
     
    162177}
    163178
    164 void NvParticleRenderer::advect()
     179void
     180NvParticleRenderer::advect()
    165181{
    166182    if (reborn)
     
    170186    glDisable(GL_DEPTH_TEST);
    171187   
    172     if (flip)
    173         {
    174             glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, psys_fbo[1]);
    175             glEnable(GL_TEXTURE_RECTANGLE_NV);
    176             glBindTexture(GL_TEXTURE_RECTANGLE_NV, psys_tex[0]);
    177 
    178             glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    179             //glClear(GL_COLOR_BUFFER_BIT);
    180 
    181             glViewport(0, 0, psys_width, psys_height);
    182             glMatrixMode(GL_PROJECTION);
    183             glLoadIdentity();
    184             //gluOrtho2D(0, psys_width, 0, psys_height);
    185             glOrtho(0, psys_width, 0, psys_height, -10.0f, 10.0f);
    186             glMatrixMode(GL_MODELVIEW);
    187             glLoadIdentity();
    188 
    189             _advectionShader->bind(psys_tex[0], initPosTex);
    190      
    191             //cgGLBindProgram(m_pos_fprog);
    192             //cgGLSetParameter1f(m_pos_timestep_param, 0.05);
    193             //cgGLEnableTextureParameter(m_vel_tex_param);
    194             //cgGLSetTextureParameter(m_pos_tex_param, psys_tex[0]);
    195             //cgGLEnableTextureParameter(m_pos_tex_param);
    196             //cgGLEnableProfile(CG_PROFILE_FP30);
    197      
    198             draw_quad(psys_width, psys_height, psys_width, psys_height);
    199 
    200             //cgGLDisableProfile(CG_PROFILE_FP30);
    201             //cgGLDisableTextureParameter(m_vel_tex_param);
    202             //cgGLDisableTextureParameter(m_pos_tex_param);
    203             glDisable(GL_TEXTURE_RECTANGLE_NV);
    204         }
    205     else
    206         {
    207             glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, psys_fbo[0]);
    208             glBindTexture(GL_TEXTURE_RECTANGLE_NV, psys_tex[1]);
    209 
    210             glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    211             //glClear(GL_COLOR_BUFFER_BIT);
    212 
    213             glViewport(0, 0, psys_width, psys_height);
    214             glMatrixMode(GL_PROJECTION);
    215             glLoadIdentity();
    216             //gluOrtho2D(0, psys_width, 0, psys_height);
    217             glOrtho(0, psys_width, 0, psys_height, -10.0f, 10.0f);
    218             glMatrixMode(GL_MODELVIEW);
    219             glLoadIdentity();
    220 
    221             _advectionShader->bind(psys_tex[1], initPosTex);
    222 
    223             //cgGLBindProgram(m_pos_fprog);
    224             //cgGLSetParameter1f(m_pos_timestep_param, 0.05);
    225             //cgGLEnableTextureParameter(m_vel_tex_param);
    226             //cgGLSetTextureParameter(m_pos_tex_param, psys_tex[1]);
    227             //cgGLEnableTextureParameter(m_pos_tex_param);
    228             //cgGLEnableProfile(CG_PROFILE_FP30);
    229 
    230             draw_quad(psys_width, psys_height, psys_width, psys_height);
    231             //draw_quad(psys_width, psys_height, 1.0f, 1.0f);
    232 
    233             //cgGLDisableProfile(CG_PROFILE_FP30);
    234             //cgGLDisableTextureParameter(m_vel_tex_param);
    235             //cgGLDisableTextureParameter(m_pos_tex_param);
    236         }
    237 
     188    if (flip) {
     189        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, psys_fbo[1]);
     190        glEnable(GL_TEXTURE_RECTANGLE_NV);
     191        glBindTexture(GL_TEXTURE_RECTANGLE_NV, psys_tex[0]);
     192       
     193        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     194        //glClear(GL_COLOR_BUFFER_BIT);
     195       
     196        glViewport(0, 0, psys_width, psys_height);
     197        glMatrixMode(GL_PROJECTION);
     198        glLoadIdentity();
     199        //gluOrtho2D(0, psys_width, 0, psys_height);
     200        glOrtho(0, psys_width, 0, psys_height, -10.0f, 10.0f);
     201        glMatrixMode(GL_MODELVIEW);
     202        glLoadIdentity();
     203       
     204        _advectionShader->bind(psys_tex[0], initPosTex);
     205       
     206        //cgGLBindProgram(m_pos_fprog);
     207        //cgGLSetParameter1f(m_pos_timestep_param, 0.05);
     208        //cgGLEnableTextureParameter(m_vel_tex_param);
     209        //cgGLSetTextureParameter(m_pos_tex_param, psys_tex[0]);
     210        //cgGLEnableTextureParameter(m_pos_tex_param);
     211        //cgGLEnableProfile(CG_PROFILE_FP30);
     212       
     213        draw_quad(psys_width, psys_height, psys_width, psys_height);
     214       
     215        //cgGLDisableProfile(CG_PROFILE_FP30);
     216        //cgGLDisableTextureParameter(m_vel_tex_param);
     217        //cgGLDisableTextureParameter(m_pos_tex_param);
     218        glDisable(GL_TEXTURE_RECTANGLE_NV);
     219    } else {
     220        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, psys_fbo[0]);
     221        glBindTexture(GL_TEXTURE_RECTANGLE_NV, psys_tex[1]);
     222       
     223        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     224        //glClear(GL_COLOR_BUFFER_BIT);
     225       
     226        glViewport(0, 0, psys_width, psys_height);
     227        glMatrixMode(GL_PROJECTION);
     228        glLoadIdentity();
     229        //gluOrtho2D(0, psys_width, 0, psys_height);
     230        glOrtho(0, psys_width, 0, psys_height, -10.0f, 10.0f);
     231        glMatrixMode(GL_MODELVIEW);
     232        glLoadIdentity();
     233       
     234        _advectionShader->bind(psys_tex[1], initPosTex);
     235       
     236        //cgGLBindProgram(m_pos_fprog);
     237        //cgGLSetParameter1f(m_pos_timestep_param, 0.05);
     238        //cgGLEnableTextureParameter(m_vel_tex_param);
     239        //cgGLSetTextureParameter(m_pos_tex_param, psys_tex[1]);
     240        //cgGLEnableTextureParameter(m_pos_tex_param);
     241        //cgGLEnableProfile(CG_PROFILE_FP30);
     242       
     243        draw_quad(psys_width, psys_height, psys_width, psys_height);
     244        //draw_quad(psys_width, psys_height, 1.0f, 1.0f);
     245       
     246        //cgGLDisableProfile(CG_PROFILE_FP30);
     247        //cgGLDisableTextureParameter(m_vel_tex_param);
     248        //cgGLDisableTextureParameter(m_pos_tex_param);
     249    }
     250   
    238251    _advectionShader->unbind();
    239 
     252   
    240253    //soft_read_verts();
    241    
     254    
    242255    update_vertex_buffer();
    243 
     256   
    244257    flip = (!flip);
    245 
     258   
    246259    psys_frame++;
    247     if(psys_frame==max_life)
    248         {
    249             psys_frame=0;
    250             reborn = true;
    251         }
    252 
     260    if(psys_frame==max_life) {
     261        psys_frame=0;
     262        reborn = true;
     263    }
    253264    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
    254265}
    255266
    256 void NvParticleRenderer::update_vertex_buffer()
     267void
     268NvParticleRenderer::update_vertex_buffer()
    257269{
    258270    m_vertex_array->Read(psys_width, psys_height);
     
    262274}
    263275
    264 void NvParticleRenderer::render()
     276void
     277NvParticleRenderer::render()
    265278{
    266279    display_vertices();
    267280}
    268281
    269 void NvParticleRenderer::draw_bounding_box(
    270     float x0, float y0, float z0,
    271     float x1, float y1, float z1,
    272     float r, float g, float b,
    273     float line_width)
     282void
     283NvParticleRenderer::draw_bounding_box(float x0, float y0, float z0,
     284                                      float x1, float y1, float z1,
     285                                      float r, float g, float b,
     286                                      float line_width)
    274287{
    275288    glPushMatrix();
     
    281294    glLineWidth(line_width);
    282295   
    283     glBegin(GL_LINE_LOOP);
     296    glBegin(GL_LINE_LOOP); 
    284297    {
    285298        glVertex3d(x0, y0, z0);
     
    299312    glEnd();
    300313   
    301    
    302314    glBegin(GL_LINE_LOOP);
    303315    {
     
    324336}
    325337
    326 void NvParticleRenderer::display_vertices()
     338void
     339NvParticleRenderer::display_vertices()
    327340{
    328341    glDisable(GL_TEXTURE_2D);
     
    369382}
    370383
    371 void NvParticleRenderer::setVectorField(unsigned int texID, const Vector3& ori, float scaleX, float scaleY, float scaleZ, float max)
     384void
     385NvParticleRenderer::setVectorField(unsigned int texID, const Vector3& ori,
     386                                   float scaleX, float scaleY, float scaleZ,
     387                                   float max)
    372388{
    373389    origin = ori;
  • trunk/packages/vizservers/nanovis/VolumeRenderer.h

    r900 r1362  
    4040
    4141class VolumeRenderer {
    42 
    4342    friend class NanoVis;
    4443private:
     
    5756    NvRegularVolumeShader* _regularVolumeShader;
    5857
    59 
    6058    /**
    61      * Shader parameters for rendering a single zincblende orbital.
    62      * A simulation contains S, P, D and SS, total of 4 orbitals. A full rendering requires 4 zincblende orbital volumes.
    63      * A zincblende orbital volume is decomposed into two "interlocking" cubic volumes and passed to the shader.
    64      * We render each orbital with its own independent transfer functions then blend the result.
     59     * Shader parameters for rendering a single zincblende orbital.  A
     60     * simulation contains S, P, D and SS, total of 4 orbitals. A full
     61     * rendering requires 4 zincblende orbital volumes.  A zincblende orbital
     62     * volume is decomposed into two "interlocking" cubic volumes and passed
     63     * to the shader.  We render each orbital with its own independent
     64     * transfer functions then blend the result.
    6565     *
    66      * The engine is already capable of rendering multiple volumes and combine them. Thus, we just invoke this shader on
    67      * S, P, D and SS orbitals with different transfor functions. The result is a multi-orbital rendering.
    68      * This is equivalent to rendering 4 unrelated data sets occupying the same space.
     66     * The engine is already capable of rendering multiple volumes and combine
     67     * them. Thus, we just invoke this shader on S, P, D and SS orbitals with
     68     * different transfor functions. The result is a multi-orbital rendering.
     69     * This is equivalent to rendering 4 unrelated data sets occupying the
     70     * same space.
    6971     */
    7072    NvZincBlendeVolumeShader* _zincBlendeShader;
    71  
    7273 
    7374    /**
     
    7677    NvStdVertexShader* _stdVertexShader;
    7778 
    78   //standard vertex shader parameters
    79   CGprogram m_vert_std_vprog;
    80   CGparameter m_mvp_vert_std_param;
    81   CGparameter m_mvi_vert_std_param;
     79    //standard vertex shader parameters
     80    CGprogram m_vert_std_vprog;
     81    CGparameter m_mvp_vert_std_param;
     82    CGparameter m_mvi_vert_std_param;
     83    GLuint font_base;           // The base of the font display list.
     84    GLuint font_texture;        //the id of the font texture
    8285
    83   void init_shaders();
    84   void activate_volume_shader(Volume* vol, TransferFunction* tf, bool slice_mode);
    85   void deactivate_volume_shader();
     86    void init_shaders();
     87    void activate_volume_shader(Volume* vol, TransferFunction* tf,
     88                                bool slice_mode);
     89    void deactivate_volume_shader();
     90    //draw bounding box
     91    void draw_bounding_box(float x0, float y0, float z0,
     92                           float x1, float y1, float z1,
     93                           float r, float g, float b, float line_width);
    8694
    87   //draw bounding box
    88   void draw_bounding_box(float x0, float y0, float z0,
    89                         float x1, float y1, float z1,
    90                         float r, float g, float b, float line_width);
    91 
    92   void get_near_far_z(Mat4x4 mv, double &zNear, double &zFar);
    93 
    94   void init_font(const char* filename);
    95   GLuint font_texture;                          //the id of the font texture
    96   void glPrint(char* string, int set);          //there are two sets of font in the texture. 0, 1
    97   void draw_label(Volume* vol);         //draw label using bitmap texture
    98   GLuint font_base;                             //the base of the font display list
    99   void build_font();                            //register the location of each alphabet in the texture
     95    void get_near_far_z(Mat4x4 mv, double &zNear, double &zFar);
     96    void init_font(const char* filename);
     97    void glPrint(char* string, int set); //there are two sets of font in the
     98                                         //texture. 0, 1
     99    void draw_label(Volume* vol); //draw label using bitmap texture
     100                                // the texture.
     101    void build_font();          // Register the location of each alphabet in
    100102
    101103public:
    102   VolumeRenderer();
    103   ~VolumeRenderer();
     104    VolumeRenderer();
     105    ~VolumeRenderer();
    104106
    105   int add_volume(Volume* _vol, TransferFunction* _tf);
    106                                                 //add a volume and its transfer function
    107                                                 //we require a transfer function when a
    108                                                 //volume is added.
    109   void shade_volume(Volume* _vol, TransferFunction* _tf);
    110   TransferFunction* get_volume_shading(Volume* _vol);
     107    int add_volume(Volume* _vol, TransferFunction* _tf);
     108    // add a volume and its transfer function
     109    // we require a transfer function when a
     110    // volume is added.
     111    void shade_volume(Volume* _vol, TransferFunction* _tf);
     112    TransferFunction* get_volume_shading(Volume* _vol);
    111113
    112   void render(int volume_index);
    113   void render_all();    //render all enabled volumes;
    114   void render_all_points();     //render all enabled volumes;
    115   void set_specular(float val);
    116   void set_diffuse(float val);
    117   void set_slice_mode(bool val); //control independently.
    118   void set_volume_mode(bool val);
    119   void switch_slice_mode(); //switch_cutplane_mode
    120   void switch_volume_mode();
    121   void enable_volume(int index); //enable a volume
    122   void disable_volume(int index); //disable a volume
     114    void render(int volume_index);
     115    void render_all();  //render all enabled volumes;
     116    void render_all_points(void); //render all enabled volumes;
     117    void set_specular(float val);
     118    void set_diffuse(float val);
     119    void set_slice_mode(bool val); //control independently.
     120    void set_volume_mode(bool val);
     121    void switch_slice_mode(); //switch_cutplane_mode
     122    void switch_volume_mode();
     123    void enable_volume(int index); //enable a volume
     124    void disable_volume(int index); //disable a volume
    123125
    124     void clearAnimatedVolumeInfo();
    125     void addAnimatedVolume(Volume* volume, unsigned int volumeId);
    126     void startVolumeAnimation();
    127     void stopVolumeAnimation();
    128 
    129     VolumeInterpolator* getVolumeInterpolator();
     126    void clearAnimatedVolumeInfo(void) {
     127        _volumeInterpolator->clearAll();
     128    }
     129    void addAnimatedVolume(Volume* volume, unsigned int volumeId) {
     130        _volumeInterpolator->addVolume(volume, volumeId);
     131    }
     132    void startVolumeAnimation(void) {
     133        _volumeInterpolator->start();
     134    }
     135    void stopVolumeAnimation(void) {
     136        _volumeInterpolator->stop();
     137    }
     138    VolumeInterpolator* getVolumeInterpolator(void) {
     139        return _volumeInterpolator;
     140    }
    130141};
    131142
    132 inline void VolumeRenderer::clearAnimatedVolumeInfo()
    133 {
    134     _volumeInterpolator->clearAll();
    135 }
    136 
    137 inline void VolumeRenderer::addAnimatedVolume(Volume* volume, unsigned int volumeId)
    138 {
    139     _volumeInterpolator->addVolume(volume, volumeId);
    140 }
    141 
    142 inline void VolumeRenderer::startVolumeAnimation()
    143 {
    144     _volumeInterpolator->start();
    145 }
    146 
    147 inline void VolumeRenderer::stopVolumeAnimation()
    148 {
    149     _volumeInterpolator->stop();
    150 }
    151 
    152 inline VolumeInterpolator* VolumeRenderer::getVolumeInterpolator()
    153 {
    154     return _volumeInterpolator;
    155 }
    156 
    157 #endif
     143#endif  /*_VOLUME_RENDERER_H_*/
Note: See TracChangeset for help on using the changeset viewer.