Changeset 1028 for trunk/packages/vizservers/nanovis/Command.cpp
- Timestamp:
- Jun 9, 2008, 9:08:02 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/Command.cpp
r1000 r1028 73 73 #include <NvLIC.h> 74 74 75 //#define ISO_TEST 175 #define ISO_TEST 1 76 76 #define PLANE_CMD 0 77 77 #define __TEST_CODE__ 0 … … 143 143 #endif 144 144 static Tcl_ObjCmdProc ScreenCmd; 145 static Tcl_ObjCmdProc S creenShotCmd;145 static Tcl_ObjCmdProc SnapshotCmd; 146 146 static Tcl_ObjCmdProc TransfuncCmd; 147 147 static Tcl_ObjCmdProc UniRect2dCmd; … … 175 175 static int 176 176 GetCullMode(Tcl_Interp *interp, Tcl_Obj *objPtr, 177 178 { 179 c har *string = Tcl_GetString(objPtr);177 graphics::RenderContext::CullMode *modePtr) 178 { 179 const char *string = Tcl_GetString(objPtr); 180 180 if (strcmp(string, "none") == 0) { 181 181 *modePtr = graphics::RenderContext::NO_CULL; … … 186 186 } else { 187 187 Tcl_AppendResult(interp, "invalid cull mode \"", string, 188 188 "\": should be front, back, or none\"", (char *)NULL); 189 189 return TCL_ERROR; 190 190 } … … 196 196 graphics::RenderContext::ShadingModel *modelPtr) 197 197 { 198 char *string = Tcl_GetString(objPtr); 198 const char *string = Tcl_GetString(objPtr); 199 199 200 if (strcmp(string,"flat") == 0) { 200 201 *modelPtr = graphics::RenderContext::FLAT; … … 213 214 graphics::RenderContext::PolygonMode *modePtr) 214 215 { 215 char *string = Tcl_GetString(objPtr); 216 const char *string = Tcl_GetString(objPtr); 217 216 218 if (strcmp(string,"wireframe") == 0) { 217 219 *modePtr = graphics::RenderContext::LINE; … … 220 222 } else { 221 223 Tcl_AppendResult(interp, "invalid polygon mode \"", string, 222 224 "\": should be wireframe or fill\"", (char *)NULL); 223 225 return TCL_ERROR; 224 226 } … … 243 245 static HeightMap * 244 246 CreateHeightMap(ClientData clientData, Tcl_Interp *interp, int objc, 245 Tcl_Obj * CONST*objv)247 Tcl_Obj *const *objv) 246 248 { 247 249 float xMin, yMin, xMax, yMax; … … 250 252 if (objc != 7) { 251 253 Tcl_AppendResult(interp, 252 253 254 "wrong # of values: should be xMin yMin xMax yMax xNum yNum heights", 255 (char *)NULL); 254 256 return NULL; 255 257 } … … 280 282 if (heights == NULL) { 281 283 Tcl_AppendResult(interp, "can't allocate array of heights", 282 284 (char *)NULL); 283 285 return NULL; 284 286 } … … 317 319 if (index < 0) { 318 320 Tcl_AppendResult(interp, "can't have negative index \"", 319 321 Tcl_GetString(objPtr), "\"", (char*)NULL); 320 322 return TCL_ERROR; 321 323 } … … 347 349 if (hmPtr == NULL) { 348 350 Tcl_AppendResult(interp, "no heightmap defined for index \"", 349 351 Tcl_GetString(objPtr), "\"", (char*)NULL); 350 352 return TCL_ERROR; 351 353 } … … 376 378 if (index < 0) { 377 379 Tcl_AppendResult(interp, "can't have negative index \"", 378 380 Tcl_GetString(objPtr), "\"", (char*)NULL); 379 381 return TCL_ERROR; 380 382 } … … 412 414 if (vol == NULL) { 413 415 Tcl_AppendResult(interp, "no volume defined for index \"", 414 416 Tcl_GetString(objPtr), "\"", (char*)NULL); 415 417 return TCL_ERROR; 416 418 } … … 433 435 */ 434 436 static int 435 GetVolumeIndices(Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv,436 437 GetVolumeIndices(Tcl_Interp *interp, int objc, Tcl_Obj *const *objv, 438 vector<unsigned int>* vectorPtr) 437 439 { 438 440 if (objc == 0) { … … 471 473 */ 472 474 static int 473 GetVolumes(Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv,474 475 GetVolumes(Tcl_Interp *interp, int objc, Tcl_Obj *const *objv, 476 vector<Volume *>* vectorPtr) 475 477 { 476 478 if (objc == 0) { … … 487 489 return TCL_ERROR; 488 490 } 489 491 vectorPtr->push_back(volPtr); 490 492 } 491 493 } … … 507 509 */ 508 510 static int 509 GetHeightMaps(Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv,510 511 GetHeightMaps(Tcl_Interp *interp, int objc, Tcl_Obj *const *objv, 512 vector<HeightMap *>* vectorPtr) 511 513 { 512 514 if (objc == 0) { … … 523 525 return TCL_ERROR; 524 526 } 525 527 vectorPtr->push_back(hmPtr); 526 528 } 527 529 } … … 560 562 } 561 563 Tcl_AppendResult(interp, "bad axis \"", string, 562 564 "\": should be x, y, or z", (char*)NULL); 563 565 return TCL_ERROR; 564 566 } … … 593 595 GetAxisDirFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, int *indexPtr, int *dirPtr) 594 596 { 595 c har *string = Tcl_GetString(objPtr);597 const char *string = Tcl_GetString(objPtr); 596 598 597 599 int sign = 1; … … 620 622 */ 621 623 static int 622 GetColor(Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv, float *rgbPtr)624 GetColor(Tcl_Interp *interp, int objc, Tcl_Obj *const *objv, float *rgbPtr) 623 625 { 624 626 if (objc < 3) { 625 627 Tcl_AppendResult(interp, "missing color values\": ", 626 628 "should list of R G B values 0.0 - 1.0", (char*)NULL); 627 629 return TCL_ERROR; 628 630 } … … 661 663 if (ferror(stdin)) { 662 664 Tcl_AppendResult(interp, "while reading data stream: ", 663 665 Tcl_PosixError(interp), (char*)NULL); 664 666 return TCL_ERROR; 665 667 } 666 668 if (feof(stdin)) { 667 669 Tcl_AppendResult(interp, "premature EOF while reading data stream", 668 670 (char*)NULL); 669 671 return TCL_ERROR; 670 672 } … … 687 689 688 690 static int 689 CameraAimOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)691 CameraAimOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 690 692 { 691 693 double x0, y0, z0; … … 700 702 701 703 static int 702 CameraAngleOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)704 CameraAngleOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 703 705 { 704 706 double xangle, yangle, zangle; … … 713 715 714 716 static int 715 CameraZoomOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)717 CameraZoomOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 716 718 { 717 719 double zoom; … … 744 746 */ 745 747 static int 746 CameraCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)748 CameraCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 747 749 { 748 750 Tcl_ObjCmdProc *proc; 749 751 750 752 proc = Rappture::GetOpFromObj(interp, nCameraOps, cameraOps, 751 753 Rappture::CMDSPEC_ARG1, objc, objv, 0); 752 754 if (proc == NULL) { 753 755 return TCL_ERROR; … … 756 758 } 757 759 758 static int 759 ScreenShotCmd(ClientData cdata, Tcl_Interp *interp, int objc, 760 Tcl_Obj *CONST *objv) 761 { 762 #ifdef XINETD 763 NanoVis::resize_offscreen_buffer(1024, 1024); 764 NanoVis::cam->set_screen_size(30, 90, 1024 - 60, 1024 - 120); 760 /*ARGSUSED*/ 761 static int 762 SnapshotCmd(ClientData cdata, Tcl_Interp *interp, int objc, 763 Tcl_Obj *const *objv) 764 { 765 int w, h; 766 767 w = NanoVis::win_width, h = NanoVis::win_height; 768 NanoVis::resize_offscreen_buffer(2048, 2048); 769 #ifdef notdef 770 NanoVis::cam->set_screen_size(0, 0, NanoVis::win_width,NanoVis::win_height); 771 NanoVis::cam->set_screen_size(30, 90, 2048 - 60, 2048 - 120); 772 #endif 765 773 NanoVis::offscreen_buffer_capture(); //enable offscreen render 766 774 NanoVis::display(); 767 768 // INSOO 769 // TBD 770 /* 771 Volume* vol = NanoVis::volume[0]; 772 TransferFunction* tf; 773 tf = NanoVis::vol_renderer->get_volume_shading(vol); 774 if (tf != NULL) 775 { 776 float data[512]; 777 778 for (int i=0; i < 256; i++) { 779 data[i] = data[i+256] = (float)(i/255.0); 780 } 781 Texture2D* plane = new Texture2D(256, 2, GL_FLOAT, GL_LINEAR, 1, data); 782 NanoVis::color_table_renderer->render(1024, 1024, plane, tf, vol->wAxis.Min(), 783 vol->wAxis.Max()); 784 delete plane; 785 786 } 787 */ 775 NanoVis::read_screen(); 776 #ifdef notdef 777 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); 788 778 #endif 789 779 NanoVis::ppm_write("nv>print -bytes"); 780 NanoVis::resize_offscreen_buffer(w, h); 790 781 return TCL_OK; 791 782 } … … 793 784 static int 794 785 CutplanePositionOp(ClientData cdata, Tcl_Interp *interp, int objc, 795 Tcl_Obj * CONST*objv)786 Tcl_Obj *const *objv) 796 787 { 797 788 float relval; … … 825 816 static int 826 817 CutplaneStateOp(ClientData cdata, Tcl_Interp *interp, int objc, 827 Tcl_Obj * CONST*objv)818 Tcl_Obj *const *objv) 828 819 { 829 820 bool state; … … 877 868 */ 878 869 static int 879 CutplaneCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *CONST *objv) 870 CutplaneCmd(ClientData cdata, Tcl_Interp *interp, int objc, 871 Tcl_Obj *const *objv) 880 872 { 881 873 Tcl_ObjCmdProc *proc; 882 874 883 875 proc = Rappture::GetOpFromObj(interp, nCutplaneOps, cutplaneOps, 884 876 Rappture::CMDSPEC_ARG1, objc, objv, 0); 885 877 if (proc == NULL) { 886 878 return TCL_ERROR; … … 901 893 */ 902 894 static int 903 LegendCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)895 LegendCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 904 896 { 905 897 if (objc != 4) { 906 898 Tcl_AppendResult(interp, "wrong # args: should be \"", 907 899 Tcl_GetString(objv[0]), " volIndex width height\"", (char*)NULL); 908 900 return TCL_ERROR; 909 901 } … … 917 909 if (tf == NULL) { 918 910 Tcl_AppendResult(interp, "no transfer function defined for volume \"", 919 920 return TCL_ERROR; 921 } 922 c har *label;911 Tcl_GetString(objv[1]), "\"", (char*)NULL); 912 return TCL_ERROR; 913 } 914 const char *label; 923 915 label = Tcl_GetString(objv[1]); 924 916 … … 929 921 } 930 922 if (volPtr->update_pending) { 931 923 NanoVis::SetVolumeRanges(); 932 924 } 933 925 NanoVis::render_legend(tf, Volume::valueMin, Volume::valueMax, w, h, label); … … 945 937 */ 946 938 static int 947 ScreenCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)939 ScreenCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 948 940 { 949 941 if (objc != 3) { 950 942 Tcl_AppendResult(interp, "wrong # args: should be \"", 951 943 Tcl_GetString(objv[0]), " width height\"", (char*)NULL); 952 944 return TCL_ERROR; 953 945 } … … 974 966 static int 975 967 TransfuncCmd(ClientData cdata, Tcl_Interp *interp, int objc, 976 Tcl_Obj *CONST*objv)968 Tcl_Obj *const *objv) 977 969 { 978 970 if (objc < 2) { 979 971 Tcl_AppendResult(interp, "wrong # args: should be \"", 980 981 return TCL_ERROR; 982 } 983 984 c har *string = Tcl_GetString(objv[1]);972 Tcl_GetString(objv[0]), " option arg arg...\"", (char*)NULL); 973 return TCL_ERROR; 974 } 975 976 const char *string = Tcl_GetString(objv[1]); 985 977 char c = string[0]; 986 if ((c == 'd') && (strcmp(string, "define") == 0)) 987 { 978 if ((c == 'd') && (strcmp(string, "define") == 0)) { 988 979 if (objc != 5) { 989 980 Tcl_AppendResult(interp, "wrong # args: should be \"", 990 991 981 Tcl_GetString(objv[0]), " define name colorMap alphaMap\"", 982 (char*)NULL); 992 983 return TCL_ERROR; 993 984 } … … 1005 996 if ((cmapc % 4) != 0) { 1006 997 Tcl_AppendResult(interp, "wrong # elements is colormap: should be ", 1007 998 "{ v r g b ... }", (char*)NULL); 1008 999 return TCL_ERROR; 1009 1000 } … … 1013 1004 if ((wmapc % 2) != 0) { 1014 1005 Tcl_AppendResult(interp, "wrong # elements in alphamap: should be ", 1015 1006 " { v w ... }", (char*)NULL); 1016 1007 return TCL_ERROR; 1017 1008 } … … 1026 1017 if ((q[j] < 0.0) || (q[j] > 1.0)) { 1027 1018 Tcl_AppendResult(interp, "bad colormap value \"", 1028 1029 1019 Tcl_GetString(cmapv[i+j]), 1020 "\": should be in the range 0-1", (char*)NULL); 1030 1021 return TCL_ERROR; 1031 1022 } … … 1045 1036 if ((q[j] < 0.0) || (q[j] > 1.0)) { 1046 1037 Tcl_AppendResult(interp, "bad alphamap value \"", 1047 1048 1038 Tcl_GetString(wmapv[i+j]), 1039 "\": should be in the range 0-1", (char*)NULL); 1049 1040 return TCL_ERROR; 1050 1041 } … … 1066 1057 } else { 1067 1058 Tcl_AppendResult(interp, "bad option \"", string, 1068 1059 "\": should be define", (char*)NULL); 1069 1060 return TCL_ERROR; 1070 1061 } … … 1082 1073 */ 1083 1074 static int 1084 UpCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)1075 UpCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 1085 1076 { 1086 1077 if (objc != 2) { 1087 1078 Tcl_AppendResult(interp, "wrong # args: should be \"", 1088 1079 Tcl_GetString(objv[0]), " x|y|z|-x|-y|-z\"", (char*)NULL); 1089 1080 return TCL_ERROR; 1090 1081 } … … 1102 1093 static int 1103 1094 VolumeAnimationCaptureOp(ClientData cdata, Tcl_Interp *interp, int objc, 1104 Tcl_Obj *CONST*objv)1095 Tcl_Obj *const *objv) 1105 1096 { 1106 1097 int total; 1107 1098 if (Tcl_GetIntFromObj(interp, objv[3], &total) != TCL_OK) { 1108 1099 return TCL_ERROR; 1109 1100 } 1110 1101 VolumeInterpolator* interpolator; … … 1112 1103 interpolator->start(); 1113 1104 if (interpolator->is_started()) { 1114 char *fileName = (objc < 5) ? NULL : Tcl_GetString(objv[4]); 1115 for (int frame_num = 0; frame_num < total; ++frame_num) { 1116 float fraction; 1117 1118 fraction = ((float)frame_num) / (total - 1); 1119 Trace("fraction : %f\n", fraction); 1120 //interpolator->update(((float)frame_num) / (total - 1)); 1121 interpolator->update(fraction); 1122 1123 NanoVis::offscreen_buffer_capture(); //enable offscreen render 1124 1125 NanoVis::display(); 1126 NanoVis::read_screen(); 1127 1128 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); 1105 const char *fileName = (objc < 5) ? NULL : Tcl_GetString(objv[4]); 1106 for (int frame_num = 0; frame_num < total; ++frame_num) { 1107 float fraction; 1129 1108 1130 NanoVis::bmp_write_to_file(frame_num, fileName); 1131 } 1109 fraction = ((float)frame_num) / (total - 1); 1110 Trace("fraction : %f\n", fraction); 1111 //interpolator->update(((float)frame_num) / (total - 1)); 1112 interpolator->update(fraction); 1113 1114 NanoVis::offscreen_buffer_capture(); //enable offscreen render 1115 1116 NanoVis::display(); 1117 NanoVis::read_screen(); 1118 1119 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); 1120 1121 NanoVis::bmp_write_to_file(frame_num, fileName); 1122 } 1132 1123 } 1133 1124 return TCL_OK; … … 1136 1127 static int 1137 1128 VolumeAnimationClearOp(ClientData cdata, Tcl_Interp *interp, int objc, 1138 Tcl_Obj *CONST*objv)1129 Tcl_Obj *const *objv) 1139 1130 { 1140 1131 NanoVis::vol_renderer->clearAnimatedVolumeInfo(); … … 1144 1135 static int 1145 1136 VolumeAnimationStartOp(ClientData cdata, Tcl_Interp *interp, int objc, 1146 Tcl_Obj *CONST*objv)1137 Tcl_Obj *const *objv) 1147 1138 { 1148 1139 NanoVis::vol_renderer->startVolumeAnimation(); … … 1152 1143 static int 1153 1144 VolumeAnimationStopOp(ClientData cdata, Tcl_Interp *interp, int objc, 1154 Tcl_Obj *CONST*objv)1145 Tcl_Obj *const *objv) 1155 1146 { 1156 1147 NanoVis::vol_renderer->stopVolumeAnimation(); … … 1160 1151 static int 1161 1152 VolumeAnimationVolumesOp(ClientData cdata, Tcl_Interp *interp, int objc, 1162 Tcl_Obj *CONST*objv)1153 Tcl_Obj *const *objv) 1163 1154 { 1164 1155 vector<unsigned int> ivol; 1165 1156 if (GetVolumeIndices(interp, objc - 3, objv + 3, &ivol) != TCL_OK) { 1166 1157 return TCL_ERROR; 1167 1158 } 1168 1159 Trace("parsing volume index\n"); 1169 1160 vector<unsigned int>::iterator iter; 1170 1161 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1171 1172 1162 Trace("index: %d\n", *iter); 1163 NanoVis::vol_renderer->addAnimatedVolume(NanoVis::volume[*iter], *iter); 1173 1164 } 1174 1165 return TCL_OK; … … 1187 1178 static int 1188 1179 VolumeAnimationOp(ClientData cdata, Tcl_Interp *interp, int objc, 1189 Tcl_Obj *CONST*objv)1180 Tcl_Obj *const *objv) 1190 1181 { 1191 1182 Tcl_ObjCmdProc *proc; 1192 1183 1193 1184 proc = Rappture::GetOpFromObj(interp, nVolumeAnimationOps, volumeAnimationOps, 1194 1185 Rappture::CMDSPEC_ARG2, objc, objv, 0); 1195 1186 if (proc == NULL) { 1196 1187 return TCL_ERROR; … … 1202 1193 static int 1203 1194 VolumeDataFollowsOp(ClientData cdata, Tcl_Interp *interp, int objc, 1204 Tcl_Obj * CONST*objv)1195 Tcl_Obj *const *objv) 1205 1196 { 1206 1197 printf("Data Loading\n"); … … 1335 1326 1336 1327 if (Volume::update_pending) { 1337 1328 NanoVis::SetVolumeRanges(); 1338 1329 } 1339 1330 volPtr = NanoVis::volume[n]; 1340 1331 sprintf(info, "nv>data id %d min %g max %g vmin %g vmax %g\n", 1341 1332 n, volPtr->wAxis.Min(), volPtr->wAxis.Max(), 1342 1333 Volume::valueMin, Volume::valueMax); 1343 1334 write(0, info, strlen(info)); 1344 1335 } … … 1348 1339 static int 1349 1340 VolumeDataStateOp(ClientData cdata, Tcl_Interp *interp, int objc, 1350 Tcl_Obj * CONST*objv)1341 Tcl_Obj *const *objv) 1351 1342 { 1352 1343 bool state; … … 1380 1371 static int 1381 1372 VolumeDataOp(ClientData cdata, Tcl_Interp *interp, int objc, 1382 Tcl_Obj *CONST*objv)1373 Tcl_Obj *const *objv) 1383 1374 { 1384 1375 Tcl_ObjCmdProc *proc; 1385 1376 1386 1377 proc = Rappture::GetOpFromObj(interp, nVolumeDataOps, volumeDataOps, 1387 1378 Rappture::CMDSPEC_ARG2, objc, objv, 0); 1388 1379 if (proc == NULL) { 1389 1380 return TCL_ERROR; … … 1394 1385 static int 1395 1386 VolumeOutlineColorOp(ClientData cdata, Tcl_Interp *interp, int objc, 1396 Tcl_Obj *CONST*objv)1387 Tcl_Obj *const *objv) 1397 1388 { 1398 1389 float rgb[3]; 1399 1390 if (GetColor(interp, objc - 3, objv + 3, rgb) != TCL_OK) { 1400 1391 return TCL_ERROR; 1401 1392 } 1402 1393 vector<Volume *> ivol; 1403 1394 if (GetVolumes(interp, objc - 6, objv + 6, &ivol) != TCL_OK) { 1404 1395 return TCL_ERROR; 1405 1396 } 1406 1397 vector<Volume *>::iterator iter; 1407 1398 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1408 1399 (*iter)->set_outline_color(rgb); 1409 1400 } 1410 1401 return TCL_OK; … … 1413 1404 static int 1414 1405 VolumeOutlineStateOp(ClientData cdata, Tcl_Interp *interp, int objc, 1415 Tcl_Obj *CONST*objv)1406 Tcl_Obj *const *objv) 1416 1407 { 1417 1408 bool state; 1418 1409 if (GetBooleanFromObj(interp, objv[3], &state) != TCL_OK) { 1419 1410 return TCL_ERROR; 1420 1411 } 1421 1412 vector<Volume *> ivol; 1422 1413 if (GetVolumes(interp, objc - 4, objv + 4, &ivol) != TCL_OK) { 1423 1414 return TCL_ERROR; 1424 1415 } 1425 1416 if (state) { 1426 1427 1428 1429 1417 vector<Volume *>::iterator iter; 1418 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1419 (*iter)->enable_outline(); 1420 } 1430 1421 } else { 1431 1432 1433 1434 1422 vector<Volume *>::iterator iter; 1423 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1424 (*iter)->disable_outline(); 1425 } 1435 1426 } 1436 1427 return TCL_OK; … … 1447 1438 static int 1448 1439 VolumeOutlineOp(ClientData cdata, Tcl_Interp *interp, int objc, 1449 Tcl_Obj *CONST*objv)1440 Tcl_Obj *const *objv) 1450 1441 { 1451 1442 Tcl_ObjCmdProc *proc; 1452 1443 1453 1444 proc = Rappture::GetOpFromObj(interp, nVolumeOutlineOps, volumeOutlineOps, 1454 1445 Rappture::CMDSPEC_ARG2, objc, objv, 0); 1455 1446 if (proc == NULL) { 1456 1447 return TCL_ERROR; … … 1461 1452 static int 1462 1453 VolumeShadingDiffuseOp(ClientData cdata, Tcl_Interp *interp, int objc, 1463 Tcl_Obj *CONST*objv)1454 Tcl_Obj *const *objv) 1464 1455 { 1465 1456 float diffuse; 1466 1457 if (GetFloatFromObj(interp, objv[3], &diffuse) != TCL_OK) { 1467 1458 return TCL_ERROR; 1468 1459 } 1469 1460 1470 1461 vector<Volume *> ivol; 1471 1462 if (GetVolumes(interp, objc - 4, objv + 4, &ivol) != TCL_OK) { 1472 1463 return TCL_ERROR; 1473 1464 } 1474 1465 vector<Volume *>::iterator iter; 1475 1466 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1476 1467 (*iter)->set_diffuse(diffuse); 1477 1468 } 1478 1469 return TCL_OK; … … 1481 1472 static int 1482 1473 VolumeShadingIsosurfaceOp(ClientData cdata, Tcl_Interp *interp, int objc, 1483 Tcl_Obj *CONST*objv)1474 Tcl_Obj *const *objv) 1484 1475 { 1485 1476 bool iso_surface; 1486 1477 if (GetBooleanFromObj(interp, objv[3], &iso_surface) != TCL_OK) { 1487 1478 return TCL_ERROR; 1488 1479 } 1489 1480 vector<Volume *> ivol; 1490 1481 if (GetVolumes(interp, objc - 4, objv + 4, &ivol) != TCL_OK) { 1491 1482 return TCL_ERROR; 1492 1483 } 1493 1484 vector<Volume *>::iterator iter; 1494 1485 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1495 1486 (*iter)->set_isosurface(iso_surface); 1496 1487 } 1497 1488 return TCL_OK; … … 1500 1491 static int 1501 1492 VolumeShadingOpacityOp(ClientData cdata, Tcl_Interp *interp, int objc, 1502 Tcl_Obj *CONST*objv)1493 Tcl_Obj *const *objv) 1503 1494 { 1504 1495 1505 1496 float opacity; 1506 1497 if (GetFloatFromObj(interp, objv[3], &opacity) != TCL_OK) { 1507 1498 return TCL_ERROR; 1508 1499 } 1509 1500 printf("set opacity %f\n", opacity); 1510 1501 vector<Volume *> ivol; 1511 1502 if (GetVolumes(interp, objc - 4, objv + 4, &ivol) != TCL_OK) { 1512 1503 return TCL_ERROR; 1513 1504 } 1514 1505 vector<Volume *>::iterator iter; 1515 1506 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1516 1507 (*iter)->set_opacity_scale(opacity); 1517 1508 } 1518 1509 return TCL_OK; … … 1521 1512 static int 1522 1513 VolumeShadingSpecularOp(ClientData cdata, Tcl_Interp *interp, int objc, 1523 Tcl_Obj *CONST*objv)1514 Tcl_Obj *const *objv) 1524 1515 { 1525 1516 float specular; 1526 1517 if (GetFloatFromObj(interp, objv[3], &specular) != TCL_OK) { 1527 1518 return TCL_ERROR; 1528 1519 } 1529 1520 vector<Volume *> ivol; 1530 1521 if (GetVolumes(interp, objc - 4, objv + 4, &ivol) != TCL_OK) { 1531 1522 return TCL_ERROR; 1532 1523 } 1533 1524 vector<Volume *>::iterator iter; 1534 1525 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1535 1526 (*iter)->set_specular(specular); 1536 1527 } 1537 1528 return TCL_OK; … … 1540 1531 static int 1541 1532 VolumeShadingTransFuncOp(ClientData cdata, Tcl_Interp *interp, int objc, 1542 Tcl_Obj *CONST*objv)1533 Tcl_Obj *const *objv) 1543 1534 { 1544 1535 TransferFunction *tf; 1545 c har *name = Tcl_GetString(objv[3]);1536 const char *name = Tcl_GetString(objv[3]); 1546 1537 tf = NanoVis::get_transfunc(name); 1547 1538 if (tf == NULL) { 1548 1549 1550 1539 Tcl_AppendResult(interp, "transfer function \"", name, 1540 "\" is not defined", (char*)NULL); 1541 return TCL_ERROR; 1551 1542 } 1552 1543 vector<Volume *> ivol; 1553 1544 if (GetVolumes(interp, objc - 4, objv + 4, &ivol) != TCL_OK) { 1554 1545 return TCL_ERROR; 1555 1546 } 1556 1547 vector<Volume *>::iterator iter; 1557 1548 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1558 1549 NanoVis::vol_renderer->shade_volume(*iter, tf); 1559 1550 #ifdef POINTSET 1560 1561 1562 1563 1564 1551 // TBD.. 1552 // POINTSET 1553 if ((*iter)->pointsetIndex != -1) { 1554 g_pointSet[(*iter)->pointsetIndex]->updateColor(tf->getData(), 256); 1555 } 1565 1556 #endif /*POINTSET*/ 1566 1557 } … … 1579 1570 static int 1580 1571 VolumeShadingOp(ClientData cdata, Tcl_Interp *interp, int objc, 1581 Tcl_Obj *CONST*objv)1572 Tcl_Obj *const *objv) 1582 1573 { 1583 1574 Tcl_ObjCmdProc *proc; 1584 1575 1585 1576 proc = Rappture::GetOpFromObj(interp, nVolumeShadingOps, volumeShadingOps, 1586 1577 Rappture::CMDSPEC_ARG2, objc, objv, 0); 1587 1578 if (proc == NULL) { 1588 1579 return TCL_ERROR; … … 1593 1584 static int 1594 1585 VolumeAxisOp(ClientData cdata, Tcl_Interp *interp, int objc, 1595 Tcl_Obj *CONST*objv)1596 { 1597 c har *string = Tcl_GetString(objv[2]);1586 Tcl_Obj *const *objv) 1587 { 1588 const char *string = Tcl_GetString(objv[2]); 1598 1589 char c; 1599 1590 c = string[0]; 1600 1591 if ((c == 'l') && (strcmp(string, "label") == 0)) { 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1592 int axis; 1593 if (GetAxisFromObj(interp, objv[3], &axis) != TCL_OK) { 1594 return TCL_ERROR; 1595 } 1596 vector<Volume *> ivol; 1597 if (GetVolumes(interp, objc - 5, objv + 5, &ivol) != TCL_OK) { 1598 return TCL_ERROR; 1599 } 1600 vector<Volume *>::iterator iter; 1601 const char *label; 1602 label = Tcl_GetString(objv[4]); 1603 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1604 (*iter)->set_label(axis, label); 1605 } 1615 1606 } else { 1616 1617 1618 1607 Tcl_AppendResult(interp, "bad option \"", string, 1608 "\": should be label", (char*)NULL); 1609 return TCL_ERROR; 1619 1610 } 1620 1611 return TCL_OK; … … 1623 1614 static int 1624 1615 VolumeStateOp(ClientData cdata, Tcl_Interp *interp, int objc, 1625 Tcl_Obj *CONST*objv)1616 Tcl_Obj *const *objv) 1626 1617 { 1627 1618 bool state; 1628 1619 if (GetBooleanFromObj(interp, objv[2], &state) != TCL_OK) { 1629 1620 return TCL_ERROR; 1630 1621 } 1631 1622 vector<Volume *> ivol; 1632 1623 if (GetVolumes(interp, objc - 3, objv + 3, &ivol) != TCL_OK) { 1633 1624 return TCL_ERROR; 1634 1625 } 1635 1626 if (state) { 1636 1637 1638 1639 1627 vector<Volume *>::iterator iter; 1628 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1629 (*iter)->enable(); 1630 } 1640 1631 } else { 1641 1642 1643 1644 1632 vector<Volume *>::iterator iter; 1633 for (iter = ivol.begin(); iter != ivol.end(); iter++) { 1634 (*iter)->disable(); 1635 } 1645 1636 } 1646 1637 return TCL_OK; … … 1649 1640 static int 1650 1641 VolumeTestOp(ClientData cdata, Tcl_Interp *interp, int objc, 1651 Tcl_Obj *CONST*objv)1642 Tcl_Obj *const *objv) 1652 1643 { 1653 1644 NanoVis::volume[1]->disable_data(); … … 1684 1675 */ 1685 1676 static int 1686 VolumeCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)1677 VolumeCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 1687 1678 { 1688 1679 Tcl_ObjCmdProc *proc; 1689 1680 1690 1681 proc = Rappture::GetOpFromObj(interp, nVolumeOps, volumeOps, 1691 1682 Rappture::CMDSPEC_ARG1, objc, objv, 0); 1692 1683 if (proc == NULL) { 1693 1684 return TCL_ERROR; … … 1697 1688 1698 1689 static int 1699 FlowCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)1690 FlowCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 1700 1691 { 1701 1692 Rappture::Outcome err; … … 1703 1694 if (objc < 2) { 1704 1695 Tcl_AppendResult(interp, "wrong # args: should be \"", 1705 1706 return TCL_ERROR; 1707 } 1708 c har *string = Tcl_GetString(objv[1]);1696 Tcl_GetString(objv[0]), " option ?arg arg?", (char *)NULL); 1697 return TCL_ERROR; 1698 } 1699 const char *string = Tcl_GetString(objv[1]); 1709 1700 char c = string[0]; 1710 1701 if ((c == 'v') && (strcmp(string, "vectorid") == 0)) { 1711 1702 if (objc != 3) { 1712 1703 Tcl_AppendResult(interp, "wrong # args: should be \"", 1713 1704 Tcl_GetString(objv[0]), " vectorid volume", (char *)NULL); 1714 1705 return TCL_ERROR; 1715 1706 } … … 1720 1711 if (NanoVis::particleRenderer != NULL) { 1721 1712 NanoVis::particleRenderer->setVectorField(volPtr->id, 1.0f, 1722 1723 1724 1713 volPtr->height / (float)volPtr->width, 1714 volPtr->depth / (float)volPtr->width, 1715 volPtr->wAxis.Max()); 1725 1716 NanoVis::initParticle(); 1726 1717 } 1727 1718 if (NanoVis::licRenderer != NULL) { 1728 1719 NanoVis::licRenderer->setVectorField(volPtr->id, 1729 1730 1731 1732 1720 1.0f / volPtr->aspect_ratio_width, 1721 1.0f / volPtr->aspect_ratio_height, 1722 1.0f / volPtr->aspect_ratio_depth, 1723 volPtr->wAxis.Max()); 1733 1724 NanoVis::licRenderer->set_offset(NanoVis::lic_slice_z); 1734 1725 } … … 1736 1727 if (objc != 3) { 1737 1728 Tcl_AppendResult(interp, "wrong # args: should be \"", 1738 1729 Tcl_GetString(objv[0]), " lic on|off\"", (char*)NULL); 1739 1730 return TCL_ERROR; 1740 1731 } … … 1747 1738 if (objc < 3) { 1748 1739 Tcl_AppendResult(interp, "wrong # args: should be \"", 1749 1750 1740 Tcl_GetString(objv[0]), " particle visible|slice|slicepos arg \"", 1741 (char*)NULL); 1751 1742 return TCL_ERROR; 1752 1743 } 1753 c har *string = Tcl_GetString(objv[2]);1744 const char *string = Tcl_GetString(objv[2]); 1754 1745 c = string[0]; 1755 1746 if ((c == 'v') && (strcmp(string, "visible") == 0)) { 1756 1747 if (objc != 4) { 1757 1748 Tcl_AppendResult(interp, "wrong # args: should be \"", 1758 1759 1749 Tcl_GetString(objv[0]), " particle visible on|off\"", 1750 (char*)NULL); 1760 1751 return TCL_ERROR; 1761 1752 } … … 1768 1759 if (objc != 4) { 1769 1760 Tcl_AppendResult(interp, "wrong # args: should be \"", 1770 1771 1761 Tcl_GetString(objv[0]), 1762 " particle slice volume\"", (char*)NULL); 1772 1763 return TCL_ERROR; 1773 1764 } … … 1780 1771 if (objc != 4) { 1781 1772 Tcl_AppendResult(interp, "wrong # args: should be \"", 1782 1783 1773 Tcl_GetString(objv[0]), " particle slicepos value\"", 1774 (char*)NULL); 1784 1775 return TCL_ERROR; 1785 1776 } … … 1805 1796 } 1806 1797 } else { 1807 Tcl_AppendResult(interp, "unknown option \"", string,"\": should be \"",1808 Tcl_GetString(objv[0]), " visible, slice, or slicepos\"", 1809 1798 Tcl_AppendResult(interp, "unknown option \"", string, 1799 "\": should be \"", Tcl_GetString(objv[0]), 1800 " visible, slice, or slicepos\"", (char *)NULL); 1810 1801 return TCL_ERROR; 1811 1802 } … … 1815 1806 if (objc > 4 || objc < 3) { 1816 1807 Tcl_AppendResult(interp, "wrong # args: should be \"", 1817 1818 1808 Tcl_GetString(objv[0]), " capture numframes [directory]\"", 1809 (char*)NULL); 1819 1810 return TCL_ERROR; 1820 1811 } … … 1833 1824 // 1834 1825 Trace("FLOW started\n"); 1835 c har *fileName;1826 const char *fileName; 1836 1827 fileName = (objc < 4) ? NULL : Tcl_GetString(objv[3]); 1837 1828 for (int frame_count = 0; frame_count < total_frame_count; … … 1869 1860 if (objc < 3) { 1870 1861 Tcl_AppendResult(interp, "wrong # args: should be \"", 1871 1862 Tcl_GetString(objv[0]), " data follows ?args?", (char *)NULL); 1872 1863 return TCL_ERROR; 1873 1864 } 1874 c har *string = Tcl_GetString(objv[2]);;1865 const char *string = Tcl_GetString(objv[2]);; 1875 1866 c = string[0]; 1876 1867 if ((c == 'f') && (strcmp(string,"follows") == 0)) { 1877 1868 if (objc != 4) { 1878 1869 Tcl_AppendResult(interp, "wrong # args: should be \"", 1879 1880 1870 Tcl_GetString(objv[0]), " data follows length", 1871 (char *)NULL); 1881 1872 return TCL_ERROR; 1882 1873 } … … 1910 1901 1911 1902 NanoVis::vol_renderer->add_volume(volPtr, 1912 1903 NanoVis::get_transfunc("default")); 1913 1904 } 1914 1905 } … … 1922 1913 static int 1923 1914 HeightMapDataFollowsOp(ClientData cdata, Tcl_Interp *interp, int objc, 1924 Tcl_Obj * CONST*objv)1915 Tcl_Obj *const *objv) 1925 1916 { 1926 1917 Rappture::Buffer buf; … … 1945 1936 static int 1946 1937 HeightMapDataVisibleOp(ClientData cdata, Tcl_Interp *interp, int objc, 1947 Tcl_Obj * CONST*objv)1938 Tcl_Obj *const *objv) 1948 1939 { 1949 1940 bool visible; … … 1957 1948 vector<HeightMap *>::iterator iter; 1958 1949 for (iter = imap.begin(); iter != imap.end(); iter++) { 1959 1950 (*iter)->setVisible(visible); 1960 1951 } 1961 1952 return TCL_OK; … … 1970 1961 static int 1971 1962 HeightMapDataOp(ClientData cdata, Tcl_Interp *interp, int objc, 1972 Tcl_Obj *CONST*objv)1963 Tcl_Obj *const *objv) 1973 1964 { 1974 1965 Tcl_ObjCmdProc *proc; 1975 1966 1976 1967 proc = Rappture::GetOpFromObj(interp, nHeightMapDataOps, heightMapDataOps, 1977 1968 Rappture::CMDSPEC_ARG2, objc, objv, 0); 1978 1969 if (proc == NULL) { 1979 1970 return TCL_ERROR; … … 1985 1976 static int 1986 1977 HeightMapLineContourColorOp(ClientData cdata, Tcl_Interp *interp, int objc, 1987 Tcl_Obj *CONST*objv)1978 Tcl_Obj *const *objv) 1988 1979 { 1989 1980 float rgb[3]; … … 1997 1988 vector<HeightMap *>::iterator iter; 1998 1989 for (iter = imap.begin(); iter != imap.end(); iter++) { 1999 1990 (*iter)->setLineContourColor(rgb); 2000 1991 } 2001 1992 return TCL_OK; … … 2004 1995 static int 2005 1996 HeightMapLineContourVisibleOp(ClientData cdata, Tcl_Interp *interp, int objc, 2006 Tcl_Obj * CONST*objv)1997 Tcl_Obj *const *objv) 2007 1998 { 2008 1999 bool visible; … … 2016 2007 vector<HeightMap *>::iterator iter; 2017 2008 for (iter = imap.begin(); iter != imap.end(); iter++) { 2018 2009 (*iter)->setLineContourVisible(visible); 2019 2010 } 2020 2011 return TCL_OK; … … 2029 2020 static int 2030 2021 HeightMapLineContourOp(ClientData cdata, Tcl_Interp *interp, int objc, 2031 Tcl_Obj *CONST*objv)2022 Tcl_Obj *const *objv) 2032 2023 { 2033 2024 Tcl_ObjCmdProc *proc; 2034 2025 2035 2026 proc = Rappture::GetOpFromObj(interp, nHeightMapLineContourOps, 2036 2027 heightMapLineContourOps, Rappture::CMDSPEC_ARG2, objc, objv, 0); 2037 2028 if (proc == NULL) { 2038 2029 return TCL_ERROR; … … 2043 2034 static int 2044 2035 HeightMapCullOp(ClientData cdata, Tcl_Interp *interp, int objc, 2045 Tcl_Obj *CONST*objv)2036 Tcl_Obj *const *objv) 2046 2037 { 2047 2038 graphics::RenderContext::CullMode mode; … … 2055 2046 static int 2056 2047 HeightMapCreateOp(ClientData cdata, Tcl_Interp *interp, int objc, 2057 Tcl_Obj * CONST*objv)2048 Tcl_Obj *const *objv) 2058 2049 { 2059 2050 HeightMap *hmPtr; … … 2071 2062 static int 2072 2063 HeightMapLegendOp(ClientData cdata, Tcl_Interp *interp, int objc, 2073 Tcl_Obj * CONST*objv)2064 Tcl_Obj *const *objv) 2074 2065 { 2075 2066 HeightMap *hmPtr; … … 2081 2072 if (tf == NULL) { 2082 2073 Tcl_AppendResult(interp, "no transfer function defined for heightmap \"", 2083 2074 Tcl_GetString(objv[2]), "\"", (char*)NULL); 2084 2075 return TCL_ERROR; 2085 2076 } … … 2090 2081 } 2091 2082 if (HeightMap::update_pending) { 2092 2083 NanoVis::SetHeightmapRanges(); 2093 2084 } 2094 2085 NanoVis::render_legend(tf, HeightMap::valueMin, HeightMap::valueMax, w, h, 2095 2086 "label"); 2096 2087 return TCL_OK; 2097 2088 } … … 2099 2090 static int 2100 2091 HeightMapPolygonOp(ClientData cdata, Tcl_Interp *interp, int objc, 2101 Tcl_Obj * CONST*objv)2092 Tcl_Obj *const *objv) 2102 2093 { 2103 2094 graphics::RenderContext::PolygonMode mode; … … 2111 2102 static int 2112 2103 HeightMapShadingOp(ClientData cdata, Tcl_Interp *interp, int objc, 2113 Tcl_Obj *CONST*objv)2104 Tcl_Obj *const *objv) 2114 2105 { 2115 2106 graphics::RenderContext::ShadingModel model; … … 2123 2114 static int 2124 2115 HeightMapTestOp(ClientData cdata, Tcl_Interp *interp, int objc, 2125 Tcl_Obj *CONST*objv)2116 Tcl_Obj *const *objv) 2126 2117 { 2127 2118 srand((unsigned)time(NULL)); … … 2155 2146 static int 2156 2147 HeightMapTransFuncOp(ClientData cdata, Tcl_Interp *interp, int objc, 2157 Tcl_Obj * CONST*objv)2158 { 2159 c har *name;2148 Tcl_Obj *const *objv) 2149 { 2150 const char *name; 2160 2151 name = Tcl_GetString(objv[2]); 2161 2152 TransferFunction *tf; … … 2172 2163 vector<HeightMap *>::iterator iter; 2173 2164 for (iter = imap.begin(); iter != imap.end(); iter++) { 2174 2165 (*iter)->setColorMap(tf); 2175 2166 } 2176 2167 return TCL_OK; … … 2192 2183 2193 2184 static int 2194 HeightMapCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)2185 HeightMapCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 2195 2186 { 2196 2187 Tcl_ObjCmdProc *proc; 2197 2188 2198 2189 proc = Rappture::GetOpFromObj(interp, nHeightMapOps, heightMapOps, 2199 2190 Rappture::CMDSPEC_ARG1, objc, objv, 0); 2200 2191 if (proc == NULL) { 2201 2192 return TCL_ERROR; … … 2206 2197 static int 2207 2198 GridAxisColorOp(ClientData cdata, Tcl_Interp *interp, int objc, 2208 Tcl_Obj * CONST*objv)2199 Tcl_Obj *const *objv) 2209 2200 { 2210 2201 float r, g, b, a; … … 2226 2217 static int 2227 2218 GridAxisNameOp(ClientData cdata, Tcl_Interp *interp, int objc, 2228 Tcl_Obj *CONST *objv) 2229 { 2230 int axisId; 2231 if (GetAxisFromObj(interp, objv[2], &axisId) != TCL_OK) { 2232 return TCL_ERROR; 2233 } 2234 if (NanoVis::grid) { 2235 #ifdef notdef 2236 NanoVis::grid->setAxisName(axisId, Tcl_GetString(objv[3])); 2237 #endif 2219 Tcl_Obj *const *objv) 2220 { 2221 int axis; 2222 if (GetAxisFromObj(interp, objv[2], &axis) != TCL_OK) { 2223 return TCL_ERROR; 2224 } 2225 if (NanoVis::grid != NULL) { 2226 Axis *axisPtr; 2227 2228 switch (axis) { 2229 case 0: axisPtr = &NanoVis::grid->xAxis; break; 2230 case 1: axisPtr = &NanoVis::grid->yAxis; break; 2231 case 2: axisPtr = &NanoVis::grid->zAxis; break; 2232 } 2233 axisPtr->SetName(Tcl_GetString(objv[3])); 2234 axisPtr->SetUnits(Tcl_GetString(objv[4])); 2238 2235 } 2239 2236 return TCL_OK; … … 2242 2239 static int 2243 2240 GridLineColorOp(ClientData cdata, Tcl_Interp *interp, int objc, 2244 Tcl_Obj * CONST*objv)2241 Tcl_Obj *const *objv) 2245 2242 { 2246 2243 float r, g, b, a; … … 2261 2258 2262 2259 static int 2263 GridVisibleOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)2260 GridVisibleOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 2264 2261 { 2265 2262 bool visible; … … 2273 2270 static Rappture::CmdSpec gridOps[] = { 2274 2271 {"axiscolor", 5, GridAxisColorOp, 5, 6, "r g b ?a?",}, 2275 {"axisname", 5, GridAxisNameOp, 5, 5, "index width height",},2272 {"axisname", 5, GridAxisNameOp, 5, 5, "index title units",}, 2276 2273 {"linecolor", 7, GridLineColorOp, 5, 6, "r g b ?a?",}, 2277 2274 {"visible", 1, GridVisibleOp, 3, 3, "bool",}, … … 2280 2277 2281 2278 static int 2282 GridCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)2279 GridCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 2283 2280 { 2284 2281 Tcl_ObjCmdProc *proc; 2285 2282 2286 2283 proc = Rappture::GetOpFromObj(interp, nGridOps, gridOps, 2287 2284 Rappture::CMDSPEC_ARG1, objc, objv, 0); 2288 2285 if (proc == NULL) { 2289 2286 return TCL_ERROR; … … 2293 2290 2294 2291 static int 2295 AxisCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)2292 AxisCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 2296 2293 { 2297 2294 if (objc < 2) { 2298 2295 Tcl_AppendResult(interp, "wrong # args: should be \"", 2299 2300 return TCL_ERROR; 2301 } 2302 c har *string = Tcl_GetString(objv[1]);2296 Tcl_GetString(objv[0]), " option arg arg...\"", (char*)NULL); 2297 return TCL_ERROR; 2298 } 2299 const char *string = Tcl_GetString(objv[1]); 2303 2300 char c = string[0]; 2304 2301 if ((c == 'v') && (strcmp(string, "visible") == 0)) { … … 2319 2316 #if PLANE_CMD 2320 2317 static int 2321 PlaneNewOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)2318 PlaneNewOp(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 2322 2319 { 2323 2320 fprintf(stderr, "load plane for 2D visualization command\n"); … … 2325 2322 if (objc != 4) { 2326 2323 Tcl_AppendResult(interp, "wrong # args: should be \"", 2327 2324 Tcl_GetString(objv[0]), " plane_index w h \"", (char*)NULL); 2328 2325 return TCL_ERROR; 2329 2326 } … … 2338 2335 } 2339 2336 2340 //Now read w*h*4 bytes. The server expects the plane to be a stream of floats 2337 //Now read w*h*4 bytes. The server expects the plane to be a stream of 2338 //floats 2341 2339 char* tmp = new char[int(w*h*sizeof(float))]; 2342 2340 if (tmp == NULL) { … … 2358 2356 static int 2359 2357 PlaneLinkOp(ClientData cdata, Tcl_Interp *interp, int objc, 2360 Tcl_Obj *CONST*objv)2358 Tcl_Obj *const *objv) 2361 2359 { 2362 2360 fprintf(stderr, "link the plane to the 2D renderer command\n"); … … 2366 2364 if (objc != 3) { 2367 2365 Tcl_AppendResult(interp, "wrong # args: should be \"", 2368 2366 Tcl_GetString(objv[0]), " plane_index tf_index \"", (char*)NULL); 2369 2367 return TCL_ERROR; 2370 2368 } … … 2383 2381 static int 2384 2382 PlaneEnableOp(ClientData cdata, Tcl_Interp *interp, int objc, 2385 Tcl_Obj *CONST*objv)2383 Tcl_Obj *const *objv) 2386 2384 { 2387 2385 fprintf(stderr,"enable a plane so the 2D renderer can render it command\n"); … … 2389 2387 if (objc != 3) { 2390 2388 Tcl_AppendResult(interp, "wrong # args: should be \"", 2391 2389 Tcl_GetString(objv[0]), " plane_index mode \"", (char*)NULL); 2392 2390 return TCL_ERROR; 2393 2391 } … … 2415 2413 2416 2414 static int 2417 PlaneCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST*objv)2415 PlaneCmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv) 2418 2416 { 2419 2417 Tcl_ObjCmdProc *proc; 2420 2418 2421 2419 proc = Rappture::GetOpFromObj(interp, nPlaneOps, planeOps, 2422 2420 Rappture::CMDSPEC_ARG1, objc, objv, 0); 2423 2421 if (proc == NULL) { 2424 2422 return TCL_ERROR; … … 2441 2439 */ 2442 2440 static int 2443 UniRect2dCmd(ClientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST *objv) 2441 UniRect2dCmd(ClientData clientData, Tcl_Interp *interp, int objc, 2442 Tcl_Obj *const *objv) 2444 2443 { 2445 2444 int xNum, yNum, zNum; … … 2449 2448 if ((objc & 0x01) == 0) { 2450 2449 Tcl_AppendResult(interp, Tcl_GetString(objv[0]), ": ", 2451 2452 2450 "wrong number of arguments: should be key-value pairs", 2451 (char *)NULL); 2453 2452 return TCL_ERROR; 2454 2453 } … … 2458 2457 int i; 2459 2458 for (i = 1; i < objc; i += 2) { 2460 c har *string;2459 const char *string; 2461 2460 2462 2461 string = Tcl_GetString(objv[i]); … … 2510 2509 } else { 2511 2510 Tcl_AppendResult(interp, "unknown key \"", string, 2512 2513 2511 "\": should be xmin, xmax, xnum, ymin, ymax, ynum, or zvalues", 2512 (char *)NULL); 2514 2513 return TCL_ERROR; 2515 2514 } … … 2521 2520 if (zNum != (xNum * yNum)) { 2522 2521 Tcl_AppendResult(interp, "wrong number of z values must be xnum*ynum", 2523 2522 (char *)NULL); 2524 2523 return TCL_ERROR; 2525 2524 } … … 2559 2558 Tcl_CreateObjCommand(interp, "legend", LegendCmd, NULL, NULL); 2560 2559 Tcl_CreateObjCommand(interp, "screen", ScreenCmd, NULL, NULL); 2561 Tcl_CreateObjCommand(interp, "s creenshot", ScreenShotCmd,NULL, NULL);2560 Tcl_CreateObjCommand(interp, "snapshot", SnapshotCmd, NULL, NULL); 2562 2561 Tcl_CreateObjCommand(interp, "transfunc", TransfuncCmd, NULL, NULL); 2563 2562 Tcl_CreateObjCommand(interp, "unirect2d", UniRect2dCmd, NULL, NULL); … … 2632 2631 if (status != TCL_OK) { 2633 2632 std::ostringstream errmsg; 2634 errmsg << " ERROR: " << Tcl_GetStringResult(interp) << std::endl;2633 errmsg << "NanoVis Server Error: " << Tcl_GetStringResult(interp) << std::endl; 2635 2634 write(0, errmsg.str().c_str(), errmsg.str().size()); 2636 2635 return; … … 2677 2676 write(0, rle, rle_size); //unsigned byte 2678 2677 #else 2679 NanoVis:: bmp_write("nv>image -bytes");2678 NanoVis::ppm_write("nv>image -bytes"); 2680 2679 #endif 2681 2680 }
Note: See TracChangeset
for help on using the changeset viewer.