Changeset 1446 for trunk/packages
- Timestamp:
- May 18, 2009 11:43:54 AM (15 years ago)
- Location:
- trunk/packages/vizservers/nanovis
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/FlowCmd.cpp
r1434 r1446 608 608 if (_volIndex < 0) { 609 609 _volIndex = NanoVis::n_volumes; 610 Trace("VolumeIndex is %d\n", _volIndex); 610 611 } 611 612 Volume *volPtr; … … 679 680 680 681 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)) { 682 685 Rappture::Unirect3d *dataPtr; 683 686 … … 690 693 } 691 694 flowPtr->SetData(dataPtr); 692 } else if ( strncmp(buf.bytes(), "<unirect3d>", 4) == 0) {695 } else if ((length > 11) && (strncmp(bytes, "<unirect3d>", 11) == 0)) { 693 696 Rappture::Unirect3d *dataPtr; 694 697 Tcl_CmdInfo cmdInfo; … … 696 699 /* Set the clientdata field of the unirect3d command to contain 697 700 * the local data structure. */ 701 dataPtr = new Rappture::Unirect3d(nComponents); 698 702 if (!Tcl_GetCommandInfo(interp, "unirect3d", &cmdInfo)) { 699 703 return TCL_ERROR; 700 704 } 701 dataPtr = new Rappture::Unirect3d(nComponents);702 705 cmdInfo.objClientData = (ClientData)dataPtr; 703 706 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) { 705 708 delete dataPtr; 706 709 return TCL_ERROR; … … 711 714 } 712 715 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; 713 740 } else { 714 741 Rappture::Unirect3d *dataPtr; 715 742 743 fprintf(stderr, "header is %.14s\n", buf.bytes()); 716 744 dataPtr = new Rappture::Unirect3d(nComponents); 717 745 if (!dataPtr->ImportDx(result, nComponents, buf.size(), … … 766 794 } 767 795 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)) { 769 799 Rappture::Unirect3d *dataPtr; 770 800 771 801 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)) { 774 803 Tcl_AppendResult(interp, result.remark(), (char *)NULL); 775 804 delete dataPtr; … … 777 806 } 778 807 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)) { 781 809 Rappture::Unirect3d *dataPtr; 782 810 Tcl_CmdInfo cmdInfo; … … 790 818 cmdInfo.objClientData = (ClientData)dataPtr; 791 819 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) { 793 821 delete dataPtr; 794 822 return TCL_ERROR; … … 799 827 } 800 828 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; 801 853 } else { 802 Tcl_AppendResult(interp, "unknown data header \"", /*buf.bytes(), "\"",*/803 (char *)NULL);804 854 Rappture::Unirect3d *dataPtr; 805 855 806 856 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)) { 809 858 Tcl_AppendResult(interp, result.remark(), (char *)NULL); 810 859 delete dataPtr; -
trunk/packages/vizservers/nanovis/Unirect.h
r1434 r1446 5 5 6 6 namespace Rappture { 7 8 class Unirect2d; 7 9 8 10 class Unirect3d { … … 171 173 bool ImportDx(Rappture::Outcome &result, int nComponents, 172 174 size_t length, char *string); 175 bool Convert(Unirect2d *dataPtr); 173 176 bool Resample(Rappture::Outcome &context, int nSamples = 30); 174 177 bool isInitialized(void) { … … 247 250 return _values; 248 251 } 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 } 249 267 float *acceptValues(void) { 250 268 float *values; -
trunk/packages/vizservers/nanovis/test/flowvis/flow.tcl
r1443 r1446 264 264 } {0 {}} 265 265 266 test 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 270 test 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 266 275 test flow.52 {myFlow (no args)} { 267 276 list [catch {myFlow} msg] $msg
Note: See TracChangeset
for help on using the changeset viewer.