Changeset 3630 for trunk/packages/vizservers/nanovis/LIC.cpp
- Timestamp:
- Apr 16, 2013, 12:52:20 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/LIC.cpp
r3612 r3630 24 24 using namespace vrmath; 25 25 26 LIC::LIC( int size, int width, int height, intaxis,26 LIC::LIC(FlowSliceAxis axis, 27 27 float offset) : 28 _width( width),29 _height( height),30 _size( size),28 _width(NPIX), 29 _height(NPIX), 30 _size(NMESH), 31 31 _scale(1.0f, 1.0f, 1.0f), 32 32 _origin(0, 0, 0), … … 41 41 _disListID(0), 42 42 _vectorFieldId(0), 43 _ activate(false)44 { 45 _sliceVector = new float[_size *_size*4];43 _visible(false) 44 { 45 _sliceVector = new float[_size * _size * 4]; 46 46 memset(_sliceVector, 0, sizeof(float) * _size * _size * 4); 47 47 … … 104 104 105 105 _renderVelShader = new Shader(); 106 _renderVelShader->loadFragmentProgram("render_vel.cg" , "main");106 _renderVelShader->loadFragmentProgram("render_vel.cg"); 107 107 108 108 makePatterns(); … … 178 178 } 179 179 180 void LIC::makeMagnitudes() 180 void 181 LIC::makeMagnitudes() 181 182 { 182 183 GLubyte mag[NMESH][NMESH][4]; … … 246 247 247 248 switch (_axis) { 248 case 0:249 case AXIS_X: 249 250 _renderVelShader->setFPParameter3f("projection_vector", 0., 1., 1.); 250 251 break; 251 case 1:252 case AXIS_Y: 252 253 _renderVelShader->setFPParameter3f("projection_vector", 1., 0., 1.); 253 254 break; 254 255 default: 255 case 2:256 case AXIS_Z: 256 257 _renderVelShader->setFPParameter3f("projection_vector", 1., 1., 0.); 257 258 break; … … 261 262 { 262 263 switch (_axis) { 263 case 0:264 case AXIS_X: 264 265 glTexCoord3f(_offset, 0., 0.); glVertex2f(0., 0.); 265 266 glTexCoord3f(_offset, 1., 0.); glVertex2f(_size, 0.); … … 267 268 glTexCoord3f(_offset, 0., 1.); glVertex2f(0., _size); 268 269 break; 269 case 1:270 case AXIS_Y: 270 271 glTexCoord3f(0., _offset, 0.); glVertex2f(0., 0.); 271 272 glTexCoord3f(1., _offset, 0.); glVertex2f(_size, 0.); … … 273 274 glTexCoord3f(0., _offset, 1.); glVertex2f(0., _size); 274 275 break; 275 case 2:276 case AXIS_Z: 276 277 glTexCoord3f(0., 0., _offset); glVertex2f(0., 0.); 277 278 glTexCoord3f(1., 0., _offset); glVertex2f(_size, 0.); … … 428 429 LIC::render() 429 430 { 430 if (_vectorFieldId == 0 ) {431 if (_vectorFieldId == 0 || !_visible) { 431 432 return; 432 433 } … … 451 452 glBegin(GL_QUADS); 452 453 switch (_axis) { 453 case 0:454 case AXIS_X: 454 455 glNormal3f(1, 0, 0); 455 456 glTexCoord2f(0, 0); glVertex3f(_offset, 0, 0); … … 458 459 glTexCoord2f(0, 1); glVertex3f(_offset, 0, 1); 459 460 break; 460 case 1:461 case AXIS_Y: 461 462 glNormal3f(0, 1, 0); 462 463 glTexCoord2f(0, 0); glVertex3f(0, _offset, 0); … … 465 466 glTexCoord2f(0, 1); glVertex3f(0, _offset, 1); 466 467 break; 467 case 2:468 case AXIS_Z: 468 469 glNormal3f(0, 0, 1); 469 470 glTexCoord2f(0, 0); glVertex3f(0, 0, _offset); … … 483 484 484 485 void 485 LIC::setVectorField(unsigned int texID, const Vector3f& origin, 486 float scaleX, float scaleY, float scaleZ, float max) 487 { 488 TRACE("LIC: vector field is assigned [%d]", texID); 489 _vectorFieldId = texID; 490 _origin = origin; 491 _scale = Vector3f(scaleX, scaleY, scaleZ); 492 _max = max; 486 LIC::setVectorField(Volume *volume) 487 { 488 TRACE("LIC: vector field is assigned [%d]", volume->textureID()); 489 490 _vectorFieldId = volume->textureID(); 491 Vector3f bmin, bmax; 492 volume->getBounds(bmin, bmax); 493 _origin = bmin; 494 _scale.set(bmax.x-bmin.x, bmax.y-bmin.y, bmax.z-bmin.z); 495 _max = volume->wAxis.max(); 493 496 494 497 makePatterns(); … … 507 510 //TRACE("(xi yi) = (%d %d), ", xi, yi); 508 511 switch (_axis) { 509 case 0:512 case AXIS_X: 510 513 vx = _sliceVector[4 * (xi+yi*_size)+2]; 511 514 vy = _sliceVector[4 * (xi+yi*_size)+1]; 512 515 break; 513 case 1:516 case AXIS_Y: 514 517 vx = _sliceVector[4 * (xi+yi*_size)]; 515 518 vy = _sliceVector[4 * (xi+yi*_size)+2]; 516 519 break; 517 case 2:520 case AXIS_Z: 518 521 default: 519 522 vx = _sliceVector[4 * (xi+yi*_size)]; … … 537 540 538 541 void 539 LIC::set Offset(float offset)542 LIC::setSlicePosition(float offset) 540 543 { 541 544 _offset = offset; … … 543 546 } 544 547 545 void LIC::set Axis(intaxis)548 void LIC::setSliceAxis(FlowSliceAxis axis) 546 549 { 547 550 _axis = axis;
Note: See TracChangeset
for help on using the changeset viewer.