Changeset 1446 for trunk/packages


Ignore:
Timestamp:
May 18, 2009 11:43:54 AM (15 years ago)
Author:
gah
Message:
 
Location:
trunk/packages/vizservers/nanovis
Files:
3 edited

Legend:

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

    r1434 r1446  
    608608    if (_volIndex < 0) {
    609609        _volIndex = NanoVis::n_volumes;
     610        Trace("VolumeIndex is %d\n", _volIndex);
    610611    }
    611612    Volume *volPtr;
     
    679680
    680681    FlowCmd *flowPtr = (FlowCmd *)clientData;
    681     if (strncmp(buf.bytes(), "<DX>", 4) == 0) {
     682    size_t length = buf.size();
     683    char *bytes = (char *)buf.bytes();
     684    if ((length > 4) && (strncmp(bytes, "<DX>", 4) == 0)) {
    682685        Rappture::Unirect3d *dataPtr;
    683686
     
    690693        }
    691694        flowPtr->SetData(dataPtr);
    692     } else if (strncmp(buf.bytes(), "<unirect3d>", 4) == 0) {
     695    } else if ((length > 11) && (strncmp(bytes, "<unirect3d>", 11) == 0)) {
    693696        Rappture::Unirect3d *dataPtr;
    694697        Tcl_CmdInfo cmdInfo;
     
    696699        /* Set the clientdata field of the unirect3d command to contain
    697700         * the local data structure. */
     701        dataPtr = new Rappture::Unirect3d(nComponents);
    698702        if (!Tcl_GetCommandInfo(interp, "unirect3d", &cmdInfo)) {
    699703            return TCL_ERROR;
    700704        }
    701         dataPtr = new Rappture::Unirect3d(nComponents);
    702705        cmdInfo.objClientData = (ClientData)dataPtr;   
    703706        Tcl_SetCommandInfo(interp, "unirect3d", &cmdInfo);
    704         if (Tcl_Eval(interp, (const char *)buf.bytes()) != TCL_OK) {
     707        if (Tcl_Eval(interp, (const char *)buf.bytes()+11) != TCL_OK) {
    705708            delete dataPtr;
    706709            return TCL_ERROR;
     
    711714        }
    712715        flowPtr->SetData(dataPtr);
     716    } else if ((length > 11) && (strncmp(bytes, "<unirect2d>", 11) == 0)) {
     717        Rappture::Unirect2d *dataPtr;
     718        Tcl_CmdInfo cmdInfo;
     719
     720        /* Set the clientdata field of the unirect3d command to contain
     721         * the local data structure. */
     722        dataPtr = new Rappture::Unirect2d();
     723        if (!Tcl_GetCommandInfo(interp, "unirect2d", &cmdInfo)) {
     724            return TCL_ERROR;
     725        }
     726        cmdInfo.objClientData = (ClientData)dataPtr;   
     727        Tcl_SetCommandInfo(interp, "unirect2d", &cmdInfo);
     728        if (Tcl_Eval(interp, (const char *)buf.bytes()+11) != TCL_OK) {
     729            delete dataPtr;
     730            return TCL_ERROR;
     731        }
     732        if (!dataPtr->isInitialized()) {
     733            delete dataPtr;
     734            return TCL_ERROR;
     735        }
     736        Rappture::Unirect3d *d3Ptr = new Rappture::Unirect3d(nComponents);
     737        d3Ptr->Convert(dataPtr);
     738        flowPtr->SetData(d3Ptr);
     739        delete dataPtr;
    713740    } else {
    714741        Rappture::Unirect3d *dataPtr;
    715742
     743        fprintf(stderr, "header is %.14s\n", buf.bytes());
    716744        dataPtr = new Rappture::Unirect3d(nComponents);
    717745        if (!dataPtr->ImportDx(result, nComponents, buf.size(),
     
    766794    }
    767795    FlowCmd *flowPtr = (FlowCmd *)clientData;
    768     if ((buf.size() > 4) && (strncmp(buf.bytes(), "<DX>", 4) == 0)) {
     796    size_t length = buf.size();
     797    char *bytes = (char *)buf.bytes();
     798    if ((length > 4) && (strncmp(bytes, "<DX>", 4) == 0)) {
    769799        Rappture::Unirect3d *dataPtr;
    770800
    771801        dataPtr = new Rappture::Unirect3d(nComponents);
    772         if (!dataPtr->ImportDx(result, nComponents, buf.size(),
    773                 (char *)buf.bytes())) {
     802        if (!dataPtr->ImportDx(result, nComponents, length - 4, bytes + 4)) {
    774803            Tcl_AppendResult(interp, result.remark(), (char *)NULL);
    775804            delete dataPtr;
     
    777806        }
    778807        flowPtr->SetData(dataPtr);
    779     } else if ((buf.size() > 4) &&
    780                (strncmp(buf.bytes(), "<unirect3d>", 4) == 0)) {
     808    } else if ((length > 11) && (strncmp(bytes, "<unirect3d>", 11) == 0)) {
    781809        Rappture::Unirect3d *dataPtr;
    782810        Tcl_CmdInfo cmdInfo;
     
    790818        cmdInfo.objClientData = (ClientData)dataPtr;   
    791819        Tcl_SetCommandInfo(interp, "unirect3d", &cmdInfo);
    792         if (Tcl_Eval(interp, (const char *)buf.bytes()) != TCL_OK) {
     820        if (Tcl_Eval(interp, bytes+11) != TCL_OK) {
    793821            delete dataPtr;
    794822            return TCL_ERROR;
     
    799827        }
    800828        flowPtr->SetData(dataPtr);
     829    } else if ((length > 11) && (strncmp(bytes, "<unirect2d>", 11) == 0)) {
     830        Rappture::Unirect2d *dataPtr;
     831        Tcl_CmdInfo cmdInfo;
     832
     833        /* Set the clientdata field of the unirect3d command to contain
     834         * the local data structure. */
     835        dataPtr = new Rappture::Unirect2d();
     836        if (!Tcl_GetCommandInfo(interp, "unirect2d", &cmdInfo)) {
     837            return TCL_ERROR;
     838        }
     839        cmdInfo.objClientData = (ClientData)dataPtr;   
     840        Tcl_SetCommandInfo(interp, "unirect2d", &cmdInfo);
     841        if (Tcl_Eval(interp, bytes+11) != TCL_OK) {
     842            delete dataPtr;
     843            return TCL_ERROR;
     844        }
     845        if (!dataPtr->isInitialized()) {
     846            delete dataPtr;
     847            return TCL_ERROR;
     848        }
     849        Rappture::Unirect3d *d3Ptr = new Rappture::Unirect3d(nComponents);
     850        d3Ptr->Convert(dataPtr);
     851        flowPtr->SetData(d3Ptr);
     852        delete dataPtr;
    801853    } else {
    802         Tcl_AppendResult(interp, "unknown data header \"", /*buf.bytes(), "\"",*/
    803                          (char *)NULL);
    804854        Rappture::Unirect3d *dataPtr;
    805855
    806856        dataPtr = new Rappture::Unirect3d(nComponents);
    807         if (!dataPtr->ImportDx(result, nComponents, buf.size(),
    808                                (char *)buf.bytes())) {
     857        if (!dataPtr->ImportDx(result, nComponents, length, bytes)) {
    809858            Tcl_AppendResult(interp, result.remark(), (char *)NULL);
    810859            delete dataPtr;
  • trunk/packages/vizservers/nanovis/Unirect.h

    r1434 r1446  
    55
    66namespace Rappture {
     7
     8class Unirect2d;
    79
    810class Unirect3d {
     
    171173    bool ImportDx(Rappture::Outcome &result, int nComponents,
    172174                  size_t length, char *string);
     175    bool Convert(Unirect2d *dataPtr);
    173176    bool Resample(Rappture::Outcome &context, int nSamples = 30);
    174177    bool isInitialized(void) {
     
    247250        return _values;
    248251    }
     252    float xValueMin(void) {
     253        return _xValueMin;
     254    }
     255    float yValueMin(void) {
     256        return _yValueMin;
     257    }
     258    float xValueMax(void) {
     259        return _xValueMax;
     260    }
     261    float yValueMax(void) {
     262        return _yValueMax;
     263    }
     264    size_t nComponents(void) {
     265        return _nComponents;
     266    }
    249267    float *acceptValues(void) {
    250268        float *values;
  • trunk/packages/vizservers/nanovis/test/flowvis/flow.tcl

    r1443 r1446  
    264264} {0 {}}
    265265
     266test flow.51 {myFlow data file data/flowvis_dx_files/jwire/J-wire-vec.dx 3} {
     267    list [catch {myFlow data file data/flowvis_dx_files/jwire/J-wire-vec.dx 3} msg] $msg
     268} {0 {}}
     269
     270test flow.51 {myFlow data file data/flowvis_dx_files/flow2d_half.unirect2d 3} {
     271    list [catch {myFlow data file data/flowvis_dx_files/flow2d_half.unirect2d 3} msg] $msg
     272} {0 {}}
     273
     274
    266275test flow.52 {myFlow (no args)} {
    267276    list [catch {myFlow} msg] $msg
Note: See TracChangeset for help on using the changeset viewer.