Ignore:
Timestamp:
Mar 13, 2012, 5:49:37 PM (12 years ago)
Author:
ldelgass
Message:

Prepare to merge load_volume_stream and load_volume_stream2 into single
function. This commit just normalizes formatting between the functions and
a includes very minor differences. This will make it easier to diff the
functions and make future functional changes more obvious. This commit should
have no functional differences with the previous revision.

File:
1 edited

Legend:

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

    r2840 r2849  
    2727#include <unistd.h>
    2828
     29#include <RpOutcome.h>
    2930#include <RpField1D.h>
    3031#include <RpFieldRect3D.h>
     
    3637#include "nanovis.h"
    3738#include "Unirect.h"
     39#include "Volume.h"
    3840#include "ZincBlendeVolume.h"
    3941#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
    4248 */
    4349Volume *
    44 load_volume_stream2(Rappture::Outcome &result, const char *tag,
     50load_volume_stream2(Rappture::Outcome& result, const char *tag,
    4551                    std::iostream& fin)
    4652{
    4753    TRACE("load_volume_stream2 %s\n", tag);
     54
    4855    Rappture::MeshTri2D xymesh;
    4956    int dummy, nx, ny, nz, nxy, npts;
     
    5259
    5360    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.
    5664    nx = ny = nz = npts = nxy = 0;
    5765    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++)
    6068            ;  // skip leading blanks
    6169
    6270        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",
    6472                       &dummy, &nx, &ny, &nz) == 4) {
    6573                // found grid size
    6674                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) {
    6877                isrect = 0;
     78
    6979                double xx, yy, zz;
    70                 for (int i=0; i < nxy; i++) {
     80                for (int i = 0; i < nxy; i++) {
    7181                    fin.getline(line,sizeof(line)-1);
    7282                    if (sscanf(line, "%lg %lg %lg", &xx, &yy, &zz) == 3) {
     
    91101                ftmp << xymesh.rangeMin(Rappture::xaxis) << " "
    92102                     << xymesh.rangeMax(Rappture::yaxis) << std::endl;
    93                 for (int i=0; i < nxy; i++) {
     103                for (int i = 0; i < nxy; i++) {
    94104                    ftmp << xymesh.atNode(i).x() << " " << xymesh.atNode(i).y() << std::endl;
    95105                }
     
    115125                    return NULL;
    116126                }
    117                 unlink(fpts), unlink(fcells);
     127                unlink(fpts);
     128                unlink(fcells);
    118129            } else if (sscanf(start, "object %d class regulararray count %d", &dummy, &nz) == 2) {
    119130                // found z-grid
     
    140151                    return NULL;
    141152                }
    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) {
    143155                if (isrect && (npts != nx*ny*nz)) {
    144                     result.addError("inconsistent data: expected %d points "
     156                    result.addError("inconsistent data: expected %d points"
    145157                                    " but found %d points", nx*ny*nz, npts);
    146158                    return NULL;
    147159                } else if (!isrect && (npts != nxy*nz)) {
    148                     result.addError("inconsistent data: expected %d points "
     160                    result.addError("inconsistent data: expected %d points"
    149161                                    " but found %d points", nxy*nz, npts);
    150162                    return NULL;
    151163                }
    152164                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) {
    154167                if (npts != nx*ny*nz) {
    155                     result.addError("inconsistent data: expected %d points "
     168                    result.addError("inconsistent data: expected %d points"
    156169                                    " but found %d points", nx*ny*nz, npts);
    157170                    return NULL;
     
    171184    Volume *volPtr = NULL;
    172185    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
    173193        double dval[6];
    174194        int nread = 0;
     
    176196        int iy = 0;
    177197        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
    185199        while (!fin.eof() && nread < npts) {
    186200            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++) {
    190205                int nindex = (iz*nx*ny + iy*nx + ix) * 4;
    191206                data[nindex] = dval[p];
    192                
     207
    193208                if (dval[p] < vmin) {
    194209                    vmin = dval[p];
     
    196211                    vmax = dval[p];
    197212                }
    198                 if (dval[p] != 0.0f && dval[p] < nzero_min) {
     213                if (dval[p] != 0.0 && dval[p] < nzero_min) {
    199214                    nzero_min = dval[p];
    200215                }
    201                
     216
    202217                nread++;
    203218                if (++iz >= nz) {
     
    210225            }
    211226        }
    212        
     227
    213228        // make sure that we read all of the expected points
    214229        if (nread != nx*ny*nz) {
    215             result.addError("inconsistent data: expected %d points "
     230            result.addError("inconsistent data: expected %d points"
    216231                            " but found %d points", nx*ny*nz, nread);
    217232            return NULL;
    218233        }
    219        
     234
    220235        double dv = vmax - vmin;
    221236        int count = nx*ny*nz;
     
    225240            dv = 1.0;
    226241        }
    227        
     242
    228243        for (int i = 0; i < count; ++i) {
    229244            v = data[ngen];
    230245            // scale all values [0-1], -1 => out of bounds
    231             //
    232             // INSOO
    233246            v = (isnan(v)) ? -1.0 : (v - vmin)/dv;
    234247            data[ngen] = v;
    235248            ngen += 4;
    236249        }
    237        
     250
    238251        computeSimpleGradient(data, nx, ny, nz);
    239        
     252
    240253        dx = nx;
    241254        dy = ny;
    242255        dz = nz;
    243        
     256
    244257        volPtr = NanoVis::load_volume(tag, nx, ny, nz, 4, data,
    245258                                      vmin, vmax, nzero_min);
     
    250263        volPtr->update_pending = true;
    251264        delete [] data;
    252        
    253265    } else {
    254266        Rappture::Mesh1D zgrid(z0, z0+nz*dz, nz);
    255267        Rappture::FieldPrism3D field(xymesh, zgrid);
    256        
     268
    257269        double dval;
    258270        int nread = 0;
     
    268280                int nid = nxy*iz + ixy;
    269281                field.define(nid, dval);
    270                
     282
    271283                nread++;
    272284                if (++iz >= nz) {
     
    276288            }
    277289        }
    278        
     290
    279291        // make sure that we read all of the expected points
    280292        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);
    283295            return NULL;
    284296        }
    285        
     297
    286298        // figure out a good mesh spacing
    287299        int nsample = 30;
     
    293305        dz = field.rangeMax(Rappture::zaxis) - field.rangeMin(Rappture::zaxis);
    294306        double dmin = pow((dx*dy*dz)/(nsample*nsample*nsample), 0.333);
    295        
     307
    296308        nx = (int)ceil(dx/dmin);
    297309        ny = (int)ceil(dy/dmin);
     
    304316#endif
    305317        float *data = new float[4*nx*ny*nz];
    306        
     318
    307319        double vmin = field.valueMin();
    308320        double dv = field.valueMax() - field.valueMin();
    309321        if (dv == 0.0) {
    310             dv = 1.0;
    311         }
     322            dv = 1.0;
     323        }
     324
    312325        // generate the uniformly sampled data that we need for a volume
    313326        int ngen = 0;
    314327        double nzero_min = 0.0;
    315         for (iz=0; iz < nz; iz++) {
     328        for (int iz = 0; iz < nz; iz++) {
    316329            double zval = z0 + iz*dmin;
    317             for (int iy=0; iy < ny; iy++) {
     330            for (int iy = 0; iy < ny; iy++) {
    318331                double yval = y0 + iy*dmin;
    319                 for (int ix=0; ix < nx; ix++) {
     332                for (int ix = 0; ix < nx; ix++) {
    320333                    double xval = x0 + ix*dmin;
    321                     double v = field.value(xval,yval,zval);
    322                    
    323                     if (v != 0.0f && v < nzero_min) {
     334                    double v = field.value(xval, yval, zval);
     335
     336                    if (v != 0.0 && v < nzero_min) {
    324337                        nzero_min = v;
    325338                    }
     
    327340                    v = (isnan(v)) ? -1.0 : (v - vmin)/dv;
    328341                    data[ngen] = v;
    329                    
     342
    330343                    ngen += 4;
    331344                }
    332345            }
    333346        }
    334        
     347
    335348        // FIXME: This next section of code should be replaced by a
    336349        // call to the computeSimpleGradient() function. There is a slight
     
    346359                for (int ix=0; ix < nx; ix++) {
    347360                    // 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];
    350361                    double valm1 = (ix == 0) ? 0.0 : data[ngen-4];
    351362                    double valp1 = (ix == nx-1) ? 0.0 : data[ngen+4];
     
    381392            }
    382393        }
    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);
    386398        volPtr->xAxis.SetRange(field.rangeMin(Rappture::xaxis),
    387399                               field.rangeMax(Rappture::xaxis));
     
    394406        delete [] data;
    395407    }
     408
    396409    //
    397410    // Center this new volume on the origin.
     
    407420}
    408421
     422/**
     423 * \brief Load a 3D volume from a dx-format file
     424 */
    409425Volume *
    410 load_volume_stream(Rappture::Outcome &result, const char *tag,
     426load_volume_stream(Rappture::Outcome& result, const char *tag,
    411427                   std::iostream& fin)
    412428{
    413     TRACE("load_volume_stream\n");
     429    TRACE("load_volume_stream %s\n", tag);
    414430
    415431    Rappture::MeshTri2D xymesh;
     
    429445            return NULL;
    430446        }
    431         for (start=line; *start == ' ' || *start == '\t'; start++)
     447        for (start = line; *start == ' ' || *start == '\t'; start++)
    432448            ;  // skip leading blanks
    433449
    434450        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) {
    436453                // found grid size
    437454                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) {
    439457                isrect = 0;
    440458
    441459                double xx, yy, zz;
    442                 for (int i=0; i < nxy; i++) {
     460                for (int i = 0; i < nxy; i++) {
    443461                    fin.getline(line,sizeof(line)-1);
    444462                    if (sscanf(line, "%lg %lg %lg", &xx, &yy, &zz) == 3) {
     
    463481                ftmp << xymesh.rangeMin(Rappture::xaxis) << " "
    464482                     << xymesh.rangeMax(Rappture::yaxis) << std::endl;
    465                 for (int i=0; i < nxy; i++) {
     483                for (int i = 0; i < nxy; i++) {
    466484                    ftmp << xymesh.atNode(i).x() << " " << xymesh.atNode(i).y() << std::endl;
    467 
    468485                }
    469486                ftmp.close();
     
    496513            } else if (sscanf(start, "delta %lg %lg %lg", &ddx, &ddy, &ddz) == 3) {
    497514                // 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) {
    502524                if (isrect && (npts != nx*ny*nz)) {
    503525                    result.addError("inconsistent data: expected %d points"
     
    510532                }
    511533                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) {
    513536                if (npts != nx*ny*nz) {
    514537                    result.addError("inconsistent data: expected %d points"
     
    525548        return NULL;
    526549    }
    527     Volume *volPtr = 0;
     550    Volume *volPtr = NULL;
    528551    if (isrect) {
    529552        Rappture::Mesh1D xgrid(x0, x0+nx*dx, nx);
     
    537560        int iy = 0;
    538561        int iz = 0;
     562
    539563        while (!fin.eof() && nread < npts) {
    540564            fin.getline(line,sizeof(line)-1);
     
    543567                return NULL;
    544568            }
    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++) {
    548572                int nindex = iz*nx*ny + iy*nx + ix;
    549573                field.define(nindex, dval[p]);
     
    558582            }
    559583        }
    560        
     584
    561585        // make sure that we read all of the expected points
    562586        if (nread != nx*ny*nz) {
     
    565589            return NULL;
    566590        }
    567        
     591
    568592        // figure out a good mesh spacing
    569593        int nsample = 30;
     
    572596        dz = field.rangeMax(Rappture::zaxis) - field.rangeMin(Rappture::zaxis);
    573597        double dmin = pow((dx*dy*dz)/(nsample*nsample*nsample), 0.333);
    574        
     598
    575599        nx = (int)ceil(dx/dmin);
    576600        ny = (int)ceil(dy/dmin);
    577601        nz = (int)ceil(dz/dmin);
    578        
     602
    579603#ifndef NV40
    580604        // must be an even power of 2 for older cards
     
    583607        nz = (int)pow(2.0, ceil(log10((double)nz)/log10(2.0)));
    584608#endif
    585        
    586         //#define _SOBEL
     609
     610//#define _SOBEL
    587611#ifdef _SOBEL_
    588612        const int step = 1;
     
    590614        int ngen = 0;
    591615        double nzero_min = 0.0;
    592         for (int iz=0; iz < nz; iz++) {
     616        for (int iz = 0; iz < nz; iz++) {
    593617            double zval = z0 + iz*dmin;
    594             for (int iy=0; iy < ny; iy++) {
     618            for (int iy = 0; iy < ny; iy++) {
    595619                double yval = y0 + iy*dmin;
    596                 for (int ix=0; ix < nx; ix++) {
     620                for (int ix = 0; ix < nx; ix++) {
    597621                    double xval = x0 + ix*dmin;
    598                     double v = field.value(xval,yval,zval);
    599                    
    600                     if (v != 0.0f && v < nzero_min) {
     622                    double v = field.value(xval, yval, zval);
     623
     624                    if (v != 0.0 && v < nzero_min) {
    601625                        nzero_min = v;
    602626                    }
    603                    
     627
    604628                    // scale all values [0-1], -1 => out of bounds
    605629                    v = (isnan(v)) ? -1.0 : v;
    606                    
     630
    607631                    cdata[ngen] = v;
    608632                    ngen += step;
     
    610634            }
    611635        }
    612        
    613         float* data = computeGradient(cdata, nx, ny, nz, field.valueMin(),
     636
     637        float *data = computeGradient(cdata, nx, ny, nz,
     638                                      field.valueMin(),
    614639                                      field.valueMax());
    615640#else
    616641        double vmin = field.valueMin();
    617642        double vmax = field.valueMax();
    618         double nzero_min = 0;
     643        double nzero_min = 0.0;
    619644        float *data = new float[nx*ny*nz * 4];
    620645        double dv = vmax - vmin;
    621646        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++) {
    625652            double zval = z0 + iz*dmin;
    626             for (int iy=0; iy < ny; iy++) {
     653            for (int iy = 0; iy < ny; iy++) {
    627654                double yval = y0 + iy*dmin;
    628                 for (int ix=0; ix < nx; ix++) {
     655                for (int ix = 0; ix < nx; ix++) {
    629656                    double xval = x0 + ix*dmin;
    630657                    double v = field.value(xval,yval,zval);
    631                    
     658
    632659                    // scale all values [0-1], -1 => out of bounds
    633660                    v = (isnan(v)) ? -1.0 : (v - vmin)/dv;
    634                    
     661
    635662                    data[ngen] = v;
    636663                    ngen += 4;
     
    638665            }
    639666        }
    640        
     667
    641668        computeSimpleGradient(data, nx, ny, nz);
    642669#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
    649671        TRACE("nx = %i ny = %i nz = %i\n",nx,ny,nz);
    650672        TRACE("dx = %lg dy = %lg dz = %lg\n",dx,dy,dz);
    651673        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
    654676        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);
    656679        volPtr->xAxis.SetRange(field.rangeMin(Rappture::xaxis),
    657680                               field.rangeMax(Rappture::xaxis));
     
    665688        // POINTSET
    666689        /*
    667           PointSet* pset = new PointSet();
    668           pset->initialize(volume[index], (float*) data);
     690          PointSet *pset = new PointSet();
     691          pset->initialize(volPtr, (float*)data);
    669692          pset->setVisible(true);
    670693          NanoVis::pointSet.push_back(pset);
    671694          updateColor(pset);
    672           NanoVis::volume[index]->pointsetIndex = NanoVis::pointSet.size() - 1;
     695          volPtr->pointsetIndex = NanoVis::pointSet.size() - 1;
    673696        */
    674        
     697
    675698        delete [] data;
    676        
    677699    } else {
    678700        Rappture::Mesh1D zgrid(z0, z0+nz*dz, nz);
    679701        Rappture::FieldPrism3D field(xymesh, zgrid);
    680        
     702
    681703        double dval;
    682704        int nread = 0;
     
    692714                int nid = nxy*iz + ixy;
    693715                field.define(nid, dval);
    694                
     716
    695717                nread++;
    696718                if (++iz >= nz) {
     
    700722            }
    701723        }
    702        
     724
    703725        // make sure that we read all of the expected points
    704726        if (nread != nxy*nz) {
     
    707729            return NULL;
    708730        }
    709        
     731
    710732        // figure out a good mesh spacing
    711733        int nsample = 30;
     
    717739        dz = field.rangeMax(Rappture::zaxis) - field.rangeMin(Rappture::zaxis);
    718740        double dmin = pow((dx*dy*dz)/(nsample*nsample*nsample), 0.333);
    719        
     741
    720742        nx = (int)ceil(dx/dmin);
    721743        ny = (int)ceil(dy/dmin);
     
    728750#endif
    729751        float *data = new float[4*nx*ny*nz];
    730        
     752
    731753        double vmin = field.valueMin();
    732754        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
    735759        // generate the uniformly sampled data that we need for a volume
    736760        int ngen = 0;
    737761        double nzero_min = 0.0;
    738         for (iz=0; iz < nz; iz++) {
     762        for (int iz = 0; iz < nz; iz++) {
    739763            double zval = z0 + iz*dmin;
    740             for (int iy=0; iy < ny; iy++) {
     764            for (int iy = 0; iy < ny; iy++) {
    741765                double yval = y0 + iy*dmin;
    742                 for (int ix=0; ix < nx; ix++) {
     766                for (int ix = 0; ix < nx; ix++) {
    743767                    double xval = x0 + ix*dmin;
    744                     double v = field.value(xval,yval,zval);
    745                    
    746                     if (v != 0.0f && v < nzero_min) {
     768                    double v = field.value(xval, yval, zval);
     769
     770                    if (v != 0.0 && v < nzero_min) {
    747771                        nzero_min = v;
    748772                    }
     
    750774                    v = (isnan(v)) ? -1.0 : (v - vmin)/dv;
    751775                    data[ngen] = v;
    752                    
     776
    753777                    ngen += 4;
    754778                }
    755779            }
    756780        }
    757        
     781
    758782        // Compute the gradient of this data.  BE CAREFUL: center
    759783        // calculation on each node to avoid skew in either direction.
     
    769793                    } else {
    770794                        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)
    772796                    }
    773797                   
     
    779803                    } else {
    780804                        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)
    782806                    }
    783807                   
     
    789813                    } else {
    790814                        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)
    792816                    }
    793817                   
     
    796820            }
    797821        }
    798        
     822
    799823        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);
    801826        volPtr->xAxis.SetRange(field.rangeMin(Rappture::xaxis),
    802827                               field.rangeMax(Rappture::xaxis));
     
    810835        // POINTSET
    811836        /*
    812           PointSet* pset = new PointSet();
    813           pset->initialize(volume[index], (float*) data);
     837          PointSet *pset = new PointSet();
     838          pset->initialize(volPtr, (float*)data);
    814839          pset->setVisible(true);
    815840          NanoVis::pointSet.push_back(pset);
    816841          updateColor(pset);
    817           NanoVis::volume[index]->pointsetIndex = NanoVis::pointSet.size() - 1;
     842          volPtr->pointsetIndex = NanoVis::pointSet.size() - 1;
    818843        */
    819        
    820        
     844
    821845        delete [] data;
    822846    }
Note: See TracChangeset for help on using the changeset viewer.