Changeset 2849
- Timestamp:
- Mar 13, 2012, 5:49:37 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/dxReader.cpp
r2840 r2849 27 27 #include <unistd.h> 28 28 29 #include <RpOutcome.h> 29 30 #include <RpField1D.h> 30 31 #include <RpFieldRect3D.h> … … 36 37 #include "nanovis.h" 37 38 #include "Unirect.h" 39 #include "Volume.h" 38 40 #include "ZincBlendeVolume.h" 39 41 #include "NvZincBlendeReconstructor.h" 40 41 /* Load a 3D volume from a dx-format file 42 #ifdef USE_POINTSET_RENDERER 43 #include "PointSet.h" 44 #endif 45 46 /** 47 * \brief Load a 3D volume from a dx-format file 42 48 */ 43 49 Volume * 44 load_volume_stream2(Rappture::Outcome &result, const char *tag,50 load_volume_stream2(Rappture::Outcome& result, const char *tag, 45 51 std::iostream& fin) 46 52 { 47 53 TRACE("load_volume_stream2 %s\n", tag); 54 48 55 Rappture::MeshTri2D xymesh; 49 56 int dummy, nx, ny, nz, nxy, npts; … … 52 59 53 60 int isrect = 1; 54 dx = dy = dz = 0.0; // Suppress compiler warning. 55 x0 = y0 = z0 = 0.0; // May not have an origin line. 61 62 dx = dy = dz = 0.0; 63 x0 = y0 = z0 = 0.0; // May not have an origin line. 56 64 nx = ny = nz = npts = nxy = 0; 57 65 do { 58 fin.getline(line, sizeof(line)-1);59 for (start =&line[0]; *start == ' ' || *start == '\t'; start++)66 fin.getline(line, sizeof(line) - 1); 67 for (start = line; *start == ' ' || *start == '\t'; start++) 60 68 ; // skip leading blanks 61 69 62 70 if (*start != '#') { // skip comment lines 63 if (sscanf(start, "object %d class gridpositions counts %d %d %d", 71 if (sscanf(start, "object %d class gridpositions counts %d %d %d", 64 72 &dummy, &nx, &ny, &nz) == 4) { 65 73 // found grid size 66 74 isrect = 1; 67 } else if (sscanf(start, "object %d class array type float rank 1 shape 3 items %d data follows", &dummy, &nxy) == 2) { 75 } else if (sscanf(start, "object %d class array type float rank 1 shape 3 items %d data follows", 76 &dummy, &nxy) == 2) { 68 77 isrect = 0; 78 69 79 double xx, yy, zz; 70 for (int i =0; i < nxy; i++) {80 for (int i = 0; i < nxy; i++) { 71 81 fin.getline(line,sizeof(line)-1); 72 82 if (sscanf(line, "%lg %lg %lg", &xx, &yy, &zz) == 3) { … … 91 101 ftmp << xymesh.rangeMin(Rappture::xaxis) << " " 92 102 << xymesh.rangeMax(Rappture::yaxis) << std::endl; 93 for (int i =0; i < nxy; i++) {103 for (int i = 0; i < nxy; i++) { 94 104 ftmp << xymesh.atNode(i).x() << " " << xymesh.atNode(i).y() << std::endl; 95 105 } … … 115 125 return NULL; 116 126 } 117 unlink(fpts), unlink(fcells); 127 unlink(fpts); 128 unlink(fcells); 118 129 } else if (sscanf(start, "object %d class regulararray count %d", &dummy, &nz) == 2) { 119 130 // found z-grid … … 140 151 return NULL; 141 152 } 142 } else if (sscanf(start, "object %d class array type %s rank 0 items %d data follows", &dummy, type, &npts) == 3) { 153 } else if (sscanf(start, "object %d class array type %s rank 0 items %d data follows", 154 &dummy, type, &npts) == 3) { 143 155 if (isrect && (npts != nx*ny*nz)) { 144 result.addError("inconsistent data: expected %d points 156 result.addError("inconsistent data: expected %d points" 145 157 " but found %d points", nx*ny*nz, npts); 146 158 return NULL; 147 159 } else if (!isrect && (npts != nxy*nz)) { 148 result.addError("inconsistent data: expected %d points 160 result.addError("inconsistent data: expected %d points" 149 161 " but found %d points", nxy*nz, npts); 150 162 return NULL; 151 163 } 152 164 break; 153 } else if (sscanf(start, "object %d class array type %s rank 0 times %d data follows", &dummy, type, &npts) == 3) { 165 } else if (sscanf(start, "object %d class array type %s rank 0 times %d data follows", 166 &dummy, type, &npts) == 3) { 154 167 if (npts != nx*ny*nz) { 155 result.addError("inconsistent data: expected %d points 168 result.addError("inconsistent data: expected %d points" 156 169 " but found %d points", nx*ny*nz, npts); 157 170 return NULL; … … 171 184 Volume *volPtr = NULL; 172 185 if (isrect) { 186 float *data = new float[nx * ny * nz * 4]; 187 memset(data, 0, nx*ny*nz*4); 188 189 double vmin = 1e21; 190 double nzero_min = 1e21; 191 double vmax = -1e21; 192 173 193 double dval[6]; 174 194 int nread = 0; … … 176 196 int iy = 0; 177 197 int iz = 0; 178 float* data = new float[nx * ny * nz * 4]; 179 memset(data, 0, nx*ny*nz*4); 180 double vmin = 1e21; 181 double nzero_min = 1e21; 182 double vmax = -1e21; 183 184 198 185 199 while (!fin.eof() && nread < npts) { 186 200 fin.getline(line,sizeof(line)-1); 187 int n = sscanf(line, "%lg %lg %lg %lg %lg %lg", &dval[0], &dval[1], &dval[2], &dval[3], &dval[4], &dval[5]); 188 189 for (int p=0; p < n; p++) { 201 int n = sscanf(line, "%lg %lg %lg %lg %lg %lg", 202 &dval[0], &dval[1], &dval[2], &dval[3], &dval[4], &dval[5]); 203 204 for (int p = 0; p < n; p++) { 190 205 int nindex = (iz*nx*ny + iy*nx + ix) * 4; 191 206 data[nindex] = dval[p]; 192 207 193 208 if (dval[p] < vmin) { 194 209 vmin = dval[p]; … … 196 211 vmax = dval[p]; 197 212 } 198 if (dval[p] != 0.0 f&& dval[p] < nzero_min) {213 if (dval[p] != 0.0 && dval[p] < nzero_min) { 199 214 nzero_min = dval[p]; 200 215 } 201 216 202 217 nread++; 203 218 if (++iz >= nz) { … … 210 225 } 211 226 } 212 227 213 228 // make sure that we read all of the expected points 214 229 if (nread != nx*ny*nz) { 215 result.addError("inconsistent data: expected %d points 230 result.addError("inconsistent data: expected %d points" 216 231 " but found %d points", nx*ny*nz, nread); 217 232 return NULL; 218 233 } 219 234 220 235 double dv = vmax - vmin; 221 236 int count = nx*ny*nz; … … 225 240 dv = 1.0; 226 241 } 227 242 228 243 for (int i = 0; i < count; ++i) { 229 244 v = data[ngen]; 230 245 // scale all values [0-1], -1 => out of bounds 231 //232 // INSOO233 246 v = (isnan(v)) ? -1.0 : (v - vmin)/dv; 234 247 data[ngen] = v; 235 248 ngen += 4; 236 249 } 237 250 238 251 computeSimpleGradient(data, nx, ny, nz); 239 252 240 253 dx = nx; 241 254 dy = ny; 242 255 dz = nz; 243 256 244 257 volPtr = NanoVis::load_volume(tag, nx, ny, nz, 4, data, 245 258 vmin, vmax, nzero_min); … … 250 263 volPtr->update_pending = true; 251 264 delete [] data; 252 253 265 } else { 254 266 Rappture::Mesh1D zgrid(z0, z0+nz*dz, nz); 255 267 Rappture::FieldPrism3D field(xymesh, zgrid); 256 268 257 269 double dval; 258 270 int nread = 0; … … 268 280 int nid = nxy*iz + ixy; 269 281 field.define(nid, dval); 270 282 271 283 nread++; 272 284 if (++iz >= nz) { … … 276 288 } 277 289 } 278 290 279 291 // make sure that we read all of the expected points 280 292 if (nread != nxy*nz) { 281 result.addError("inconsistent data: expected %d points 282 " but found %d points", nxy*nz, nread);293 result.addError("inconsistent data: expected %d points" 294 " but found %d points", nxy*nz, nread); 283 295 return NULL; 284 296 } 285 297 286 298 // figure out a good mesh spacing 287 299 int nsample = 30; … … 293 305 dz = field.rangeMax(Rappture::zaxis) - field.rangeMin(Rappture::zaxis); 294 306 double dmin = pow((dx*dy*dz)/(nsample*nsample*nsample), 0.333); 295 307 296 308 nx = (int)ceil(dx/dmin); 297 309 ny = (int)ceil(dy/dmin); … … 304 316 #endif 305 317 float *data = new float[4*nx*ny*nz]; 306 318 307 319 double vmin = field.valueMin(); 308 320 double dv = field.valueMax() - field.valueMin(); 309 321 if (dv == 0.0) { 310 dv = 1.0; 311 } 322 dv = 1.0; 323 } 324 312 325 // generate the uniformly sampled data that we need for a volume 313 326 int ngen = 0; 314 327 double nzero_min = 0.0; 315 for (i z=0; iz < nz; iz++) {328 for (int iz = 0; iz < nz; iz++) { 316 329 double zval = z0 + iz*dmin; 317 for (int iy =0; iy < ny; iy++) {330 for (int iy = 0; iy < ny; iy++) { 318 331 double yval = y0 + iy*dmin; 319 for (int ix =0; ix < nx; ix++) {332 for (int ix = 0; ix < nx; ix++) { 320 333 double xval = x0 + ix*dmin; 321 double v = field.value(xval, yval,zval);322 323 if (v != 0.0 f&& v < nzero_min) {334 double v = field.value(xval, yval, zval); 335 336 if (v != 0.0 && v < nzero_min) { 324 337 nzero_min = v; 325 338 } … … 327 340 v = (isnan(v)) ? -1.0 : (v - vmin)/dv; 328 341 data[ngen] = v; 329 342 330 343 ngen += 4; 331 344 } 332 345 } 333 346 } 334 347 335 348 // FIXME: This next section of code should be replaced by a 336 349 // call to the computeSimpleGradient() function. There is a slight … … 346 359 for (int ix=0; ix < nx; ix++) { 347 360 // gradient in x-direction 348 //double valm1 = (ix == 0) ? 0.0 : data[ngen-4];349 //double valp1 = (ix == nx-1) ? 0.0 : data[ngen+4];350 361 double valm1 = (ix == 0) ? 0.0 : data[ngen-4]; 351 362 double valp1 = (ix == nx-1) ? 0.0 : data[ngen+4]; … … 381 392 } 382 393 } 383 384 volPtr = NanoVis::load_volume(tag, nx, ny, nz, 4, data, 385 field.valueMin(), field.valueMax(), nzero_min); 394 395 volPtr = NanoVis::load_volume(tag, nx, ny, nz, 4, data, 396 field.valueMin(), field.valueMax(), 397 nzero_min); 386 398 volPtr->xAxis.SetRange(field.rangeMin(Rappture::xaxis), 387 399 field.rangeMax(Rappture::xaxis)); … … 394 406 delete [] data; 395 407 } 408 396 409 // 397 410 // Center this new volume on the origin. … … 407 420 } 408 421 422 /** 423 * \brief Load a 3D volume from a dx-format file 424 */ 409 425 Volume * 410 load_volume_stream(Rappture::Outcome &result, const char *tag,426 load_volume_stream(Rappture::Outcome& result, const char *tag, 411 427 std::iostream& fin) 412 428 { 413 TRACE("load_volume_stream \n");429 TRACE("load_volume_stream %s\n", tag); 414 430 415 431 Rappture::MeshTri2D xymesh; … … 429 445 return NULL; 430 446 } 431 for (start =line; *start == ' ' || *start == '\t'; start++)447 for (start = line; *start == ' ' || *start == '\t'; start++) 432 448 ; // skip leading blanks 433 449 434 450 if (*start != '#') { // skip comment lines 435 if (sscanf(start, "object %d class gridpositions counts %d %d %d", &dummy, &nx, &ny, &nz) == 4) { 451 if (sscanf(start, "object %d class gridpositions counts %d %d %d", 452 &dummy, &nx, &ny, &nz) == 4) { 436 453 // found grid size 437 454 isrect = 1; 438 } else if (sscanf(start, "object %d class array type float rank 1 shape 3 items %d data follows", &dummy, &nxy) == 2) { 455 } else if (sscanf(start, "object %d class array type float rank 1 shape 3 items %d data follows", 456 &dummy, &nxy) == 2) { 439 457 isrect = 0; 440 458 441 459 double xx, yy, zz; 442 for (int i =0; i < nxy; i++) {460 for (int i = 0; i < nxy; i++) { 443 461 fin.getline(line,sizeof(line)-1); 444 462 if (sscanf(line, "%lg %lg %lg", &xx, &yy, &zz) == 3) { … … 463 481 ftmp << xymesh.rangeMin(Rappture::xaxis) << " " 464 482 << xymesh.rangeMax(Rappture::yaxis) << std::endl; 465 for (int i =0; i < nxy; i++) {483 for (int i = 0; i < nxy; i++) { 466 484 ftmp << xymesh.atNode(i).x() << " " << xymesh.atNode(i).y() << std::endl; 467 468 485 } 469 486 ftmp.close(); … … 496 513 } else if (sscanf(start, "delta %lg %lg %lg", &ddx, &ddy, &ddz) == 3) { 497 514 // found one of the delta lines 498 if (ddx != 0.0) { dx = ddx; } 499 else if (ddy != 0.0) { dy = ddy; } 500 else if (ddz != 0.0) { dz = ddz; } 501 } else if (sscanf(start, "object %d class array type %s rank 0 items %d data follows", &dummy, type, &npts) == 3) { 515 if (ddx != 0.0) { 516 dx = ddx; 517 } else if (ddy != 0.0) { 518 dy = ddy; 519 } else if (ddz != 0.0) { 520 dz = ddz; 521 } 522 } else if (sscanf(start, "object %d class array type %s rank 0 items %d data follows", 523 &dummy, type, &npts) == 3) { 502 524 if (isrect && (npts != nx*ny*nz)) { 503 525 result.addError("inconsistent data: expected %d points" … … 510 532 } 511 533 break; 512 } else if (sscanf(start, "object %d class array type %s rank 0 times %d data follows", &dummy, type, &npts) == 3) { 534 } else if (sscanf(start, "object %d class array type %s rank 0 times %d data follows", 535 &dummy, type, &npts) == 3) { 513 536 if (npts != nx*ny*nz) { 514 537 result.addError("inconsistent data: expected %d points" … … 525 548 return NULL; 526 549 } 527 Volume *volPtr = 0;550 Volume *volPtr = NULL; 528 551 if (isrect) { 529 552 Rappture::Mesh1D xgrid(x0, x0+nx*dx, nx); … … 537 560 int iy = 0; 538 561 int iz = 0; 562 539 563 while (!fin.eof() && nread < npts) { 540 564 fin.getline(line,sizeof(line)-1); … … 543 567 return NULL; 544 568 } 545 int n = sscanf(line, "%lg %lg %lg %lg %lg %lg", &dval[0], &dval[1], &dval[2], &dval[3], &dval[4], &dval[5]);546 547 for (int p =0; p < n; p++) {569 int n = sscanf(line, "%lg %lg %lg %lg %lg %lg", 570 &dval[0], &dval[1], &dval[2], &dval[3], &dval[4], &dval[5]); 571 for (int p = 0; p < n; p++) { 548 572 int nindex = iz*nx*ny + iy*nx + ix; 549 573 field.define(nindex, dval[p]); … … 558 582 } 559 583 } 560 584 561 585 // make sure that we read all of the expected points 562 586 if (nread != nx*ny*nz) { … … 565 589 return NULL; 566 590 } 567 591 568 592 // figure out a good mesh spacing 569 593 int nsample = 30; … … 572 596 dz = field.rangeMax(Rappture::zaxis) - field.rangeMin(Rappture::zaxis); 573 597 double dmin = pow((dx*dy*dz)/(nsample*nsample*nsample), 0.333); 574 598 575 599 nx = (int)ceil(dx/dmin); 576 600 ny = (int)ceil(dy/dmin); 577 601 nz = (int)ceil(dz/dmin); 578 602 579 603 #ifndef NV40 580 604 // must be an even power of 2 for older cards … … 583 607 nz = (int)pow(2.0, ceil(log10((double)nz)/log10(2.0))); 584 608 #endif 585 586 609 610 //#define _SOBEL 587 611 #ifdef _SOBEL_ 588 612 const int step = 1; … … 590 614 int ngen = 0; 591 615 double nzero_min = 0.0; 592 for (int iz =0; iz < nz; iz++) {616 for (int iz = 0; iz < nz; iz++) { 593 617 double zval = z0 + iz*dmin; 594 for (int iy =0; iy < ny; iy++) {618 for (int iy = 0; iy < ny; iy++) { 595 619 double yval = y0 + iy*dmin; 596 for (int ix =0; ix < nx; ix++) {620 for (int ix = 0; ix < nx; ix++) { 597 621 double xval = x0 + ix*dmin; 598 double v = field.value(xval, yval,zval);599 600 if (v != 0.0 f&& v < nzero_min) {622 double v = field.value(xval, yval, zval); 623 624 if (v != 0.0 && v < nzero_min) { 601 625 nzero_min = v; 602 626 } 603 627 604 628 // scale all values [0-1], -1 => out of bounds 605 629 v = (isnan(v)) ? -1.0 : v; 606 630 607 631 cdata[ngen] = v; 608 632 ngen += step; … … 610 634 } 611 635 } 612 613 float* data = computeGradient(cdata, nx, ny, nz, field.valueMin(), 636 637 float *data = computeGradient(cdata, nx, ny, nz, 638 field.valueMin(), 614 639 field.valueMax()); 615 640 #else 616 641 double vmin = field.valueMin(); 617 642 double vmax = field.valueMax(); 618 double nzero_min = 0 ;643 double nzero_min = 0.0; 619 644 float *data = new float[nx*ny*nz * 4]; 620 645 double dv = vmax - vmin; 621 646 int ngen = 0; 622 if (dv == 0.0) dv = 1.0; 623 624 for (int iz=0; iz < nz; iz++) { 647 if (dv == 0.0) { 648 dv = 1.0; 649 } 650 651 for (int iz = 0; iz < nz; iz++) { 625 652 double zval = z0 + iz*dmin; 626 for (int iy =0; iy < ny; iy++) {653 for (int iy = 0; iy < ny; iy++) { 627 654 double yval = y0 + iy*dmin; 628 for (int ix =0; ix < nx; ix++) {655 for (int ix = 0; ix < nx; ix++) { 629 656 double xval = x0 + ix*dmin; 630 657 double v = field.value(xval,yval,zval); 631 658 632 659 // scale all values [0-1], -1 => out of bounds 633 660 v = (isnan(v)) ? -1.0 : (v - vmin)/dv; 634 661 635 662 data[ngen] = v; 636 663 ngen += 4; … … 638 665 } 639 666 } 640 667 641 668 computeSimpleGradient(data, nx, ny, nz); 642 669 #endif 643 644 #ifdef notdef 645 for (int i=0; i<nx*ny*nz; i++) { 646 TRACE("enddata[%i] = %lg\n",i,data[i]); 647 } 648 #endif 670 649 671 TRACE("nx = %i ny = %i nz = %i\n",nx,ny,nz); 650 672 TRACE("dx = %lg dy = %lg dz = %lg\n",dx,dy,dz); 651 673 TRACE("dataMin = %lg\tdataMax = %lg\tnzero_min = %lg\n", 652 field.valueMin(),field.valueMax(),nzero_min);653 674 field.valueMin(), field.valueMax(), nzero_min); 675 654 676 volPtr = NanoVis::load_volume(tag, nx, ny, nz, 4, data, 655 field.valueMin(), field.valueMax(), nzero_min); 677 field.valueMin(), field.valueMax(), 678 nzero_min); 656 679 volPtr->xAxis.SetRange(field.rangeMin(Rappture::xaxis), 657 680 field.rangeMax(Rappture::xaxis)); … … 665 688 // POINTSET 666 689 /* 667 PointSet *pset = new PointSet();668 pset->initialize(vol ume[index], (float*)data);690 PointSet *pset = new PointSet(); 691 pset->initialize(volPtr, (float*)data); 669 692 pset->setVisible(true); 670 693 NanoVis::pointSet.push_back(pset); 671 694 updateColor(pset); 672 NanoVis::volume[index]->pointsetIndex = NanoVis::pointSet.size() - 1;695 volPtr->pointsetIndex = NanoVis::pointSet.size() - 1; 673 696 */ 674 697 675 698 delete [] data; 676 677 699 } else { 678 700 Rappture::Mesh1D zgrid(z0, z0+nz*dz, nz); 679 701 Rappture::FieldPrism3D field(xymesh, zgrid); 680 702 681 703 double dval; 682 704 int nread = 0; … … 692 714 int nid = nxy*iz + ixy; 693 715 field.define(nid, dval); 694 716 695 717 nread++; 696 718 if (++iz >= nz) { … … 700 722 } 701 723 } 702 724 703 725 // make sure that we read all of the expected points 704 726 if (nread != nxy*nz) { … … 707 729 return NULL; 708 730 } 709 731 710 732 // figure out a good mesh spacing 711 733 int nsample = 30; … … 717 739 dz = field.rangeMax(Rappture::zaxis) - field.rangeMin(Rappture::zaxis); 718 740 double dmin = pow((dx*dy*dz)/(nsample*nsample*nsample), 0.333); 719 741 720 742 nx = (int)ceil(dx/dmin); 721 743 ny = (int)ceil(dy/dmin); … … 728 750 #endif 729 751 float *data = new float[4*nx*ny*nz]; 730 752 731 753 double vmin = field.valueMin(); 732 754 double dv = field.valueMax() - field.valueMin(); 733 if (dv == 0.0) { dv = 1.0; } 734 755 if (dv == 0.0) { 756 dv = 1.0; 757 } 758 735 759 // generate the uniformly sampled data that we need for a volume 736 760 int ngen = 0; 737 761 double nzero_min = 0.0; 738 for (i z=0; iz < nz; iz++) {762 for (int iz = 0; iz < nz; iz++) { 739 763 double zval = z0 + iz*dmin; 740 for (int iy =0; iy < ny; iy++) {764 for (int iy = 0; iy < ny; iy++) { 741 765 double yval = y0 + iy*dmin; 742 for (int ix =0; ix < nx; ix++) {766 for (int ix = 0; ix < nx; ix++) { 743 767 double xval = x0 + ix*dmin; 744 double v = field.value(xval, yval,zval);745 746 if (v != 0.0 f&& v < nzero_min) {768 double v = field.value(xval, yval, zval); 769 770 if (v != 0.0 && v < nzero_min) { 747 771 nzero_min = v; 748 772 } … … 750 774 v = (isnan(v)) ? -1.0 : (v - vmin)/dv; 751 775 data[ngen] = v; 752 776 753 777 ngen += 4; 754 778 } 755 779 } 756 780 } 757 781 758 782 // Compute the gradient of this data. BE CAREFUL: center 759 783 // calculation on each node to avoid skew in either direction. … … 769 793 } else { 770 794 data[ngen+1] = valp1-valm1; // assume dx=1 771 //data[ngen+1] = ((valp1-valm1) + 1 ) *0.5; // assume dx=1 (ISO)795 //data[ngen+1] = ((valp1-valm1) + 1.0) * 0.5; // assume dx=1 (ISO) 772 796 } 773 797 … … 779 803 } else { 780 804 data[ngen+2] = valp1-valm1; // assume dy=1 781 //data[ngen+2] = ((valp1-valm1) + 1 ) *0.5; // assume dy=1 (ISO)805 //data[ngen+2] = ((valp1-valm1) + 1.0) * 0.5; // assume dy=1 (ISO) 782 806 } 783 807 … … 789 813 } else { 790 814 data[ngen+3] = valp1-valm1; // assume dz=1 791 //data[ngen+3] = ((valp1-valm1) + 1 ) *0.5; // assume dz=1 (ISO)815 //data[ngen+3] = ((valp1-valm1) + 1.0) * 0.5; // assume dz=1 (ISO) 792 816 } 793 817 … … 796 820 } 797 821 } 798 822 799 823 volPtr = NanoVis::load_volume(tag, nx, ny, nz, 4, data, 800 field.valueMin(), field.valueMax(), nzero_min); 824 field.valueMin(), field.valueMax(), 825 nzero_min); 801 826 volPtr->xAxis.SetRange(field.rangeMin(Rappture::xaxis), 802 827 field.rangeMax(Rappture::xaxis)); … … 810 835 // POINTSET 811 836 /* 812 PointSet *pset = new PointSet();813 pset->initialize(vol ume[index], (float*)data);837 PointSet *pset = new PointSet(); 838 pset->initialize(volPtr, (float*)data); 814 839 pset->setVisible(true); 815 840 NanoVis::pointSet.push_back(pset); 816 841 updateColor(pset); 817 NanoVis::volume[index]->pointsetIndex = NanoVis::pointSet.size() - 1;842 volPtr->pointsetIndex = NanoVis::pointSet.size() - 1; 818 843 */ 819 820 844 821 845 delete [] data; 822 846 }
Note: See TracChangeset
for help on using the changeset viewer.