Changeset 2721 for trunk


Ignore:
Timestamp:
Dec 7, 2011, 4:19:55 PM (13 years ago)
Author:
gah
Message:
 
Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/scripts/Makefile.in

    r2687 r2721  
    129129                $(srcdir)/vtkcontourviewer.tcl \
    130130                $(srcdir)/vtkstreamlinesviewer.tcl \
     131                $(srcdir)/vtkvolumeviewer.tcl \
    131132                $(srcdir)/xylegend.tcl \
    132133                $(srcdir)/xyprint.tcl \
  • trunk/gui/scripts/field.tcl

    r2718 r2721  
    811811            set _comp2dims($cname) "3D"
    812812            set _comp2dx($cname)  [$_field get -decode no $cname.dx]
    813             if 0 {
     813            if 1 {
    814814            set data  [$_field get -decode yes $cname.dx]
    815815            set file "/tmp/junk.dx"
  • trunk/gui/src/RpConvertDxToVtk.c

    r2720 r2721  
    1515#include <stdlib.h>
    1616#include <ctype.h>
     17#include <math.h>
    1718#include <limits.h>
    1819#include <float.h>
     
    5253                  Tcl_Obj *const *objv)
    5354{
    54     int nx, ny, nz, npts;
    55     double x0, y0, z0, dx, dy, dz, ddx, ddy, ddz;
     55    Tcl_Obj *objPtr;
    5656    char *p, *pend;
    57     int length;
    58     double xValueMin, yValueMin, zValueMin;
    59     double xValueMax, yValueMax, zValueMax;
    60     double xMin, yMin, zMin;
     57    char *string;
     58    char mesg[2000];
     59    double delta[3];
     60    double origin[3];
     61    double xMax, yMax, zMax, xMin, yMin, zMin;
     62    double maxValue[3], minValue[3];
     63    int count[3];
     64    int length, nComponents, nValues, nPoints;
    6165    int xNum, yNum, zNum;
    62     double xMax, yMax, zMax;
    63     int nComponents, nValues;
    64     char *string;
    65     Tcl_Obj *objPtr;
    66     char mesg[2000];
    6766    size_t ix;
    6867
    69     dx = dy = dz = 0.0;                 /* Suppress compiler warning. */
    70     x0 = y0 = z0 = 0.0;                 /* May not have an origin line. */
    71     nx = ny = nz = npts = 0;            /* Suppress compiler warning. */
     68    nComponents = nPoints = 0;
     69    delta[0] = delta[1] = delta[2] = 0.0; /* Suppress compiler warning. */
     70    origin[0] = origin[1] = origin[2] = 0.0; /* May not have an origin line. */
     71    count[0] = count[1] = count[2] = 0; /* Suppress compiler warning. */
    7272
    7373    if (objc != 2) {
     
    7979    for (p = string, pend = p + length; p < pend; /*empty*/) {
    8080        char *line;
     81        double ddx, ddy, ddz;
    8182
    8283        line = GetLine(&p, pend);
     
    8889        }
    8990        if (sscanf(line, "object %*d class gridpositions counts %d %d %d",
    90                    &nx, &ny, &nz) == 3) {
    91             if ((nx < 0) || (ny < 0) || (nz < 0)) {
     91                   count, count + 1, count + 2) == 3) {
     92            if ((count[0] < 0) || (count[1] < 0) || (count[2] < 0)) {
    9293                sprintf(mesg, "invalid grid size: x=%d, y=%d, z=%d",
    93                         nx, ny, nz);
    94                 Tcl_AppendResult(interp, mesg, (char *)NULL);
    95                 return TCL_ERROR;
    96             }
    97         } else if (sscanf(line, "origin %lg %lg %lg", &x0, &y0, &z0) == 3) {
     94                        count[0], count[1], count[2]);
     95                Tcl_AppendResult(interp, mesg, (char *)NULL);
     96                return TCL_ERROR;
     97            }
     98        } else if (sscanf(line, "origin %lg %lg %lg", origin, origin + 1,
     99                origin + 2) == 3) {
    98100            /* Found origin. */
    99101        } else if (sscanf(line, "delta %lg %lg %lg", &ddx, &ddy, &ddz) == 3) {
    100             /* Found one of the delta lines. */
    101             if (ddx != 0.0) {
    102                 dx = ddx;
    103             } else if (ddy != 0.0) {
    104                 dy = ddy;
    105             } else if (ddz != 0.0) {
    106                 dz = ddz;
    107             }
     102            if (nComponents == 3) {
     103                Tcl_AppendResult(interp, "too many delta statements",
     104                        (char *)NULL);
     105                return TCL_ERROR;
     106            }
     107            delta[nComponents] = sqrt((ddx * ddx) + (ddy * ddy) + (ddz * ddz));
     108            nComponents++;
    108109        } else if (sscanf(line, "object %*d class array type %*s shape 3"
    109                 " rank 1 items %d data follows", &npts) == 1) {
    110             if (npts < 0) {
    111                 sprintf(mesg, "bad # points %d", npts);
     110                " rank 1 items %d data follows", &nPoints) == 1) {
     111            if (nPoints < 0) {
     112                sprintf(mesg, "bad # points %d", nPoints);
    112113                Tcl_AppendResult(interp, mesg, (char *)NULL);
    113114                return TCL_ERROR;
    114115            }   
    115             printf("#points=%d\n", npts);
    116             if (npts != nx*ny*nz) {
     116            printf("#points=%d\n", nPoints);
     117            if (nPoints != count[0]*count[1]*count[2]) {
    117118                sprintf(mesg, "inconsistent data: expected %d points"
    118                         " but found %d points", nx*ny*nz, npts);
     119                        " but found %d points", count[0]*count[1]*count[2],
     120                        nPoints);
    119121                Tcl_AppendResult(interp, mesg, (char *)NULL);
    120122                return TCL_ERROR;
     
    122124            break;
    123125        } else if (sscanf(line, "object %*d class array type %*s rank 0"
    124                 " times %d data follows", &npts) == 1) {
    125             if (npts != nx*ny*nz) {
     126                " times %d data follows", &nPoints) == 1) {
     127            if (nPoints != count[0]*count[1]*count[2]) {
    126128                sprintf(mesg, "inconsistent data: expected %d points"
    127                         " but found %d points", nx*ny*nz, npts);
     129                        " but found %d points", count[0]*count[1]*count[2],
     130                        nPoints);
    128131                Tcl_AppendResult(interp, mesg, (char *)NULL);
    129132                return TCL_ERROR;
     
    132135        }
    133136    }
    134     if (npts != nx*ny*nz) {
     137    if (nPoints != count[0]*count[1]*count[2]) {
    135138        sprintf(mesg, "inconsistent data: expected %d points"
    136                         " but found %d points", nx*ny*nz, npts);
     139                        " but found %d points", count[0]*count[1]*count[2],
     140                        nPoints);
    137141        Tcl_AppendResult(interp, mesg, (char *)NULL);
    138142        return TCL_ERROR;
     
    143147    Tcl_AppendToObj(objPtr, "ASCII\n", -1);
    144148    Tcl_AppendToObj(objPtr, "DATASET STRUCTURED_POINTS\n", -1);
    145     sprintf(mesg, "DIMENSIONS %d %d %d\n", nx, ny, nz);
    146     Tcl_AppendToObj(objPtr, mesg, -1);
    147     sprintf(mesg, "ORIGIN %g %g %g\n", x0, y0, z0);
    148     Tcl_AppendToObj(objPtr, mesg, -1);
    149     sprintf(mesg, "SPACING %g %g %g\n", dx, dy, dx);
    150     Tcl_AppendToObj(objPtr, mesg, -1);
    151     sprintf(mesg, "POINT_DATA %d\n", npts);
    152     Tcl_AppendToObj(objPtr, mesg, -1);
    153 
    154     xValueMin = yValueMin = zValueMin = FLT_MAX;
    155     xValueMax = yValueMax = zValueMax = -FLT_MAX;
    156     xMin = x0, yMin = y0, zMin = z0;
    157     xNum = nx, yNum = ny, zNum = nz;
    158     xMax = xMin + dx * xNum;
    159     yMax = yMin + dy * yNum;
    160     zMax = zMin + dz * zNum;
     149    sprintf(mesg, "DIMENSIONS %d %d %d\n", count[0], count[1], count[2]);
     150    Tcl_AppendToObj(objPtr, mesg, -1);
     151    sprintf(mesg, "ORIGIN %g %g %g\n", origin[0], origin[1], origin[2]);
     152    Tcl_AppendToObj(objPtr, mesg, -1);
     153    sprintf(mesg, "SPACING %g %g %g\n", delta[0], delta[1], delta[2]);
     154    Tcl_AppendToObj(objPtr, mesg, -1);
     155    sprintf(mesg, "POINT_DATA %d\n", nPoints);
     156    Tcl_AppendToObj(objPtr, mesg, -1);
     157
     158    minValue[0] = minValue[1] = minValue[2] = DBL_MAX;
     159    maxValue[0] = maxValue[1] = maxValue[2] = -DBL_MAX;
     160    xMin = origin[0], yMin = origin[1], zMin = origin[2];
     161    xNum = count[0], yNum = count[1], zNum = count[2];
     162    xMax = origin[0] + delta[0] * count[0];
     163    yMax = origin[1] + delta[1] * count[1];
     164    zMax = origin[2] + delta[2] * count[2];
    161165    nValues = 0;
    162     for (ix = 0; ix < nx; ix++) {
     166    for (ix = 0; ix < xNum; ix++) {
    163167        size_t iy;
    164168
    165         for (iy = 0; iy < ny; iy++) {
     169        for (iy = 0; iy < yNum; iy++) {
    166170            size_t iz;
    167171
    168             for (iz = 0; iz < nz; iz++) {
     172            for (iz = 0; iz < zNum; iz++) {
    169173                const char *line;
    170174                double vx, vy, vz;
    171175
    172                 if ((p == pend) || (nValues > (size_t)npts)) {
     176                if ((p == pend) || (nValues > (size_t)nPoints)) {
    173177                    break;
    174178                }
     
    178182                }
    179183                if (sscanf(line, "%lg %lg %lg", &vx, &vy, &vz) == 3) {
    180                     if (vx < xValueMin) {
    181                         xValueMin = vx;
    182                     } else if (vx > xValueMax) {
    183                         xValueMax = vx;
     184                    if (vx < minValue[0]) {
     185                        minValue[0] = vx;
     186                    } else if (vx > maxValue[0]) {
     187                        maxValue[0] = vx;
    184188                    }
    185                     if (vy < yValueMin) {
    186                         yValueMin = vy;
    187                     } else if (vy > yValueMax) {
    188                         yValueMax = vy;
     189                    if (vy < minValue[1]) {
     190                        minValue[1] = vy;
     191                    } else if (vy > maxValue[1]) {
     192                        maxValue[1] = vy;
    189193                    }
    190                     if (vz < zValueMin) {
    191                         zValueMin = vz;
    192                     } else if (vz > zValueMax) {
    193                         zValueMax = vz;
     194                    if (vz < minValue[2]) {
     195                        minValue[2] = vz;
     196                    } else if (vz > maxValue[2]) {
     197                        maxValue[2] = vz;
    194198                    }
    195199                    sprintf(mesg, "%g %g %g\n", vx, vy, vz);
     
    201205    }
    202206    /* Make sure that we read all of the expected points. */
    203     if (nValues != (size_t)npts) {
     207    if (nValues != (size_t)nPoints) {
    204208        sprintf(mesg, "inconsistent data: expected %d points"
    205                         " but found %d points", npts, nValues);
     209                        " but found %d points", nPoints, nValues);
    206210        Tcl_AppendResult(interp, mesg, (char *)NULL);
    207211        Tcl_DecrRefCount(objPtr);
  • trunk/packages/vizservers/nanovis/Command.cpp

    r2708 r2721  
    12271227        }
    12281228        Rappture::Outcome context;
     1229        sleep(30);
    12291230#if ISO_TEST
    12301231        volPtr = load_volume_stream2(context, tag, fdata);
  • trunk/packages/vizservers/nanovis/config.h

    r2096 r2721  
    4545 * runtime if mesh decimation is required]
    4646 */
    47 #define ISO_TEST                1
     47#define ISO_TEST                0
    4848
    4949/*
Note: See TracChangeset for help on using the changeset viewer.