Changeset 1469 for trunk/packages/vizservers
- Timestamp:
- May 27, 2009, 6:16:36 PM (15 years ago)
- Location:
- trunk/packages/vizservers/nanovis
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/FlowCmd.cpp
r1468 r1469 115 115 } 116 116 117 FlowParticles::~FlowParticles(void) 118 { 119 if (_rendererPtr != NULL) { 120 delete _rendererPtr; 121 } 122 if (_hashPtr != NULL) { 123 Tcl_DeleteHashEntry(_hashPtr); 124 } 125 Rappture::FreeSwitches(_switches, &_sv, 0); 126 } 127 117 128 void 118 129 FlowParticles::Render(void) … … 187 198 float x0, y0, z0, x1, y1, z1; 188 199 x0 = y0 = z0 = 0.0f; 189 x1 = y1 = z1 = 1.0f;200 x1 = y1 = z1 = 0.0f; 190 201 if (max.y > min.y) { 191 202 y0 = (_sv.corner1.y - min.y) / (max.y - min.y); … … 661 672 } 662 673 674 663 675 static int 664 676 FlowDataFileOp(ClientData clientData, Tcl_Interp *interp, int objc, … … 692 704 if ((length > 4) && (strncmp(bytes, "<DX>", 4) == 0)) { 693 705 Rappture::Unirect3d *dataPtr; 694 695 706 dataPtr = new Rappture::Unirect3d(nComponents); 696 707 if (!dataPtr->ImportDx(result, nComponents, length-4, bytes+4)) { … … 702 713 } else if ((length > 10) && (strncmp(bytes, "unirect3d ", 10) == 0)) { 703 714 Rappture::Unirect3d *dataPtr; 704 Tcl_CmdInfo cmdInfo;705 706 /* Set the clientdata field of the unirect3d command to contain707 * the local data structure. */708 715 dataPtr = new Rappture::Unirect3d(nComponents); 709 if (!Tcl_GetCommandInfo(interp, "unirect3d", &cmdInfo)) { 710 return TCL_ERROR; 711 } 712 cmdInfo.objClientData = (ClientData)dataPtr; 713 Tcl_SetCommandInfo(interp, "unirect3d", &cmdInfo); 714 Tcl_Obj *objPtr; 715 objPtr = Tcl_NewStringObj(buf.bytes(), buf.size()); 716 int result; 717 Tcl_IncrRefCount(objPtr); 718 result = Tcl_GlobalEvalObj(interp, objPtr); 719 Tcl_DecrRefCount(objPtr); 720 if (result != TCL_OK) { 716 if (dataPtr->ParseBuffer(interp, buf) != TCL_OK) { 721 717 delete dataPtr; 722 718 return TCL_ERROR; 723 719 } 724 if (!dataPtr->isInitialized()) {725 delete dataPtr;726 return TCL_ERROR;727 }728 720 flowPtr->SetData(dataPtr); 729 721 } else if ((length > 10) && (strncmp(bytes, "unirect2d ", 10) == 0)) { 730 Rappture::Unirect2d *dataPtr; 731 Tcl_CmdInfo cmdInfo; 732 733 /* Set the clientdata field of the unirect3d command to contain 734 * the local data structure. */ 735 dataPtr = new Rappture::Unirect2d(); 736 if (!Tcl_GetCommandInfo(interp, "unirect2d", &cmdInfo)) { 722 Rappture::Unirect2d *u2dPtr; 723 u2dPtr = new Rappture::Unirect2d(nComponents); 724 if (u2dPtr->ParseBuffer(interp, buf) != TCL_OK) { 725 delete u2dPtr; 737 726 return TCL_ERROR; 738 727 } 739 cmdInfo.objClientData = (ClientData)dataPtr; 740 Tcl_SetCommandInfo(interp, "unirect2d", &cmdInfo); 741 Tcl_Obj *objPtr; 742 objPtr = Tcl_NewStringObj(buf.bytes(), buf.size()); 743 int result; 744 Tcl_IncrRefCount(objPtr); 745 result = Tcl_EvalObjEx(interp, objPtr, TCL_EVAL_GLOBAL|TCL_EVAL_DIRECT); 746 Tcl_DecrRefCount(objPtr); 747 if (result != TCL_OK) { 748 delete dataPtr; 749 return TCL_ERROR; 750 } 751 if (!dataPtr->isInitialized()) { 752 delete dataPtr; 753 return TCL_ERROR; 754 } 755 Rappture::Unirect3d *d3Ptr = new Rappture::Unirect3d(nComponents); 756 d3Ptr->Convert(dataPtr); 757 flowPtr->SetData(d3Ptr); 758 delete dataPtr; 728 Rappture::Unirect3d *dataPtr; 729 dataPtr = new Rappture::Unirect3d(nComponents); 730 dataPtr->Convert(u2dPtr); 731 flowPtr->SetData(dataPtr); 732 delete u2dPtr; 759 733 } else { 734 fprintf(stderr, "header is %.14s\n", buf.bytes()); 760 735 Rappture::Unirect3d *dataPtr; 761 762 fprintf(stderr, "header is %.14s\n", buf.bytes());763 736 dataPtr = new Rappture::Unirect3d(nComponents); 764 737 if (!dataPtr->ImportDx(result, nComponents, length, bytes)) { … … 816 789 if ((length > 4) && (strncmp(bytes, "<DX>", 4) == 0)) { 817 790 Rappture::Unirect3d *dataPtr; 818 819 791 dataPtr = new Rappture::Unirect3d(nComponents); 820 792 if (!dataPtr->ImportDx(result, nComponents, length - 4, bytes + 4)) { … … 826 798 } else if ((length > 10) && (strncmp(bytes, "unirect3d ", 10) == 0)) { 827 799 Rappture::Unirect3d *dataPtr; 828 Tcl_CmdInfo cmdInfo;829 830 /* Set the clientdata field of the unirect3d command to contain831 * the local data structure. */832 800 dataPtr = new Rappture::Unirect3d(nComponents); 833 if (!Tcl_GetCommandInfo(interp, "unirect3d", &cmdInfo)) { 834 return TCL_ERROR; 835 } 836 cmdInfo.objClientData = (ClientData)dataPtr; 837 Tcl_SetCommandInfo(interp, "unirect3d", &cmdInfo); 838 Tcl_Obj *objPtr; 839 objPtr = Tcl_NewStringObj(buf.bytes(), buf.size()); 840 int result; 841 Tcl_IncrRefCount(objPtr); 842 result = Tcl_EvalObjEx(interp, objPtr, TCL_EVAL_GLOBAL|TCL_EVAL_DIRECT); 843 Tcl_DecrRefCount(objPtr); 844 if (result != TCL_OK) { 801 if (dataPtr->ParseBuffer(interp, buf) != TCL_OK) { 845 802 delete dataPtr; 846 803 return TCL_ERROR; 847 804 } 848 if (!dataPtr->isInitialized()) {849 delete dataPtr;850 return TCL_ERROR;851 }852 805 flowPtr->SetData(dataPtr); 853 806 } else if ((length > 10) && (strncmp(bytes, "unirect2d ", 10) == 0)) { 854 Rappture::Unirect2d *dataPtr; 855 Tcl_CmdInfo cmdInfo; 856 857 /* Set the clientdata field of the unirect3d command to contain 858 * the local data structure. */ 859 dataPtr = new Rappture::Unirect2d(); 860 if (!Tcl_GetCommandInfo(interp, "unirect2d", &cmdInfo)) { 807 Rappture::Unirect2d *u2dPtr; 808 u2dPtr = new Rappture::Unirect2d(nComponents); 809 if (u2dPtr->ParseBuffer(interp, buf) != TCL_OK) { 810 delete u2dPtr; 861 811 return TCL_ERROR; 862 812 } 863 cmdInfo.objClientData = (ClientData)dataPtr; 864 Tcl_SetCommandInfo(interp, "unirect2d", &cmdInfo); 865 Tcl_Obj *objPtr; 866 objPtr = Tcl_NewStringObj(buf.bytes(), buf.size()); 867 int result; 868 Tcl_IncrRefCount(objPtr); 869 result = Tcl_EvalObjEx(interp, objPtr, TCL_EVAL_GLOBAL|TCL_EVAL_DIRECT); 870 Tcl_DecrRefCount(objPtr); 871 if (result != TCL_OK) { 872 delete dataPtr; 873 return TCL_ERROR; 874 } 875 if (!dataPtr->isInitialized()) { 876 delete dataPtr; 877 return TCL_ERROR; 878 } 879 Rappture::Unirect3d *d3Ptr = new Rappture::Unirect3d(nComponents); 880 d3Ptr->Convert(dataPtr); 881 flowPtr->SetData(d3Ptr); 882 delete dataPtr; 813 Rappture::Unirect3d *dataPtr; 814 dataPtr = new Rappture::Unirect3d(nComponents); 815 dataPtr->Convert(u2dPtr); 816 flowPtr->SetData(dataPtr); 817 delete u2dPtr; 883 818 } else { 819 fprintf(stderr, "header is %.14s\n", buf.bytes()); 884 820 Rappture::Unirect3d *dataPtr; 885 886 fprintf(stderr, "header is %.14s\n", buf.bytes());887 821 dataPtr = new Rappture::Unirect3d(nComponents); 888 822 if (!dataPtr->ImportDx(result, nComponents, length, bytes)) { … … 1029 963 } 1030 964 Tcl_SetHashValue(hPtr, flowPtr); 1031 EventuallyRedraw(MAP_FLOWS);1032 965 return TCL_OK; 1033 966 } … … 1417 1350 return TCL_ERROR; 1418 1351 } 1419 NanoVis::EventuallyRedraw( NanoVis::MAP_FLOWS);1352 NanoVis::EventuallyRedraw(); 1420 1353 return TCL_OK; 1421 1354 } … … 1439 1372 } 1440 1373 particlesPtr->Configure(); 1441 NanoVis::EventuallyRedraw( NanoVis::MAP_FLOWS);1374 NanoVis::EventuallyRedraw(); 1442 1375 Tcl_SetObjResult(interp, objv[3]); 1443 1376 return TCL_OK; … … 1475 1408 } 1476 1409 } 1477 NanoVis::EventuallyRedraw( NanoVis::MAP_FLOWS);1410 NanoVis::EventuallyRedraw(); 1478 1411 return TCL_OK; 1479 1412 } … … 1560 1493 return TCL_ERROR; 1561 1494 } 1562 NanoVis::EventuallyRedraw( NanoVis::MAP_FLOWS);1495 NanoVis::EventuallyRedraw(); 1563 1496 Tcl_SetObjResult(interp, objv[3]); 1564 1497 return TCL_OK; … … 1749 1682 } 1750 1683 Tcl_SetObjResult(interp, objv[2]); 1751 NanoVis::EventuallyRedraw( NanoVis::MAP_FLOWS);1684 NanoVis::EventuallyRedraw(); 1752 1685 return TCL_OK; 1753 1686 } … … 1831 1764 } 1832 1765 int i; 1766 NanoVis::AdvectFlows(); 1833 1767 for (i = 0; i < nSteps; i++) { 1768 Trace("advect step=%d\n", i); 1834 1769 NanoVis::licRenderer->convolve(); 1835 1770 NanoVis::AdvectFlows(); -
trunk/packages/vizservers/nanovis/FlowCmd.h
r1458 r1469 39 39 40 40 FlowParticles(const char *name, Tcl_HashEntry *hPtr); 41 ~FlowParticles(void) { 42 Rappture::FreeSwitches(_switches, &_sv, 0); 43 if (_rendererPtr != NULL) { 44 delete _rendererPtr; 45 } 46 if (_hashPtr != NULL) { 47 Tcl_DeleteHashEntry(_hashPtr); 48 } 49 } 41 ~FlowParticles(void); 50 42 void SetColor(FlowColor &color) { 51 43 _sv.color = color; -
trunk/packages/vizservers/nanovis/NvParticleRenderer.cpp
r1429 r1469 147 147 index = i + psys_height*j; 148 148 particle = (rand() % 256) > 150; 149 if(particle) 150 { 149 if(particle) { 151 150 //assign any location (x,y,z) in range [0,1] 152 switch (_slice_axis) 153 { 151 switch (_slice_axis) { 154 152 case 0 : 155 156 157 158 153 p[4*index] = _slice_pos; 154 p[4*index+1]= j/float(psys_height); 155 p[4*index+2]= i/float(psys_width); 156 break; 159 157 case 1 : 160 161 162 163 158 p[4*index]= j/float(psys_height); 159 p[4*index+1] = _slice_pos; 160 p[4*index+2]= i/float(psys_width); 161 break; 164 162 case 2 : 165 166 167 168 163 p[4*index]= j/float(psys_height); 164 p[4*index+1]= i/float(psys_width); 165 p[4*index+2] = _slice_pos; 166 break; 169 167 default : 170 171 172 173 168 p[4*index] = 0; 169 p[4*index+1]= 0; 170 p[4*index+2]= 0; 171 p[4*index+3]= 0; 174 172 } 175 173 176 174 //shorter life span, quicker iterations 177 175 p[4*index+3]= rand() / ((float) RAND_MAX) * 0.5 + 0.5f; 178 } 179 else 180 { 176 } else { 181 177 p[4*index] = 0; 182 178 p[4*index+1]= 0; -
trunk/packages/vizservers/nanovis/Unirect.cpp
r1462 r1469 35 35 *stringPtr = p; 36 36 return line; 37 } 38 39 int 40 Rappture::Unirect2d::ParseBuffer(Tcl_Interp *interp, Rappture::Buffer &buf) 41 { 42 Tcl_Obj *objPtr; 43 objPtr = Tcl_NewStringObj(buf.bytes(), buf.size()); 44 Tcl_Obj **objv; 45 int objc; 46 if (Tcl_ListObjGetElements(interp, objPtr, &objc, &objv) != TCL_OK) { 47 return NULL; 48 } 49 int result; 50 result = LoadData(interp, objc, objv); 51 Tcl_DecrRefCount(objPtr); 52 if ((result != TCL_OK) || (!isInitialized())) { 53 return TCL_ERROR; 54 } 55 return TCL_OK; 56 } 57 58 int 59 Rappture::Unirect3d::ParseBuffer(Tcl_Interp *interp, Rappture::Buffer &buf) 60 { 61 Tcl_Obj *objPtr; 62 objPtr = Tcl_NewStringObj(buf.bytes(), buf.size()); 63 Tcl_Obj **objv; 64 int objc; 65 if (Tcl_ListObjGetElements(interp, objPtr, &objc, &objv) != TCL_OK) { 66 return NULL; 67 } 68 int result; 69 result = LoadData(interp, objc, objv); 70 Tcl_DecrRefCount(objPtr); 71 if ((result != TCL_OK) || (!isInitialized())) { 72 return TCL_ERROR; 73 } 74 return TCL_OK; 37 75 } 38 76 -
trunk/packages/vizservers/nanovis/Unirect.h
r1458 r1469 170 170 } 171 171 int LoadData(Tcl_Interp *interp, int objc, Tcl_Obj *const *objv); 172 int ParseBuffer(Tcl_Interp *interp, Rappture::Buffer &buf); 172 173 173 174 bool ImportDx(Rappture::Outcome &result, size_t nComponents, … … 276 277 } 277 278 int LoadData(Tcl_Interp *interp, int objc, Tcl_Obj *const *objv); 279 int ParseBuffer(Tcl_Interp *interp, Rappture::Buffer &buf); 278 280 bool isInitialized(void) { 279 281 return _initialized;
Note: See TracChangeset
for help on using the changeset viewer.