Ignore:
Timestamp:
Mar 9, 2012, 10:12:14 AM (13 years ago)
Author:
ldelgass
Message:

Refactor texture classes, misc. cleanups, cut down on header pollution -- still
need to fix header deps in Makefile.in

File:
1 edited

Legend:

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

    r2822 r2831  
    33
    44#include <GL/glew.h>
    5 #ifdef _WIN32
    6 #include <windows.h>
    7 #endif
    85#include <GL/gl.h>
    9 #ifdef WIN32
    10 #include <GL/glaux.h>
    11 #else
    126#ifdef HAVE_OPENCV_H
    137#include <opencv/cv.h>
     
    1610#include <opencv/highgui.h>
    1711#endif
    18 #endif
     12
     13#include <R2/R2FilePath.h>
    1914
    2015#include "VelocityArrowsSlice.h"
    21 
    22 #ifdef USE_NANOVIS_LIB
    2316#include "global.h"
    24 #include "R2/R2FilePath.h"
    25 #endif
    26 
    27 #define USE_VERTEX_BUFFER
    2817
    2918VelocityArrowsSlice::VelocityArrowsSlice()
     
    3827    //_renderMode = GLYPHS;
    3928    _renderMode = LINES;
    40        
     29
    4130    _tickCountForMinSizeAxis = 10;
    4231
    4332    _queryVelocityFP =
    44 #ifdef USE_NANOVIS_LIB
    4533        LoadCgSourceProgram(_context, "queryvelocity.cg", CG_PROFILE_FP30, "main");
    46 #else
    47         cgCreateProgramFromFile(_context, CG_SOURCE, "queryvelocity.cg",
    48                                 CG_PROFILE_FP30, "main", NULL);
    49     cgGLLoadProgram(_queryVelocityFP);
    50 #endif
     34
    5135    _qvVectorFieldParam = cgGetNamedParameter(_queryVelocityFP, "vfield");
    5236
     
    7054    /*
    7155      _particleVP =
    72 #ifdef USE_NANOVIS_LIB
    7356          LoadCgSourceProgram(_context, "velocityslicevp.cg", CG_PROFILE_VP40, "vpmain");
    74 #else
    75           cgCreateProgramFromFile(_context, CG_SOURCE, "velocityslicevp.cg",
    76                                   CG_PROFILE_VP40, "vpmain", NULL);
    77       cgGLLoadProgram(_particleVP);
    78 #endif
     57
    7958      _mvpParticleParam = cgGetNamedParameter(_particleVP, "mvp");
    8059      _mvParticleParam = cgGetNamedParameter(_particleVP, "modelview");
     
    8362      // TBD..
    8463      _particleFP =
    85 #ifdef USE_NANOVIS_LIB
    8664          LoadCgSourceProgram(_context, "velocityslicefp.cg", CG_PROFILE_FP40, "fpmain");
    87 #else
    88           cgCreateProgramFromFile(_context, CG_SOURCE, "velocityslicefp.cg",
    89                                   CG_PROFILE_FP40, "fpmain", NULL);
    90       cgGLLoadProgram(_particleFP);
    91 #endif
     65
    9266      _vectorParticleParam = cgGetNamedParameter(_particleVP, "vfield");
    9367    */
    9468
    95 #ifdef USE_NANOVIS_LIB
    96 
    97 #ifdef WIN32
    98     AUX_RGBImageRec *pTextureImage = auxDIBImageLoad("arrows.bmp");
    99     _arrowsTex->setPixels(CF_RGB, DT_UBYTE, pTextureImage->sizeX, pTextureImage->sizeY, (void*) pTextureImage->data);
    100 
    101     _arrowsTex = new Texture2D(pTextureImage->sizeX, pTextureImage->sizeY, GL_FLOAT, GL_LINEAR, 3, (void*) pTextureImage->data);
    102 
    103     //delete pTextureImage;
    104 #else
    10569    /*
    10670      TRACE("test1\n");
     
    11579      if (pTextureImage) {
    11680          TRACE("file(%s) has been loaded\n", path);
    117           _arrowsTex = new Texture2D(pTextureImage->width, pTextureImage->height, GL_FLOAT, GL_LINEAR, 3, (float*) pTextureImage->imageData);
     81          _arrowsTex = new Texture2D(pTextureImage->width, pTextureImage->height, GL_FLOAT, GL_LINEAR, 3, pTextureImage->imageData);
     82          //_arrowsTex->setWrapS(TW_MIRROR);
     83          //_arrowsTex->setWrapT(TW_MIRROR);
    11884          TRACE("file(%s) has been loaded\n", path);
    11985          //cvReleaseImage(&pTextureImage);
     
    12490    */
    12591
    126 #endif
    127 
    128 #else
    129     _arrowsTex = new Texture2D();
    130     _arrowsTex->setWrapS(TW_MIRROR);
    131     _arrowsTex->setWrapT(TW_MIRROR);
    132 #ifdef WIN32
    133     AUX_RGBImageRec *pTextureImage = auxDIBImageLoad("arrows.bmp");
    134     _arrowsTex->setPixels(CF_RGB, DT_UBYTE, pTextureImage->sizeX, pTextureImage->sizeY, (void*) pTextureImage->data);
    135 
    136     //delete pTextureImage;
    137 #else
    138     IplImage* pTextureImage = cvLoadImage("arrows_flip2.png");
    139     _arrowsTex->setPixels(CF_RGB, DT_UBYTE, pTextureImage->width, pTextureImage->height, (void*) pTextureImage->imageData);
    140 
    141     //cvReleaseImage(&pTextureImage);
    142 #endif
    143 
    144 #endif
    14592    _arrowColor.set(1, 1, 0);
    14693
     
    155102    glDeleteFramebuffersEXT(1, &_fbo);
    156103
    157 #ifdef USE_NANOVIS_LIB
    158104    delete _arrowsTex;
    159 #else
    160     _arrowsTex->unref();
    161 #endif
     105
    162106    cgDestroyProgram(_particleFP);
    163107    cgDestroyProgram(_particleVP);
     
    173117
    174118    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, _fbo);
    175    
     119
    176120    glViewport(0, 0, _renderTargetWidth, _renderTargetHeight);
    177121    glMatrixMode(GL_PROJECTION);
     
    190134                 _renderTargetWidth, _renderTargetHeight, 0,
    191135                 GL_RGBA, GL_FLOAT, NULL);
    192  
     136
    193137    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
    194138                              GL_TEXTURE_RECTANGLE_NV, _tex, 0);
     
    280224
    281225    glPushMatrix();
    282  
     226
    283227    glScalef(_vfXscale,_vfYscale, _vfZscale);
    284228    glTranslatef(-0.5f, -0.5f, -0.5f);
     
    317261                    pos = _samplingPositions[index];
    318262                    pos2 = this->_velocities[index].scale(_projectionVector).scale(_maxVelocityScale) + pos;
    319                    
     263
    320264                    glVertex3f(pos.x, pos.y, pos.z);
    321265                    glVertex3f(pos2.x, pos2.y, pos2.z);
     
    328272                    pos = _samplingPositions[index];
    329273                    pos2 = this->_velocities[index].scale(_projectionVector).scale(_maxVelocityScale) + pos;
    330                    
     274
    331275                    glVertex3f(pos.x, pos.y, pos.z);
    332276                    glVertex3f(pos2.x, pos2.y, pos2.z);
     
    344288        glPointSize(20);                               
    345289        glEnable(GL_VERTEX_PROGRAM_POINT_SIZE_NV);
    346        
    347 #ifdef USE_NANOVIS_LIB
     290
    348291        _arrowsTex->activate();
    349 #else
    350         _arrowsTex->bind(0);
    351292        glEnable(GL_TEXTURE_2D);
    352 #endif
     293
    353294        glPointParameterfARB( GL_POINT_FADE_THRESHOLD_SIZE_ARB, 0.0f );
    354        
     295
    355296        glPointParameterfARB( GL_POINT_SIZE_MIN_ARB, 1.0f);
    356297        glPointParameterfARB( GL_POINT_SIZE_MAX_ARB, 100.0f);
    357298        glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE );
    358        
     299
    359300        cgGLBindProgram(_particleVP);
    360301        cgGLBindProgram(_particleFP);
    361302        cgGLEnableProfile(CG_PROFILE_VP40);
    362303        cgGLEnableProfile(CG_PROFILE_FP40);
    363        
     304
    364305        cgGLSetTextureParameter(_vectorParticleParam, _vectorFieldGraphicsID);
    365306        cgGLEnableTextureParameter(_vectorParticleParam);
    366        
    367        
     307
    368308        //cgSetParameter1f(_mvTanHalfFOVParam, -tan(_fov * 0.5) * _screenHeight * 0.5);
    369        
     309
    370310        cgGLSetStateMatrixParameter(_mvpParticleParam,
    371311                                    CG_GL_MODELVIEW_PROJECTION_MATRIX,
     
    374314                                    CG_GL_MODELVIEW_MATRIX,
    375315                                    CG_GL_MATRIX_IDENTITY);
    376        
     316
    377317        glEnableClientState(GL_VERTEX_ARRAY);
    378318        glBindBufferARB(GL_ARRAY_BUFFER_ARB, _vertexBufferGraphicsID);
    379319        glVertexPointer(3, GL_FLOAT, 0, 0);
    380320        //glEnableClientState(GL_COLOR_ARRAY);
    381        
     321
    382322        // TBD..
    383323        glDrawArrays(GL_POINTS, 0, _pointCount);
    384324        glPointSize(1);
    385325        glDrawArrays(GL_POINTS, 0, _pointCount);
    386        
     326
    387327        glDisableClientState(GL_VERTEX_ARRAY);
    388        
     328
    389329        cgGLDisableProfile(CG_PROFILE_VP40);
    390330        cgGLDisableProfile(CG_PROFILE_FP40);
    391        
     331
    392332        glDepthMask(GL_TRUE);
    393        
     333
    394334        glDisable(GL_POINT_SPRITE_NV);
    395335        glDisable(GL_VERTEX_PROGRAM_POINT_SIZE_NV);
    396        
     336
    397337        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    398338        glDisable(GL_BLEND);
    399 #ifdef USE_NANOVIS_LIB
    400         _arrowsTex->deactivate();
    401 #else
    402         _arrowsTex->unbind();
    403 #endif
     339        _arrowsTex->deactivate();
    404340    }
    405341    glPopMatrix();
    406342}
    407 
    408343
    409344void
     
    416351    _vfZscale = zScale;
    417352
    418     //_dirty = true;
    419 }
    420 
    421 void VelocityArrowsSlice::tickCountForMinSizeAxis(int tickCount)
    422 {
    423     _tickCountForMinSizeAxis = tickCount;
    424        
    425353    //_dirty = true;
    426354}
     
    561489    }
    562490}
    563 
    564 void VelocityArrowsSlice::slicePos(float pos)
    565 {
    566     _slicePos = pos;
    567     _dirty = true;
    568 }
Note: See TracChangeset for help on using the changeset viewer.