// // time: Wed Apr 9 15:49:09 1997 // // version: 3.1.1 (format), 3.1.4 (DX Beta) // // // MODULE main // // comment: This example compares the velocity of a wind field to the vorticity of that wind field. This data is provided courtesy of NCSA at the University of Illinois, Urbana-Champaign. You can choose to see either a volume rendering of the data or a single slab of the data. Interactors control which realization you see, and if you are using slabs, which slab position and how to color the slab. Choose "Open All Control Panels" from the Windows menu to open the control panel. // comment: // comment: The integer interactor which controls the slab position is data driven, so that regardless of which dimension the slab is taken in, the interactor cannot exceed the actual number of slabs. // comment: // comment: An interactor also controls whether the slabs are colored from blue to red on each slab, or whether they are colored based on the data values in the entire data set. The latter will result in colors which are consistent from slab to slab, though they will be less dramatic on a given slab. // comment: // comment: Note that the slab dimension parameter specifies which dimension in connection space is selected. Connection space does not necessarily correspond to position space, and in fact in this particular data set, the second dimension of connections corresponds to z in positions, and the third dimension of connections correponds to y in positions. // page assignment: div_curl order=6, windowed=0, showing=0 // page assignment: image order=8, windowed=0, showing=0 // page assignment: import order=2, windowed=0, showing=1 // page assignment: make_slab order=4, windowed=0, showing=0 // page assignment: slab_curl order=7, windowed=0, showing=0 // page assignment: visualize order=5, windowed=0, showing=0 // page assignment: volume_viz order=3, windowed=0, showing=0 // workspace: width = 614, height = 572 // layout: snap = 0, width = 50, height = 50, align = UL // macro main( ) -> ( ) { // // node Import[2]: x = 20, y = 20, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "wind" // page group: import // main_Import_2_out_1 = Import( main_Import_2_in_1, main_Import_2_in_2, main_Import_2_in_3, main_Import_2_in_4, main_Import_2_in_5, main_Import_2_in_6 ) [instance: 2, cache: 1]; // // node Transmitter[6]: x = 410, y = 504, inputs = 1, label = original_data // page group: import // original_data = main_Import_2_out_1; // // node Receiver[23]: x = 105, y = 204, inputs = 1, label = original_data // page group: volume_viz // main_Receiver_23_out_1[cache: 0] = original_data; // // node AutoColor[1]: x = 122, y = 306, inputs = 10, label = AutoColor // input[3]: defaulting = 0, visible = 0, type = 5, value = 2.00000 // page group: volume_viz // main_AutoColor_1_out_1, main_AutoColor_1_out_2 = AutoColor( main_Receiver_23_out_1, main_AutoColor_1_in_2, main_AutoColor_1_in_3, main_AutoColor_1_in_4, main_AutoColor_1_in_5, main_AutoColor_1_in_6, main_AutoColor_1_in_7, main_AutoColor_1_in_8, main_AutoColor_1_in_9, main_AutoColor_1_in_10 ) [instance: 1, cache: 1]; // // node Receiver[11]: x = 38, y = 20, inputs = 1, label = original_data // page group: div_curl // main_Receiver_11_out_1[cache: 0] = original_data; // // node DivCurl[1]: x = 57, y = 154, inputs = 2, label = DivCurl // page group: div_curl // main_DivCurl_1_out_1, main_DivCurl_1_out_2 = DivCurl( main_Receiver_11_out_1, main_DivCurl_1_in_2 ) [instance: 1, cache: 1]; // // node AutoColor[2]: x = 20, y = 362, inputs = 10, label = AutoColor // input[3]: defaulting = 0, visible = 0, type = 5, value = 2.00000 // page group: div_curl // main_AutoColor_2_out_1, main_AutoColor_2_out_2 = AutoColor( main_DivCurl_1_out_2, main_AutoColor_2_in_2, main_AutoColor_2_in_3, main_AutoColor_2_in_4, main_AutoColor_2_in_5, main_AutoColor_2_in_6, main_AutoColor_2_in_7, main_AutoColor_2_in_8, main_AutoColor_2_in_9, main_AutoColor_2_in_10 ) [instance: 2, cache: 1]; // // node Receiver[9]: x = 0, y = 21, inputs = 1, label = original_data // page group: make_slab // main_Receiver_9_out_1[cache: 0] = original_data; // // node Integer[2]: x = 82, y = 222, inputs = 11, label = Integer // input[1]: defaulting = 0, visible = 0, type = 32, value = "Integer_2" // input[3]: defaulting = 0, visible = 0, type = 1, value = 2 // input[4]: defaulting = 1, visible = 0, type = 1, value = 0 // input[5]: defaulting = 1, visible = 0, type = 1, value = 0 // input[6]: defaulting = 1, visible = 0, type = 1, value = 2 // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.00000 // input[9]: defaulting = 1, visible = 0, type = 1, value = 0 // output[1]: visible = 1, type = 1, value = 2 // page group: import // // // node Transmitter[14]: x = 166, y = 506, inputs = 1, label = slab_dimension // page group: import // slab_dimension = main_Integer_2_out_1; // // node Receiver[19]: x = 101, y = 20, inputs = 1, label = slab_dimension // page group: make_slab // main_Receiver_19_out_1[cache: 0] = slab_dimension; // // node Inquire[1]: x = 32, y = 92, inputs = 3, label = Inquire // input[2]: defaulting = 0, visible = 1, type = 32, value = "connection gridcounts" // page group: import // main_Inquire_1_out_1 = Inquire( main_Import_2_out_1, main_Inquire_1_in_2, main_Inquire_1_in_3 ) [instance: 1, cache: 1]; // // node Compute[6]: x = 41, y = 300, inputs = 3, label = Compute // input[1]: defaulting = 0, visible = 0, type = 32, value = "select($0, $1)-1" // page group: import // expression: value = select(a, b)-1 // name[2]: value = a // name[3]: value = b // main_Compute_6_out_1 = Compute( main_Compute_6_in_1, main_Inquire_1_out_1, main_Integer_2_out_1 ) [instance: 6, cache: 1]; // // node Integer[1]: x = 41, y = 385, inputs = 11, label = Integer // input[1]: defaulting = 0, visible = 0, type = 32, value = "Integer_1" // input[2]: defaulting = 1, visible = 1, type = 67108863, value = NULL // input[3]: defaulting = 0, visible = 0, type = 1, value = 2 // input[4]: defaulting = 1, visible = 0, type = 1, value = 0 // input[5]: defaulting = 0, visible = 1, type = 1, value = 0 // input[6]: defaulting = 1, visible = 1, type = 1, value = 7 // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.00000 // input[8]: defaulting = 1, visible = 0, type = 32, value = "0" // input[9]: defaulting = 1, visible = 0, type = 1, value = 0 // output[1]: visible = 1, type = 1, value = 2 // page group: import // main_Integer_1_out_1[cache: 2] = Integer( main_Integer_1_in_1, main_Integer_1_in_2, main_Integer_1_in_3, main_Integer_1_in_4, main_Integer_1_in_5, main_Compute_6_out_1, main_Integer_1_in_7, main_Integer_1_in_8, main_Integer_1_in_9, main_Integer_1_in_10, main_Integer_1_in_11 ) [instance: 1, cache: 1]; // // node Transmitter[5]: x = 53, y = 510, inputs = 1, label = slab_position // page group: import // slab_position = main_Integer_1_out_1; // // node Receiver[7]: x = 224, y = 22, inputs = 1, label = slab_position // page group: make_slab // main_Receiver_7_out_1[cache: 0] = slab_position; // // node Slab[1]: x = 44, y = 164, inputs = 4, label = Slab // input[4]: defaulting = 0, visible = 1, type = 1, value = 0 // page group: make_slab // main_Slab_1_out_1 = Slab( main_Receiver_9_out_1, main_Receiver_19_out_1, main_Receiver_7_out_1, main_Slab_1_in_4 ) [instance: 1, cache: 1]; // // node Selector[3]: x = 335, y = 121, inputs = 7, label = Selector // input[1]: defaulting = 0, visible = 0, type = 32, value = "Selector_3" // input[2]: defaulting = 0, visible = 0, type = 32, value = "entire data set" // input[3]: defaulting = 0, visible = 0, type = 29, value = 1 // input[4]: defaulting = 1, visible = 1, type = 16777248, value = { "entire data set" "single slab" } // input[5]: defaulting = 1, visible = 0, type = 16777245, value = { 1 0 } // input[6]: defaulting = 1, visible = 0, type = 3, value = 0 // output[1]: visible = 1, type = 29, value = 1 // output[2]: visible = 1, type = 32, value = "entire data set" // page group: make_slab // // // node Switch[7]: x = 161, y = 222, inputs = 2, label = Switch // page group: make_slab // main_Switch_7_out_1 = Switch( main_Selector_3_out_1, main_Receiver_9_out_1 ) [instance: 7, cache: 1]; // // node AutoColor[3]: x = 85, y = 307, inputs = 10, label = AutoColor // page group: make_slab // main_AutoColor_3_out_1, main_AutoColor_3_out_2 = AutoColor( main_Slab_1_out_1, main_AutoColor_3_in_2, main_AutoColor_3_in_3, main_AutoColor_3_in_4, main_AutoColor_3_in_5, main_AutoColor_3_in_6, main_Switch_7_out_1, main_AutoColor_3_in_8, main_AutoColor_3_in_9, main_AutoColor_3_in_10 ) [instance: 3, cache: 1]; // // node Transmitter[7]: x = 140, y = 449, inputs = 1, label = curl_field // page group: div_curl // curl_field = main_DivCurl_1_out_2; // // node Receiver[12]: x = 15, y = 29, inputs = 1, label = curl_field // page group: slab_curl // main_Receiver_12_out_1[cache: 0] = curl_field; // // node Receiver[20]: x = 96, y = 28, inputs = 1, label = slab_dimension // page group: slab_curl // main_Receiver_20_out_1[cache: 0] = slab_dimension; // // node Receiver[8]: x = 215, y = 31, inputs = 1, label = slab_position // page group: slab_curl // main_Receiver_8_out_1[cache: 0] = slab_position; // // node Slab[2]: x = 110, y = 224, inputs = 4, label = Slab // input[4]: defaulting = 0, visible = 1, type = 1, value = 0 // page group: slab_curl // main_Slab_2_out_1 = Slab( main_Receiver_12_out_1, main_Receiver_20_out_1, main_Receiver_8_out_1, main_Slab_2_in_4 ) [instance: 2, cache: 1]; // // node Transmitter[4]: x = 284, y = 524, inputs = 1, label = autocolor_option // page group: make_slab // autocolor_option = main_Selector_3_out_1; // // node Receiver[6]: x = 341, y = 32, inputs = 1, label = autocolor_option // page group: slab_curl // main_Receiver_6_out_1[cache: 0] = autocolor_option; // // node Switch[8]: x = 297, y = 190, inputs = 2, label = Switch // page group: slab_curl // main_Switch_8_out_1 = Switch( main_Receiver_6_out_1, main_Receiver_12_out_1 ) [instance: 8, cache: 1]; // // node AutoColor[4]: x = 141, y = 313, inputs = 10, label = AutoColor // page group: slab_curl // main_AutoColor_4_out_1, main_AutoColor_4_out_2 = AutoColor( main_Slab_2_out_1, main_AutoColor_4_in_2, main_AutoColor_4_in_3, main_AutoColor_4_in_4, main_AutoColor_4_in_5, main_AutoColor_4_in_6, main_Switch_8_out_1, main_AutoColor_4_in_8, main_AutoColor_4_in_9, main_AutoColor_4_in_10 ) [instance: 4, cache: 1]; // // node Caption[2]: x = 331, y = 187, inputs = 9, label = Caption // input[1]: defaulting = 0, visible = 1, type = 32, value = "use this window for direct interaction" // page group: visualize // main_Caption_2_out_1 = Caption( main_Caption_2_in_1, main_Caption_2_in_2, main_Caption_2_in_3, main_Caption_2_in_4, main_Caption_2_in_5, main_Caption_2_in_6, main_Caption_2_in_7, main_Caption_2_in_8, main_Caption_2_in_9 ) [instance: 2, cache: 1]; // // node Caption[3]: x = 227, y = 120, inputs = 9, label = Caption // input[1]: defaulting = 0, visible = 1, type = 16777248, value = {"this window uses the same camera" "as the other window"} // page group: image // main_Caption_3_out_1 = Caption( main_Caption_3_in_1, main_Caption_3_in_2, main_Caption_3_in_3, main_Caption_3_in_4, main_Caption_3_in_5, main_Caption_3_in_6, main_Caption_3_in_7, main_Caption_3_in_8, main_Caption_3_in_9 ) [instance: 3, cache: 1]; // // node Caption[4]: x = 414, y = 192, inputs = 9, label = Caption // input[1]: defaulting = 0, visible = 1, type = 32, value = "Wind Field" // input[2]: defaulting = 0, visible = 1, type = 8, value = [.05 .95] // input[6]: defaulting = 0, visible = 0, type = 1, value = 20 // input[7]: defaulting = 0, visible = 1, type = 32, value = "roman_tser" // page group: visualize // main_Caption_4_out_1 = Caption( main_Caption_4_in_1, main_Caption_4_in_2, main_Caption_4_in_3, main_Caption_4_in_4, main_Caption_4_in_5, main_Caption_4_in_6, main_Caption_4_in_7, main_Caption_4_in_8, main_Caption_4_in_9 ) [instance: 4, cache: 1]; // // node Caption[5]: x = 191, y = 223, inputs = 9, label = Caption // input[1]: defaulting = 0, visible = 1, type = 32, value = "Curl (Vorticity) of Wind Field" // input[2]: defaulting = 0, visible = 1, type = 8, value = [.05 .95] // input[6]: defaulting = 0, visible = 0, type = 1, value = 20 // input[7]: defaulting = 0, visible = 1, type = 32, value = "roman_tser" // page group: image // main_Caption_5_out_1 = Caption( main_Caption_5_in_1, main_Caption_5_in_2, main_Caption_5_in_3, main_Caption_5_in_4, main_Caption_5_in_5, main_Caption_5_in_6, main_Caption_5_in_7, main_Caption_5_in_8, main_Caption_5_in_9 ) [instance: 5, cache: 1]; // // node Selector[2]: x = 63, y = 123, inputs = 7, label = Selector // input[1]: defaulting = 0, visible = 0, type = 32, value = "Selector_2" // input[2]: defaulting = 0, visible = 0, type = 32, value = "Slab" // input[3]: defaulting = 0, visible = 0, type = 29, value = 1 // input[4]: defaulting = 1, visible = 1, type = 16777248, value = { "Slab" "Volume Rendering" } // input[5]: defaulting = 1, visible = 0, type = 16777245, value = { 1 2 } // input[6]: defaulting = 1, visible = 0, type = 3, value = 0 // output[1]: visible = 1, type = 29, value = 1 // output[2]: visible = 1, type = 32, value = "Slab" // page group: visualize // // // node ShowBox[3]: x = 234, y = 121, inputs = 1, label = ShowBox // page group: import // main_ShowBox_3_out_1, main_ShowBox_3_out_2 = ShowBox( main_Import_2_out_1 ) [instance: 3, cache: 1]; // // node Transmitter[3]: x = 286, y = 508, inputs = 1, label = bounding_box // page group: import // bounding_box = main_ShowBox_3_out_1; // // node Receiver[5]: x = 438, y = 24, inputs = 1, label = bounding_box // page group: make_slab // main_Receiver_5_out_1[cache: 0] = bounding_box; // // node Collect[7]: x = 175, y = 428, inputs = 2, label = Collect // page group: make_slab // main_Collect_7_out_1 = Collect( main_AutoColor_3_out_1, main_Receiver_5_out_1 ) [instance: 7, cache: 1]; // // node Transmitter[15]: x = 186, y = 522, inputs = 1, label = slab_viz // page group: make_slab // slab_viz = main_Collect_7_out_1; // // node Receiver[21]: x = 158, y = 26, inputs = 1, label = slab_viz // page group: visualize // main_Receiver_21_out_1[cache: 0] = slab_viz; // // node Transmitter[16]: x = 143, y = 377, inputs = 1, label = vol_viz // page group: volume_viz // vol_viz = main_AutoColor_1_out_1; // // node Receiver[22]: x = 237, y = 28, inputs = 1, label = vol_viz // page group: visualize // main_Receiver_22_out_1[cache: 0] = vol_viz; // // node Switch[5]: x = 176, y = 167, inputs = 3, label = Switch // page group: visualize // main_Switch_5_out_1 = Switch( main_Selector_2_out_1, main_Receiver_21_out_1, main_Receiver_22_out_1 ) [instance: 5, cache: 1]; // // node Collect[4]: x = 266, y = 259, inputs = 3, label = Collect // page group: visualize // main_Collect_4_out_1 = Collect( main_Switch_5_out_1, main_Caption_2_out_1, main_Caption_4_out_1 ) [instance: 4, cache: 1]; // // node Transmitter[1]: x = 91, y = 428, inputs = 1, label = which // page group: visualize // which = main_Selector_2_out_1; // // node Receiver[1]: x = 0, y = 28, inputs = 1, label = which // page group: image // main_Receiver_1_out_1[cache: 0] = which; // // node Receiver[4]: x = 489, y = 48, inputs = 1, label = bounding_box // page group: slab_curl // main_Receiver_4_out_1[cache: 0] = bounding_box; // // node Collect[6]: x = 165, y = 404, inputs = 2, label = Collect // page group: slab_curl // main_Collect_6_out_1 = Collect( main_AutoColor_4_out_1, main_Receiver_4_out_1 ) [instance: 6, cache: 1]; // // node Transmitter[9]: x = 160, y = 505, inputs = 1, label = slab_and_box // page group: slab_curl // slab_and_box = main_Collect_6_out_1; // // node Receiver[15]: x = 84, y = 22, inputs = 1, label = slab_and_box // page group: image // main_Receiver_15_out_1[cache: 0] = slab_and_box; // // node Transmitter[8]: x = 27, y = 459, inputs = 1, label = curl_volume // page group: div_curl // curl_volume = main_AutoColor_2_out_1; // // node Receiver[14]: x = 199, y = 28, inputs = 1, label = curl_volume // page group: image // main_Receiver_14_out_1[cache: 0] = curl_volume; // // node Switch[6]: x = 94, y = 123, inputs = 3, label = Switch // page group: image // main_Switch_6_out_1 = Switch( main_Receiver_1_out_1, main_Receiver_15_out_1, main_Receiver_14_out_1 ) [instance: 6, cache: 1]; // // node Collect[5]: x = 92, y = 274, inputs = 3, label = Collect // page group: image // main_Collect_5_out_1 = Collect( main_Switch_6_out_1, main_Caption_3_out_1, main_Caption_5_out_1 ) [instance: 5, cache: 1]; // // node Image[3]: x = 264, y = 329, inputs = 48, label = Image // input[1]: defaulting = 0, visible = 0, type = 67108863, value = "Image_3" // input[4]: defaulting = 0, visible = 0, type = 1, value = 1 // input[5]: defaulting = 0, visible = 0, type = 8, value = [50000 7750 27000] // input[6]: defaulting = 0, visible = 0, type = 8, value = [-19853.7 107186 288363] // input[7]: defaulting = 0, visible = 0, type = 5, value = 154464.0 // input[8]: defaulting = 0, visible = 0, type = 1, value = 391 // input[9]: defaulting = 0, visible = 0, type = 5, value = 0.82 // input[10]: defaulting = 0, visible = 0, type = 8, value = [0.0427634 0.937533 -0.345257] // input[11]: defaulting = 1, visible = 0, type = 5, value = 30.0002 // input[12]: defaulting = 0, visible = 0, type = 1, value = 0 // input[14]: defaulting = 0, visible = 0, type = 1, value = 1 // input[15]: defaulting = 1, visible = 0, type = 32, value = "none" // input[16]: defaulting = 1, visible = 0, type = 32, value = "none" // input[17]: defaulting = 1, visible = 0, type = 1, value = 1 // input[18]: defaulting = 1, visible = 0, type = 1, value = 1 // input[19]: defaulting = 0, visible = 0, type = 3, value = 0 // input[29]: defaulting = 1, visible = 0, type = 3, value = 0 // page group: visualize // depth: value = 24 // window: position = (0.3359,0.3076), size = 0.3164x0.3809 // internal caching: 1 // main_Image_3_out_1, main_Image_3_out_2, main_Image_3_out_3 = Image( main_Image_3_in_1, main_Collect_4_out_1, main_Image_3_in_3, main_Image_3_in_4, main_Image_3_in_5, main_Image_3_in_6, main_Image_3_in_7, main_Image_3_in_8, main_Image_3_in_9, main_Image_3_in_10, main_Image_3_in_11, main_Image_3_in_12, main_Image_3_in_13, main_Image_3_in_14, main_Image_3_in_15, main_Image_3_in_16, main_Image_3_in_17, main_Image_3_in_18, main_Image_3_in_19, main_Image_3_in_20, main_Image_3_in_21, main_Image_3_in_22, main_Image_3_in_23, main_Image_3_in_24, main_Image_3_in_25, main_Image_3_in_26, main_Image_3_in_27, main_Image_3_in_28, main_Image_3_in_29, main_Image_3_in_30, main_Image_3_in_31, main_Image_3_in_32, main_Image_3_in_33, main_Image_3_in_34, main_Image_3_in_35, main_Image_3_in_36, main_Image_3_in_37, main_Image_3_in_38, main_Image_3_in_39, main_Image_3_in_40, main_Image_3_in_41, main_Image_3_in_42, main_Image_3_in_43, main_Image_3_in_44, main_Image_3_in_45, main_Image_3_in_46, main_Image_3_in_47, main_Image_3_in_48 ) [instance: 3, cache: 1]; // // node Transmitter[10]: x = 254, y = 434, inputs = 1, label = camera // page group: visualize // camera = main_Image_3_out_2; // // node Receiver[16]: x = 357, y = 31, inputs = 1, label = camera // page group: image // main_Receiver_16_out_1[cache: 0] = camera; // // node Display[1]: x = 155, y = 391, inputs = 4, label = Display // page group: image // depth: value = 24 // window: position = (0.6680,0.3076), size = 0.3164x0.3809 // main_Display_1_out_1[cache: 2] = Display( main_Collect_5_out_1, main_Receiver_16_out_1, main_Display_1_in_3, main_Display_1_in_4 ) [instance: 1, cache: 1]; // // decorator Annotate pos=(140,21) size=474x44 style(Label), value = // annotation user_begin: 132 // annotation user: This page imports the data and sets up a data-driven interactor // annotation user: to allow the user to choose which slab to take from the 3D data set. // annotation user_end: // page group: import // // decorator Annotate pos=(42,99) size=431x44 style(Label), value = // annotation user_begin: 94 // annotation user: This page simply autocolors the 3D field using AutoColor for // annotation user: a volume rendering visualization. // annotation user_end: // page group: volume_viz // // decorator Annotate pos=(244,298) size=360x92 style(Label), value = // annotation user_begin: 251 // annotation user: This page extracts the user-selected slab from the // annotation user: three dimensional data set. It autocolors it based // annotation user: on just the data values on the slab, or on the // annotation user: data values of the entire 3D field, depending on // annotation user: the setting of a selector interactor. // annotation user_end: // page group: make_slab // // decorator Annotate pos=(313,27) size=307x124 style(Label), value = // annotation user_begin: 297 // annotation user: This page allows the user to choose // annotation user: whether to see the volume rendering or // annotation user: the slab visualization. The choice is // annotation user: collected with appropriate captions, and // annotation user: passed to the image tool. The camera used // annotation user: in the Image is passed out, to be used by // annotation user: a second display window. // annotation user_end: // page group: visualize // // decorator Annotate pos=(199,81) size=433x28 style(Label), value = // annotation user_begin: 61 // annotation user: This page computes the divergence and curl of the data field. // annotation user_end: // page group: div_curl // // decorator Annotate pos=(265,408) size=332x60 style(Label), value = // annotation user_begin: 118 // annotation user: This page extracts a slab of the curl field, and // annotation user: colors it in the same way that the original wind // annotation user: field was colored. // annotation user_end: // page group: slab_curl // // decorator Annotate pos=(219,317) size=368x76 style(Label), value = // annotation user_begin: 172 // annotation user: This page displays either the volume rendering or // annotation user: the slab of the curl field, depending on the user // annotation user: choice. The camera is the same camera used for the // annotation user: Image tool. // annotation user_end: // page group: image // network: end of macro body CacheScene("Image_3", main_Image_3_out_1, main_Image_3_out_2); } main_Import_2_in_1 = "wind"; main_Import_2_in_2 = NULL; main_Import_2_in_3 = NULL; main_Import_2_in_4 = NULL; main_Import_2_in_5 = NULL; main_Import_2_in_6 = NULL; main_Import_2_out_1 = NULL; main_Transmitter_6_out_1 = NULL; main_Receiver_23_out_1 = NULL; main_AutoColor_1_in_2 = NULL; main_AutoColor_1_in_3 = 2.00000; main_AutoColor_1_in_4 = NULL; main_AutoColor_1_in_5 = NULL; main_AutoColor_1_in_6 = NULL; main_AutoColor_1_in_7 = NULL; main_AutoColor_1_in_8 = NULL; main_AutoColor_1_in_9 = NULL; main_AutoColor_1_in_10 = NULL; main_AutoColor_1_out_1 = NULL; main_Receiver_11_out_1 = NULL; main_DivCurl_1_in_2 = NULL; main_DivCurl_1_out_2 = NULL; main_AutoColor_2_in_2 = NULL; main_AutoColor_2_in_3 = 2.00000; main_AutoColor_2_in_4 = NULL; main_AutoColor_2_in_5 = NULL; main_AutoColor_2_in_6 = NULL; main_AutoColor_2_in_7 = NULL; main_AutoColor_2_in_8 = NULL; main_AutoColor_2_in_9 = NULL; main_AutoColor_2_in_10 = NULL; main_AutoColor_2_out_1 = NULL; main_Receiver_9_out_1 = NULL; main_Integer_2_in_1 = "Integer_2"; main_Integer_2_in_2 = NULL; main_Integer_2_in_3 = 2 ; main_Integer_2_in_4 = NULL; main_Integer_2_in_5 = NULL; main_Integer_2_in_6 = NULL; main_Integer_2_in_7 = NULL; main_Integer_2_in_8 = NULL; main_Integer_2_in_9 = NULL; main_Integer_2_in_10 = NULL; main_Integer_2_in_11 = NULL; main_Integer_2_out_1 = 2 ; main_Transmitter_14_out_1 = NULL; main_Receiver_19_out_1 = NULL; main_Inquire_1_in_2 = "connection gridcounts"; main_Inquire_1_in_3 = NULL; main_Inquire_1_out_1 = NULL; main_Compute_6_in_1 = "select($0, $1)-1"; main_Compute_6_out_1 = NULL; main_Integer_1_in_1 = "Integer_1"; main_Integer_1_in_2 = NULL; main_Integer_1_in_3 = 2 ; main_Integer_1_in_4 = NULL; main_Integer_1_in_5 = 0; main_Integer_1_in_7 = NULL; main_Integer_1_in_8 = NULL; main_Integer_1_in_9 = NULL; main_Integer_1_in_10 = NULL; main_Integer_1_in_11 = NULL; main_Integer_1_out_1 = 2 ; main_Transmitter_5_out_1 = NULL; main_Receiver_7_out_1 = NULL; main_Slab_1_in_4 = 0; main_Slab_1_out_1 = NULL; main_Selector_3_in_1 = "Selector_3"; main_Selector_3_in_2 = "entire data set" ; main_Selector_3_in_3 = 1 ; main_Selector_3_in_4 = NULL; main_Selector_3_in_5 = NULL; main_Selector_3_in_6 = NULL; main_Selector_3_in_7 = NULL; main_Selector_3_out_1 = 1 ; main_Switch_7_out_1 = NULL; main_AutoColor_3_in_2 = NULL; main_AutoColor_3_in_3 = NULL; main_AutoColor_3_in_4 = NULL; main_AutoColor_3_in_5 = NULL; main_AutoColor_3_in_6 = NULL; main_AutoColor_3_in_8 = NULL; main_AutoColor_3_in_9 = NULL; main_AutoColor_3_in_10 = NULL; main_AutoColor_3_out_1 = NULL; main_Transmitter_7_out_1 = NULL; main_Receiver_12_out_1 = NULL; main_Receiver_20_out_1 = NULL; main_Receiver_8_out_1 = NULL; main_Slab_2_in_4 = 0; main_Slab_2_out_1 = NULL; main_Transmitter_4_out_1 = NULL; main_Receiver_6_out_1 = NULL; main_Switch_8_out_1 = NULL; main_AutoColor_4_in_2 = NULL; main_AutoColor_4_in_3 = NULL; main_AutoColor_4_in_4 = NULL; main_AutoColor_4_in_5 = NULL; main_AutoColor_4_in_6 = NULL; main_AutoColor_4_in_8 = NULL; main_AutoColor_4_in_9 = NULL; main_AutoColor_4_in_10 = NULL; main_AutoColor_4_out_1 = NULL; main_Caption_2_in_1 = "use this window for direct interaction"; main_Caption_2_in_2 = NULL; main_Caption_2_in_3 = NULL; main_Caption_2_in_4 = NULL; main_Caption_2_in_5 = NULL; main_Caption_2_in_6 = NULL; main_Caption_2_in_7 = NULL; main_Caption_2_in_8 = NULL; main_Caption_2_in_9 = NULL; main_Caption_2_out_1 = NULL; main_Caption_3_in_1 = {"this window uses the same camera" "as the other window"}; main_Caption_3_in_2 = NULL; main_Caption_3_in_3 = NULL; main_Caption_3_in_4 = NULL; main_Caption_3_in_5 = NULL; main_Caption_3_in_6 = NULL; main_Caption_3_in_7 = NULL; main_Caption_3_in_8 = NULL; main_Caption_3_in_9 = NULL; main_Caption_3_out_1 = NULL; main_Caption_4_in_1 = "Wind Field"; main_Caption_4_in_2 = [.05 .95]; main_Caption_4_in_3 = NULL; main_Caption_4_in_4 = NULL; main_Caption_4_in_5 = NULL; main_Caption_4_in_6 = 20; main_Caption_4_in_7 = "roman_tser"; main_Caption_4_in_8 = NULL; main_Caption_4_in_9 = NULL; main_Caption_4_out_1 = NULL; main_Caption_5_in_1 = "Curl (Vorticity) of Wind Field"; main_Caption_5_in_2 = [.05 .95]; main_Caption_5_in_3 = NULL; main_Caption_5_in_4 = NULL; main_Caption_5_in_5 = NULL; main_Caption_5_in_6 = 20; main_Caption_5_in_7 = "roman_tser"; main_Caption_5_in_8 = NULL; main_Caption_5_in_9 = NULL; main_Caption_5_out_1 = NULL; main_Selector_2_in_1 = "Selector_2"; main_Selector_2_in_2 = "Slab" ; main_Selector_2_in_3 = 1 ; main_Selector_2_in_4 = NULL; main_Selector_2_in_5 = NULL; main_Selector_2_in_6 = NULL; main_Selector_2_in_7 = NULL; main_Selector_2_out_1 = 1 ; main_ShowBox_3_out_1 = NULL; main_Transmitter_3_out_1 = NULL; main_Receiver_5_out_1 = NULL; main_Collect_7_out_1 = NULL; main_Transmitter_15_out_1 = NULL; main_Receiver_21_out_1 = NULL; main_Transmitter_16_out_1 = NULL; main_Receiver_22_out_1 = NULL; main_Switch_5_out_1 = NULL; main_Collect_4_out_1 = NULL; main_Transmitter_1_out_1 = NULL; main_Receiver_1_out_1 = NULL; main_Receiver_4_out_1 = NULL; main_Collect_6_out_1 = NULL; main_Transmitter_9_out_1 = NULL; main_Receiver_15_out_1 = NULL; main_Transmitter_8_out_1 = NULL; main_Receiver_14_out_1 = NULL; main_Switch_6_out_1 = NULL; main_Collect_5_out_1 = NULL; macro Image( id, object, where, useVector, to, from, width, resolution, aspect, up, viewAngle, perspective, options, buttonState = 1, buttonUpApprox = "none", buttonDownApprox = "none", buttonUpDensity = 1, buttonDownDensity = 1, renderMode = 0, defaultCamera, reset, backgroundColor, throttle, RECenable = 0, RECfile, RECformat, RECresolution, RECaspect, AAenable = 0, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, interactionMode, title, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels) -> ( object, camera, where) { ImageMessage( id, backgroundColor, throttle, RECenable, RECfile, RECformat, RECresolution, RECaspect, AAenable, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels, interactionMode, title, renderMode, buttonUpApprox, buttonDownApprox, buttonUpDensity, buttonDownDensity) [instance: 1, cache: 1]; autoCamera = AutoCamera( object, "front", object, resolution, aspect, [0,1,0], perspective, viewAngle, backgroundColor) [instance: 1, cache: 1]; realCamera = Camera( to, from, width, resolution, aspect, up, perspective, viewAngle, backgroundColor) [instance: 1, cache: 1]; coloredDefaultCamera = UpdateCamera(defaultCamera, background=backgroundColor) [instance: 1, cache: 1]; nullDefaultCamera = Inquire(defaultCamera, "is null + 1") [instance: 1, cache: 1]; resetCamera = Switch( nullDefaultCamera, coloredDefaultCamera, autoCamera) [instance: 1, cache: 1]; resetNull = Inquire( reset, "is null + 1") [instance: 2, cache: 1]; reset = Switch( resetNull, reset, 0) [instance: 2, cache: 1]; whichCamera = Compute( "($0 != 0 || $1 == 0) ? 1 : 2", reset, useVector) [instance: 1, cache: 1]; camera = Switch( whichCamera, resetCamera, realCamera) [instance: 3, cache: 1]; AAobject = AutoAxes( object, camera, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels) [instance: 1, cache: 1]; switchAAenable = Compute("$0+1", AAenable) [instance: 2, cache: 1]; object = Switch( switchAAenable, object, AAobject) [instance:4, cache: 1]; SWapproximation_options = Switch( buttonState, buttonUpApprox, buttonDownApprox) [instance: 5, cache: 1]; SWdensity_options = Switch( buttonState, buttonUpDensity, buttonDownDensity) [instance: 6, cache: 1]; HWapproximation_options = Format( "%s,%s", buttonDownApprox, buttonUpApprox) [instance: 1, cache: 1]; HWdensity_options = Format( "%d,%d", buttonDownDensity, buttonUpDensity) [instance: 2, cache: 1]; switchRenderMode = Compute( "$0+1", renderMode) [instance: 3, cache: 1]; approximation_options = Switch( switchRenderMode, SWapproximation_options, HWapproximation_options) [instance: 7, cache: 1]; density_options = Switch( switchRenderMode, SWdensity_options, HWdensity_options) [instance: 8, cache: 1]; renderModeString = Switch( switchRenderMode, "software", "hardware")[instance: 9, cache: 1]; object_tag = Inquire( object, "object tag")[instance: 3, cache: 1]; annoted_object = Options( object, "send boxes", 0, "cache", 1, "object tag", object_tag, "ddcamera", whichCamera, "rendering approximation", approximation_options, "render every", density_options, "button state", buttonState, "rendering mode", renderModeString) [instance: 1, cache: 1]; RECresNull = Inquire( RECresolution, "is null + 1") [instance: 4, cache: 1]; ImageResolution = Inquire( camera, "camera resolution") [instance: 5, cache: 1]; RECresolution = Switch( RECresNull, RECresolution, ImageResolution) [instance: 10, cache: 1]; RECaspectNull = Inquire( RECaspect, "is null + 1") [instance: 6, cache: 1]; ImageAspect = Inquire( camera, "camera aspect") [instance: 7, cache: 1]; RECaspect = Switch( RECaspectNull, RECaspect, ImageAspect) [instance: 11, cache: 1]; switchRECenable = Compute( "$0 == 0 ? 1 : (($2 == $3) && ($4 == $5)) ? ($1 == 1 ? 2 : 3) : 4", RECenable, switchRenderMode, RECresolution, ImageResolution, RECaspect, ImageAspect) [instance: 4, cache: 1]; NoRECobject, RECNoRerenderObject, RECNoRerHW, RECRerenderObject = Route(switchRECenable, annoted_object); Display( NoRECobject, camera, where, throttle) [instance: 1, cache: 1]; image = Render( RECNoRerenderObject, camera) [instance: 1, cache: 1]; Display( image, NULL, where, throttle) [instance: 2, cache: 1]; WriteImage( image, RECfile, RECformat) [instance: 1, cache: 1]; rec_where = Display( RECNoRerHW, camera, where, throttle) [instance: 1, cache: 0]; rec_image = ReadImageWindow( rec_where) [instance: 1, cache: 1]; WriteImage( rec_image, RECfile, RECformat) [instance: 1, cache: 1]; RECupdateCamera = UpdateCamera( camera, resolution=RECresolution, aspect=RECaspect) [instance: 2, cache: 1]; Display( RECRerenderObject, camera, where, throttle) [instance: 1, cache: 1]; RECRerenderObject = ScaleScreen( RECRerenderObject, NULL, RECresolution, camera) [instance: 1, cache: 1]; image = Render( RECRerenderObject, RECupdateCamera) [instance: 2, cache: 1]; WriteImage( image, RECfile, RECformat) [instance: 2, cache: 1]; } main_Image_3_in_1 = "Image_3"; main_Image_3_in_3 = "X24,,"; main_Image_3_in_4 = 1; main_Image_3_in_5 = [50000 7750 27000]; main_Image_3_in_6 = [-19853.7 107186 288363]; main_Image_3_in_7 = 154464.0; main_Image_3_in_8 = 391; main_Image_3_in_9 = 0.82; main_Image_3_in_10 = [0.0427634 0.937533 -0.345257]; main_Image_3_in_11 = NULL; main_Image_3_in_12 = 0; main_Image_3_in_13 = NULL; main_Image_3_in_14 = 1; main_Image_3_in_15 = NULL; main_Image_3_in_16 = NULL; main_Image_3_in_17 = NULL; main_Image_3_in_18 = NULL; main_Image_3_in_19 = 0; main_Image_3_in_20 = NULL; main_Image_3_in_21 = NULL; main_Image_3_in_22 = NULL; main_Image_3_in_23 = NULL; main_Image_3_in_25 = NULL; main_Image_3_in_26 = NULL; main_Image_3_in_27 = NULL; main_Image_3_in_28 = NULL; main_Image_3_in_29 = NULL; main_Image_3_in_30 = NULL; main_Image_3_in_31 = NULL; main_Image_3_in_32 = NULL; main_Image_3_in_33 = NULL; main_Image_3_in_34 = NULL; main_Image_3_in_35 = NULL; main_Image_3_in_36 = NULL; main_Image_3_in_37 = NULL; main_Image_3_in_38 = NULL; main_Image_3_in_39 = NULL; main_Image_3_in_40 = NULL; main_Image_3_in_41 = NULL; main_Image_3_in_42 = NULL; main_Image_3_in_43 = NULL; main_Image_3_in_44 = NULL; main_Image_3_in_45 = NULL; main_Image_3_in_46 = NULL; main_Image_3_in_47 = NULL; main_Image_3_in_48 = NULL; main_Image_3_out_2 = NULL; main_Transmitter_10_out_1 = NULL; main_Receiver_16_out_1 = NULL; main_Display_1_in_3 = "X24,,"; main_Display_1_in_4 = NULL; Executive("product version 3 1 4"); $sync main();