//
// time: Wed Apr  9 15:20:30 1997
//
// version: 3.1.1 (format), 3.1.4 (DX Beta)
//
//
// MODULE main
// CATEGORY Macros
// DESCRIPTION makes a line from two points
//
// comment: This example shows seven ways in which you can visualize two variables. In each case, we are looking at the cloudwater amount and temperature on a plane cut through a simulation of a thunderstorm. This data is provided courtesy of NSCA, University of Illinois at Urbana-Champaign. A selector interactor allows you to choose between the various visualizations. 
// comment: 
// comment: As the program is saved, banded colors show temperature while contour lines show cloudwater amount.
// comment: 
// comment: To bring up the control program for the visual program,
// comment: choose Open All Control Panels from the Windows menu.
// comment: 
// comment: The visual program is organized into "pages", accessible
// comment: from the buttons at the top (e.g. Image, color_space, etc.).
// comment: Segments of the visual program communicate with segments on other pages using transmitters and receivers.
// comment: 
// comment: In the first choice of the selector interactor, the cloudwater amount is shown as intensity of the color red, and temperature is shown as the intensity of the color green. Yellow regions are where both temperature and cloudwater are high.
// comment: 
// comment: In the second choice, the hue (from blue through red to magenta) shows the cloudwater amount, while the saturation (from 0, or white, to 1, or full saturation) shows the temperature.
// comment: 
// comment: In the third choice, the red contour lines show the density of cloudwater, while the green contour lines show the temperature.
// comment: 
// comment: In the fourth choice,  the height of the deformed surface shows the cloudwater amount, while the black contour lines show the temperature.
// comment: 
// comment: In the fifth choice,  color (from blue to red) shows temperature, while black contour lines show the cloudwater amount.
// comment: 
// comment: In the sixth choice, the Band module is used to band the temperature values into 7 regions, which are then colored using AutoColor. Black contour lines show cloudwater amount.
// comment: 
// comment: In the seventh choice, grayscale colors show the temperature, while colored contour lines show the cloudwater amount.
// comment: 
// comment: These are only a few examples of the ways in which you might choose to visualize two variables on a plane. The choice of which one is best will be based on your own preferences, as well as which aspects of the data you are trying to study.
// page assignment: 2_contours	order=4, windowed=0, showing=0
// page assignment: Image	order=8, windowed=0, showing=0
// page assignment: color_cont	order=6, windowed=0, showing=0
// page assignment: color_space	order=3, windowed=0, showing=0
// page assignment: greyscale	order=7, windowed=0, showing=0
// page assignment: import	order=2, windowed=0, showing=1
// page assignment: rubbersheet	order=5, windowed=0, showing=0
// workspace: width = 607, height = 499
// layout: snap = 0, width = 50, height = 50, align = UL
//
macro main(
) -> (
) {
    // 
    // node Import[2]: x = 103, y = 199, inputs = 6, label = Import
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "cloudwater"
    // 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 MapToPlane[2]: x = 131, y = 302, inputs = 3, label = MapToPlane
    // input[3]: defaulting = 1, visible = 1, type = 8, value = [0 1 0]
    // page group: import
    //
main_MapToPlane_2_out_1 = 
    MapToPlane(
    main_Import_2_out_1,
    main_MapToPlane_2_in_2,
    main_MapToPlane_2_in_3
    ) [instance: 2, cache: 1];
    // 
    // node Import[3]: x = 293, y = 189, inputs = 6, label = Import
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "temperature"
    // page group: import
    //
main_Import_3_out_1 = 
    Import(
    main_Import_3_in_1,
    main_Import_3_in_2,
    main_Import_3_in_3,
    main_Import_3_in_4,
    main_Import_3_in_5,
    main_Import_3_in_6
    ) [instance: 3, cache: 1];
    // 
    // node Map[3]: x = 296, y = 326, inputs = 4, label = Map
    // page group: import
    //
main_Map_3_out_1 = 
    Map(
    main_MapToPlane_2_out_1,
    main_Import_3_out_1,
    main_Map_3_in_3,
    main_Map_3_in_4
    ) [instance: 3, cache: 1];
    // 
    // node Transmitter[3]: x = 348, y = 437, inputs = 1, label = temp_plane
    // page group: import
    //
temp_plane = main_Map_3_out_1;
    // 
    // node Receiver[15]: x = 13, y = 139, inputs = 1, label = temp_plane
    // page group: color_cont
    //
main_Receiver_15_out_1[cache: 0] = temp_plane;
    // 
    // node AutoColor[3]: x = 165, y = 241, inputs = 10, label = AutoColor
    // page group: color_cont
    //
main_AutoColor_3_out_1,
main_AutoColor_3_out_2 = 
    AutoColor(
    main_Receiver_15_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_AutoColor_3_in_7,
    main_AutoColor_3_in_8,
    main_AutoColor_3_in_9,
    main_AutoColor_3_in_10
    ) [instance: 3, cache: 1];
    // 
    // node Band[1]: x = 65, y = 244, inputs = 4, label = Band
    // input[3]: defaulting = 0, visible = 1, type = 1, value = 6
    // page group: color_cont
    //
main_Band_1_out_1 = 
    Band(
    main_Receiver_15_out_1,
    main_Band_1_in_2,
    main_Band_1_in_3,
    main_Band_1_in_4
    ) [instance: 1, cache: 1];
    // 
    // node AutoColor[4]: x = 79, y = 331, inputs = 10, label = AutoColor
    // page group: color_cont
    //
main_AutoColor_4_out_1,
main_AutoColor_4_out_2 = 
    AutoColor(
    main_Band_1_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_AutoColor_4_in_7,
    main_AutoColor_4_in_8,
    main_AutoColor_4_in_9,
    main_AutoColor_4_in_10
    ) [instance: 4, cache: 1];
    // 
    // node Transmitter[2]: x = 110, y = 430, inputs = 1, label = cloud_plane
    // page group: import
    //
cloud_plane = main_MapToPlane_2_out_1;
    // 
    // node Receiver[22]: x = 171, y = 154, inputs = 1, label = cloud_plane
    // page group: greyscale
    //
main_Receiver_22_out_1[cache: 0] = cloud_plane;
    // 
    // node Isosurface[6]: x = 177, y = 239, inputs = 6, label = Isosurface
    // input[3]: defaulting = 0, visible = 1, type = 1, value = 6
    // page group: greyscale
    //
main_Isosurface_6_out_1 = 
    Isosurface(
    main_Receiver_22_out_1,
    main_Isosurface_6_in_2,
    main_Isosurface_6_in_3,
    main_Isosurface_6_in_4,
    main_Isosurface_6_in_5,
    main_Isosurface_6_in_6
    ) [instance: 6, cache: 1];
    // 
    // node AutoColor[5]: x = 164, y = 338, inputs = 10, label = AutoColor
    // page group: greyscale
    //
main_AutoColor_5_out_1,
main_AutoColor_5_out_2 = 
    AutoColor(
    main_Isosurface_6_out_1,
    main_AutoColor_5_in_2,
    main_AutoColor_5_in_3,
    main_AutoColor_5_in_4,
    main_AutoColor_5_in_5,
    main_AutoColor_5_in_6,
    main_AutoColor_5_in_7,
    main_AutoColor_5_in_8,
    main_AutoColor_5_in_9,
    main_AutoColor_5_in_10
    ) [instance: 5, cache: 1];
    // 
    // node Receiver[21]: x = 38, y = 152, inputs = 1, label = temp_plane
    // page group: greyscale
    //
main_Receiver_21_out_1[cache: 0] = temp_plane;
    // 
    // node AutoGrayScale[1]: x = 24, y = 236, inputs = 10, label = AutoGrayScale
    // page group: greyscale
    //
main_AutoGrayScale_1_out_1,
main_AutoGrayScale_1_out_2 = 
    AutoGrayScale(
    main_Receiver_21_out_1,
    main_AutoGrayScale_1_in_2,
    main_AutoGrayScale_1_in_3,
    main_AutoGrayScale_1_in_4,
    main_AutoGrayScale_1_in_5,
    main_AutoGrayScale_1_in_6,
    main_AutoGrayScale_1_in_7,
    main_AutoGrayScale_1_in_8,
    main_AutoGrayScale_1_in_9,
    main_AutoGrayScale_1_in_10
    ) [instance: 1, cache: 1];
    // 
    // node Caption[3]: x = 241, y = 443, inputs = 9, label = Caption
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "red = cloudwater, green = temperature"
    // page group: 2_contours
    //
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 Selector[3]: x = 1, y = 327, inputs = 7, label = Selector
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Selector_3"
    // input[2]: defaulting = 0, visible = 0, type = 32, value = " bands and contours" 
    // input[3]: defaulting = 0, visible = 0, type = 29, value = 6 
    // input[4]: defaulting = 1, visible = 1, type = 16777248, value = { " red, green, blue" " hue, saturation, value" " contours" " rubbersheet and contours" " color and contours" " bands and contours" " grayscale and contours" }
    // input[5]: defaulting = 1, visible = 0, type = 16777245, value = { 1 2 3 4 5 6 7 }
    // input[6]: defaulting = 1, visible = 0, type = 3, value = 0
    // output[1]: visible = 1, type = 29, value = 6 
    // output[2]: visible = 1, type = 32, value = " bands and contours" 
    // page group: Image
    //
    // 
    // node Caption[4]: x = 41, y = 475, inputs = 9, label = Caption
    // input[2]: defaulting = 0, visible = 1, type = 8, value = [.1 .95]
    // page group: Image
    //
main_Caption_4_out_1 = 
    Caption(
    main_Selector_3_out_2,
    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 = 302, y = 450, inputs = 9, label = Caption
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "height = cloudwater, contours = temperature"
    // page group: rubbersheet
    //
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 Caption[6]: x = 15, y = 786, inputs = 9, label = Caption
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "red = cloudwater, green = temperature"
    // page group: color_space
    //
main_Caption_6_out_1 = 
    Caption(
    main_Caption_6_in_1,
    main_Caption_6_in_2,
    main_Caption_6_in_3,
    main_Caption_6_in_4,
    main_Caption_6_in_5,
    main_Caption_6_in_6,
    main_Caption_6_in_7,
    main_Caption_6_in_8,
    main_Caption_6_in_9
    ) [instance: 6, cache: 1];
    // 
    // node Caption[7]: x = 524, y = 735, inputs = 9, label = Caption
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "hue = cloudwater, saturation = temperature"
    // page group: color_space
    //
main_Caption_7_out_1 = 
    Caption(
    main_Caption_7_in_1,
    main_Caption_7_in_2,
    main_Caption_7_in_3,
    main_Caption_7_in_4,
    main_Caption_7_in_5,
    main_Caption_7_in_6,
    main_Caption_7_in_7,
    main_Caption_7_in_8,
    main_Caption_7_in_9
    ) [instance: 7, cache: 1];
    // 
    // node Caption[8]: x = 389, y = 438, inputs = 9, label = Caption
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "contours = cloudwater, colors = temperature"
    // page group: color_cont
    //
main_Caption_8_out_1 = 
    Caption(
    main_Caption_8_in_1,
    main_Caption_8_in_2,
    main_Caption_8_in_3,
    main_Caption_8_in_4,
    main_Caption_8_in_5,
    main_Caption_8_in_6,
    main_Caption_8_in_7,
    main_Caption_8_in_8,
    main_Caption_8_in_9
    ) [instance: 8, cache: 1];
    // 
    // node Caption[9]: x = 166, y = 432, inputs = 9, label = Caption
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "contours = cloudwater, banded colors = temperature"
    // page group: color_cont
    //
main_Caption_9_out_1 = 
    Caption(
    main_Caption_9_in_1,
    main_Caption_9_in_2,
    main_Caption_9_in_3,
    main_Caption_9_in_4,
    main_Caption_9_in_5,
    main_Caption_9_in_6,
    main_Caption_9_in_7,
    main_Caption_9_in_8,
    main_Caption_9_in_9
    ) [instance: 9, cache: 1];
    // 
    // node Caption[12]: x = 186, y = 430, inputs = 9, label = Caption
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "grayscale=temperature,  contour lines = cloudwater"
    // page group: greyscale
    //
main_Caption_12_out_1 = 
    Caption(
    main_Caption_12_in_1,
    main_Caption_12_in_2,
    main_Caption_12_in_3,
    main_Caption_12_in_4,
    main_Caption_12_in_5,
    main_Caption_12_in_6,
    main_Caption_12_in_7,
    main_Caption_12_in_8,
    main_Caption_12_in_9
    ) [instance: 12, cache: 1];
    // 
    // node Receiver[4]: x = 100, y = 178, inputs = 1, label = cloud_plane
    // page group: 2_contours
    //
main_Receiver_4_out_1[cache: 0] = cloud_plane;
    // 
    // node Isosurface[1]: x = 105, y = 269, inputs = 6, label = Isosurface
    // input[3]: defaulting = 0, visible = 1, type = 1, value = 6
    // page group: 2_contours
    //
main_Isosurface_1_out_1 = 
    Isosurface(
    main_Receiver_4_out_1,
    main_Isosurface_1_in_2,
    main_Isosurface_1_in_3,
    main_Isosurface_1_in_4,
    main_Isosurface_1_in_5,
    main_Isosurface_1_in_6
    ) [instance: 1, cache: 1];
    // 
    // node Color[1]: x = 98, y = 355, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "red"
    // page group: 2_contours
    //
main_Color_1_out_1 = 
    Color(
    main_Isosurface_1_out_1,
    main_Color_1_in_2,
    main_Color_1_in_3,
    main_Color_1_in_4,
    main_Color_1_in_5
    ) [instance: 1, cache: 1];
    // 
    // node Receiver[14]: x = 195, y = 182, inputs = 1, label = temp_plane
    // page group: 2_contours
    //
main_Receiver_14_out_1[cache: 0] = temp_plane;
    // 
    // node Isosurface[2]: x = 196, y = 267, inputs = 6, label = Isosurface
    // input[3]: defaulting = 0, visible = 1, type = 1, value = 6
    // page group: 2_contours
    //
main_Isosurface_2_out_1 = 
    Isosurface(
    main_Receiver_14_out_1,
    main_Isosurface_2_in_2,
    main_Isosurface_2_in_3,
    main_Isosurface_2_in_4,
    main_Isosurface_2_in_5,
    main_Isosurface_2_in_6
    ) [instance: 2, cache: 1];
    // 
    // node Color[2]: x = 190, y = 356, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "green"
    // page group: 2_contours
    //
main_Color_2_out_1 = 
    Color(
    main_Isosurface_2_out_1,
    main_Color_2_in_2,
    main_Color_2_in_3,
    main_Color_2_in_4,
    main_Color_2_in_5
    ) [instance: 2, cache: 1];
    // 
    // node Collect[3]: x = 145, y = 486, inputs = 3, label = Collect
    // page group: 2_contours
    //
main_Collect_3_out_1 = 
    Collect(
    main_Color_1_out_1,
    main_Color_2_out_1,
    main_Caption_3_out_1
    ) [instance: 3, cache: 1];
    // 
    // node Receiver[24]: x = 76, y = 162, inputs = 1, label = cloud_plane
    // page group: color_space
    //
main_Receiver_24_out_1[cache: 0] = cloud_plane;
    // 
    // node Statistics[1]: x = 108, y = 371, inputs = 1, label = Statistics
    // page group: color_space
    //
main_Statistics_1_out_1,
main_Statistics_1_out_2,
main_Statistics_1_out_3,
main_Statistics_1_out_4,
main_Statistics_1_out_5 = 
    Statistics(
    main_Receiver_24_out_1
    ) [instance: 1, cache: 1];
    // 
    // node Compute[6]: x = 125, y = 461, inputs = 4, label = Compute
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "($0-$1)/($2-$1)"
    // page group: color_space
    // expression: value = (data-min)/(max-min)
    // name[2]: value = data
    // name[3]: value = min
    // name[4]: value = max
    //
main_Compute_6_out_1 = 
    Compute(
    main_Compute_6_in_1,
    main_Receiver_24_out_1,
    main_Statistics_1_out_4,
    main_Statistics_1_out_5
    ) [instance: 6, cache: 1];
    // 
    // node Receiver[25]: x = 282, y = 156, inputs = 1, label = temp_plane
    // page group: color_space
    //
main_Receiver_25_out_1[cache: 0] = temp_plane;
    // 
    // node Statistics[2]: x = 233, y = 371, inputs = 1, label = Statistics
    // page group: color_space
    //
main_Statistics_2_out_1,
main_Statistics_2_out_2,
main_Statistics_2_out_3,
main_Statistics_2_out_4,
main_Statistics_2_out_5 = 
    Statistics(
    main_Receiver_25_out_1
    ) [instance: 2, cache: 1];
    // 
    // node Compute[7]: x = 244, y = 460, inputs = 4, label = Compute
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "($0-$1)/($2-$1)"
    // page group: color_space
    // expression: value = (data-min)/(max-min)
    // name[2]: value = data
    // name[3]: value = min
    // name[4]: value = max
    //
main_Compute_7_out_1 = 
    Compute(
    main_Compute_7_in_1,
    main_Receiver_25_out_1,
    main_Statistics_2_out_4,
    main_Statistics_2_out_5
    ) [instance: 7, cache: 1];
    // 
    // node Compute[8]: x = 98, y = 559, inputs = 3, label = Compute
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "[$0, $1, 0.0]"
    // page group: color_space
    // expression: value = [norm_cloudwater, norm_temperature, 0.0]
    // name[2]: value = norm_cloudwater
    // name[3]: value = norm_temperature
    //
main_Compute_8_out_1 = 
    Compute(
    main_Compute_8_in_1,
    main_Compute_6_out_1,
    main_Compute_7_out_1
    ) [instance: 8, cache: 1];
    // 
    // node Receiver[2]: x = 158, y = 636, inputs = 1, label = cloud_plane
    // page group: color_space
    //
main_Receiver_2_out_1[cache: 0] = cloud_plane;
    // 
    // node Replace[1]: x = 130, y = 729, inputs = 4, label = Replace
    // input[4]: defaulting = 0, visible = 1, type = 32, value = "colors"
    // page group: color_space
    //
main_Replace_1_out_1 = 
    Replace(
    main_Compute_8_out_1,
    main_Receiver_2_out_1,
    main_Replace_1_in_3,
    main_Replace_1_in_4
    ) [instance: 1, cache: 1];
    // 
    // node Shade[1]: x = 151, y = 807, inputs = 7, label = Shade
    // input[2]: defaulting = 0, visible = 1, type = 3, value = 0
    // page group: color_space
    //
main_Shade_1_out_1 = 
    Shade(
    main_Replace_1_out_1,
    main_Shade_1_in_2,
    main_Shade_1_in_3,
    main_Shade_1_in_4,
    main_Shade_1_in_5,
    main_Shade_1_in_6,
    main_Shade_1_in_7
    ) [instance: 1, cache: 1];
    // 
    // node Collect[6]: x = 88, y = 824, inputs = 2, label = Collect
    // page group: color_space
    //
main_Collect_6_out_1 = 
    Collect(
    main_Caption_6_out_1,
    main_Shade_1_out_1
    ) [instance: 6, cache: 1];
    // 
    // node Transmitter[4]: x = 87, y = 972, inputs = 1, label = rgb_color
    // page group: color_space
    //
rgb_color = main_Collect_6_out_1;
    // 
    // node Receiver[7]: x = 5, y = 136, inputs = 1, label = rgb_color
    // page group: Image
    //
main_Receiver_7_out_1[cache: 0] = rgb_color;
    // 
    // node Compute[13]: x = 306, y = 554, inputs = 3, label = Compute
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "[.66666 - $0, $1, 1.0]"
    // page group: color_space
    // expression: value = [.66666 - hue, saturation, 1.0]
    // name[2]: value = hue
    // name[3]: value = saturation
    //
main_Compute_13_out_1 = 
    Compute(
    main_Compute_13_in_1,
    main_Compute_6_out_1,
    main_Compute_7_out_1
    ) [instance: 13, cache: 1];
    // 
    // node Convert[1]: x = 298, y = 632, inputs = 4, label = Convert
    // page group: color_space
    //
main_Convert_1_out_1 = 
    Convert(
    main_Compute_13_out_1,
    main_Convert_1_in_2,
    main_Convert_1_in_3,
    main_Convert_1_in_4
    ) [instance: 1, cache: 1];
    // 
    // node Receiver[3]: x = 414, y = 629, inputs = 1, label = cloud_plane
    // page group: color_space
    //
main_Receiver_3_out_1[cache: 0] = cloud_plane;
    // 
    // node Replace[3]: x = 276, y = 721, inputs = 4, label = Replace
    // page group: color_space
    //
main_Replace_3_out_1 = 
    Replace(
    main_Convert_1_out_1,
    main_Receiver_3_out_1,
    main_Replace_3_in_3,
    main_Replace_3_in_4
    ) [instance: 3, cache: 1];
    // 
    // node Rename[1]: x = 389, y = 737, inputs = 3, label = Rename
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "data"
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "colors"
    // page group: color_space
    //
main_Rename_1_out_1 = 
    Rename(
    main_Replace_3_out_1,
    main_Rename_1_in_2,
    main_Rename_1_in_3
    ) [instance: 1, cache: 1];
    // 
    // node Shade[2]: x = 386, y = 826, inputs = 7, label = Shade
    // input[2]: defaulting = 0, visible = 1, type = 3, value = 0
    // page group: color_space
    //
main_Shade_2_out_1 = 
    Shade(
    main_Rename_1_out_1,
    main_Shade_2_in_2,
    main_Shade_2_in_3,
    main_Shade_2_in_4,
    main_Shade_2_in_5,
    main_Shade_2_in_6,
    main_Shade_2_in_7
    ) [instance: 2, cache: 1];
    // 
    // node Collect[7]: x = 490, y = 864, inputs = 2, label = Collect
    // page group: color_space
    //
main_Collect_7_out_1 = 
    Collect(
    main_Shade_2_out_1,
    main_Caption_7_out_1
    ) [instance: 7, cache: 1];
    // 
    // node Transmitter[5]: x = 500, y = 971, inputs = 1, label = hsv_color
    // page group: color_space
    //
hsv_color = main_Collect_7_out_1;
    // 
    // node Receiver[8]: x = 90, y = 133, inputs = 1, label = hsv_color
    // page group: Image
    //
main_Receiver_8_out_1[cache: 0] = hsv_color;
    // 
    // node Transmitter[8]: x = 146, y = 564, inputs = 1, label = two_contours
    // page group: 2_contours
    //
two_contours = main_Collect_3_out_1;
    // 
    // node Receiver[12]: x = 177, y = 134, inputs = 1, label = two_contours
    // page group: Image
    //
main_Receiver_12_out_1[cache: 0] = two_contours;
    // 
    // node Receiver[6]: x = 54, y = 141, inputs = 1, label = temp_plane
    // page group: rubbersheet
    //
main_Receiver_6_out_1[cache: 0] = temp_plane;
    // 
    // node Receiver[5]: x = 151, y = 135, inputs = 1, label = cloud_plane
    // page group: rubbersheet
    //
main_Receiver_5_out_1[cache: 0] = cloud_plane;
    // 
    // node RubberSheet[1]: x = 171, y = 216, inputs = 4, label = RubberSheet
    // page group: rubbersheet
    //
main_RubberSheet_1_out_1 = 
    RubberSheet(
    main_Receiver_5_out_1,
    main_RubberSheet_1_in_2,
    main_RubberSheet_1_in_3,
    main_RubberSheet_1_in_4
    ) [instance: 1, cache: 1];
    // 
    // node Replace[2]: x = 81, y = 298, inputs = 4, label = Replace
    // page group: rubbersheet
    //
main_Replace_2_out_1 = 
    Replace(
    main_Receiver_6_out_1,
    main_RubberSheet_1_out_1,
    main_Replace_2_in_3,
    main_Replace_2_in_4
    ) [instance: 2, cache: 1];
    // 
    // node Isosurface[3]: x = 168, y = 377, inputs = 6, label = Isosurface
    // input[3]: defaulting = 0, visible = 1, type = 1, value = 6
    // page group: rubbersheet
    //
main_Isosurface_3_out_1 = 
    Isosurface(
    main_Replace_2_out_1,
    main_Isosurface_3_in_2,
    main_Isosurface_3_in_3,
    main_Isosurface_3_in_4,
    main_Isosurface_3_in_5,
    main_Isosurface_3_in_6
    ) [instance: 3, cache: 1];
    // 
    // node Color[3]: x = 126, y = 454, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "black"
    // page group: rubbersheet
    //
main_Color_3_out_1 = 
    Color(
    main_Isosurface_3_out_1,
    main_Color_3_in_2,
    main_Color_3_in_3,
    main_Color_3_in_4,
    main_Color_3_in_5
    ) [instance: 3, cache: 1];
    // 
    // node Collect[5]: x = 194, y = 549, inputs = 3, label = Collect
    // page group: rubbersheet
    //
main_Collect_5_out_1 = 
    Collect(
    main_Color_3_out_1,
    main_RubberSheet_1_out_1,
    main_Caption_5_out_1
    ) [instance: 5, cache: 1];
    // 
    // node Transmitter[9]: x = 166, y = 672, inputs = 1, label = rubbersheet_contour
    // page group: rubbersheet
    //
rubbersheet_contour = main_Collect_5_out_1;
    // 
    // node Receiver[13]: x = 281, y = 134, inputs = 1, label = rubbersheet_contour
    // page group: Image
    //
main_Receiver_13_out_1[cache: 0] = rubbersheet_contour;
    // 
    // node Receiver[16]: x = 182, y = 134, inputs = 1, label = cloud_plane
    // page group: color_cont
    //
main_Receiver_16_out_1[cache: 0] = cloud_plane;
    // 
    // node Isosurface[4]: x = 284, y = 246, inputs = 6, label = Isosurface
    // input[3]: defaulting = 0, visible = 1, type = 1, value = 6
    // page group: color_cont
    //
main_Isosurface_4_out_1 = 
    Isosurface(
    main_Receiver_16_out_1,
    main_Isosurface_4_in_2,
    main_Isosurface_4_in_3,
    main_Isosurface_4_in_4,
    main_Isosurface_4_in_5,
    main_Isosurface_4_in_6
    ) [instance: 4, cache: 1];
    // 
    // node Color[4]: x = 291, y = 325, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "black"
    // page group: color_cont
    //
main_Color_4_out_1 = 
    Color(
    main_Isosurface_4_out_1,
    main_Color_4_in_2,
    main_Color_4_in_3,
    main_Color_4_in_4,
    main_Color_4_in_5
    ) [instance: 4, cache: 1];
    // 
    // node Collect[8]: x = 297, y = 443, inputs = 3, label = Collect
    // page group: color_cont
    //
main_Collect_8_out_1 = 
    Collect(
    main_AutoColor_3_out_1,
    main_Color_4_out_1,
    main_Caption_8_out_1
    ) [instance: 8, cache: 1];
    // 
    // node Transmitter[10]: x = 378, y = 564, inputs = 1, label = color_and_contours
    // page group: color_cont
    //
color_and_contours = main_Collect_8_out_1;
    // 
    // node Receiver[17]: x = 469, y = 237, inputs = 1, label = color_and_contours
    // page group: Image
    //
main_Receiver_17_out_1[cache: 0] = color_and_contours;
    // 
    // node Collect[9]: x = 80, y = 436, inputs = 3, label = Collect
    // page group: color_cont
    //
main_Collect_9_out_1 = 
    Collect(
    main_AutoColor_4_out_1,
    main_Color_4_out_1,
    main_Caption_9_out_1
    ) [instance: 9, cache: 1];
    // 
    // node Shade[3]: x = 126, y = 514, inputs = 7, label = Shade
    // input[2]: defaulting = 0, visible = 1, type = 3, value = 0
    // page group: color_cont
    //
main_Shade_3_out_1 = 
    Shade(
    main_Collect_9_out_1,
    main_Shade_3_in_2,
    main_Shade_3_in_3,
    main_Shade_3_in_4,
    main_Shade_3_in_5,
    main_Shade_3_in_6,
    main_Shade_3_in_7
    ) [instance: 3, cache: 1];
    // 
    // node Transmitter[11]: x = 218, y = 564, inputs = 1, label = bands_and_contours
    // page group: color_cont
    //
bands_and_contours = main_Shade_3_out_1;
    // 
    // node Receiver[18]: x = 487, y = 321, inputs = 1, label = bands_and_contours
    // page group: Image
    //
main_Receiver_18_out_1[cache: 0] = bands_and_contours;
    // 
    // node Collect[12]: x = 79, y = 442, inputs = 3, label = Collect
    // page group: greyscale
    //
main_Collect_12_out_1 = 
    Collect(
    main_AutoGrayScale_1_out_1,
    main_AutoColor_5_out_1,
    main_Caption_12_out_1
    ) [instance: 12, cache: 1];
    // 
    // node Transmitter[14]: x = 75, y = 554, inputs = 1, label = grayscale_contours
    // page group: greyscale
    //
grayscale_contours = main_Collect_12_out_1;
    // 
    // node Receiver[23]: x = 499, y = 409, inputs = 1, label = grayscale_contours
    // page group: Image
    //
main_Receiver_23_out_1[cache: 0] = grayscale_contours;
    // 
    // node Switch[3]: x = 189, y = 420, inputs = 8, label = Switch
    // page group: Image
    //
main_Switch_3_out_1 = 
    Switch(
    main_Selector_3_out_1,
    main_Receiver_7_out_1,
    main_Receiver_8_out_1,
    main_Receiver_12_out_1,
    main_Receiver_13_out_1,
    main_Receiver_17_out_1,
    main_Receiver_18_out_1,
    main_Receiver_23_out_1
    ) [instance: 3, cache: 1];
    // 
    // node Collect[4]: x = 154, y = 529, inputs = 2, label = Collect
    // page group: Image
    //
main_Collect_4_out_1 = 
    Collect(
    main_Caption_4_out_1,
    main_Switch_3_out_1
    ) [instance: 4, cache: 1];
    // 
    // node Image[4]: x = 252, y = 554, inputs = 48, label = Image
    // input[1]: defaulting = 0, visible = 0, type = 67108863, value = "Image_4"
    // 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 = [50000 7750 281291]
    // input[7]: defaulting = 0, visible = 0, type = 5, value = 108536.0
    // input[8]: defaulting = 0, visible = 0, type = 1, value = 619
    // input[9]: defaulting = 0, visible = 0, type = 5, value = 0.461
    // input[10]: defaulting = 0, visible = 0, type = 8, value = [0 1 0]
    // input[11]: defaulting = 1, visible = 0, type = 5, value = 24.0934
    // 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: Image
    // depth: value = 24
    // window: position = (0.4539,0.4209), size = 0.4945x0.3213
    // internal caching: 1
    //
main_Image_4_out_1,
main_Image_4_out_2,
main_Image_4_out_3 = 
    Image(
    main_Image_4_in_1,
    main_Collect_4_out_1,
    main_Image_4_in_3,
    main_Image_4_in_4,
    main_Image_4_in_5,
    main_Image_4_in_6,
    main_Image_4_in_7,
    main_Image_4_in_8,
    main_Image_4_in_9,
    main_Image_4_in_10,
    main_Image_4_in_11,
    main_Image_4_in_12,
    main_Image_4_in_13,
    main_Image_4_in_14,
    main_Image_4_in_15,
    main_Image_4_in_16,
    main_Image_4_in_17,
    main_Image_4_in_18,
    main_Image_4_in_19,
    main_Image_4_in_20,
    main_Image_4_in_21,
    main_Image_4_in_22,
    main_Image_4_in_23,
    main_Image_4_in_24,
    main_Image_4_in_25,
    main_Image_4_in_26,
    main_Image_4_in_27,
    main_Image_4_in_28,
    main_Image_4_in_29,
    main_Image_4_in_30,
    main_Image_4_in_31,
    main_Image_4_in_32,
    main_Image_4_in_33,
    main_Image_4_in_34,
    main_Image_4_in_35,
    main_Image_4_in_36,
    main_Image_4_in_37,
    main_Image_4_in_38,
    main_Image_4_in_39,
    main_Image_4_in_40,
    main_Image_4_in_41,
    main_Image_4_in_42,
    main_Image_4_in_43,
    main_Image_4_in_44,
    main_Image_4_in_45,
    main_Image_4_in_46,
    main_Image_4_in_47,
    main_Image_4_in_48
    ) [instance: 4, cache: 1];
    //
    // decorator Annotate	pos=(66,34) size=450x68 style(Label), value = <NULL>
    // annotation user_begin: 218
    // annotation user: This page of the visual program switches between the various realization
    // annotation user: options and creates the image.
    // annotation user: Each of the various receivers (for example rgb_color), receives an object
    // annotation user: from another page of the visual program.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: Image
    //
    // decorator Annotate	pos=(60,19) size=451x54 style(Label), value = <NULL>
    // annotation user_begin: 215
    // annotation user: This page performs one of the realization options: to map the data values 
    // annotation user: into either rgb colorspace or hsv colorspace. These results are sent 
    // annotation user: back to the Image page using the transmitters rgb_color and hsv_color.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: color_space
    //
    // decorator Annotate	pos=(53,63) size=387x40 style(Label), value = <NULL>
    // annotation user_begin: 123
    // annotation user: This page creates a realization of two contour lines and passes
    // annotation user: it back to the Image page via the two_contours transmitter.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: 2_contours
    //
    // decorator Annotate	pos=(61,39) size=384x54 style(Label), value = <NULL>
    // annotation user_begin: 155
    // annotation user: This page creates a visualization of a rubbersheet along with a
    // annotation user: contour line and passes it back to the Image page via the 
    // annotation user: rubbersheet_contour transmitter.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: rubbersheet
    //
    // decorator Annotate	pos=(63,37) size=401x54 style(Label), value = <NULL>
    // annotation user_begin: 192
    // annotation user: This page creates two different visualizations: a banded surface 
    // annotation user: with contour lines and a colored surface with contour lines. Each 
    // annotation user: of these is passed back to the Image page via transmitters.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: color_cont
    //
    // decorator Annotate	pos=(61,48) size=376x54 style(Label), value = <NULL>
    // annotation user_begin: 146
    // annotation user: This page creates a visualization using a grayscale colormap 
    // annotation user: along with contour lines, and passes it back to the Image 
    // annotation user: page using a transmitter.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: greyscale
    //
    // decorator Annotate	pos=(28,55) size=579x76 style(Label), value = <NULL>
    // annotation user_begin: 266
    // annotation user: This page imports the two data sets, runs MapToPlane on the cloudwater data and
    // annotation user: sends the result to other pages via the transmitter cloud_plane. It also maps the
    // annotation user: temperature data onto the same plane and sends the result to other pages via the
    // annotation user: transmitter temp_plane.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: import
// network: end of macro body
CacheScene("Image_4", main_Image_4_out_1, main_Image_4_out_2);
}
main_Import_2_in_1 = "cloudwater";
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_MapToPlane_2_in_2 = NULL;
main_MapToPlane_2_in_3 = NULL;
main_MapToPlane_2_out_1 = NULL;
main_Import_3_in_1 = "temperature";
main_Import_3_in_2 = NULL;
main_Import_3_in_3 = NULL;
main_Import_3_in_4 = NULL;
main_Import_3_in_5 = NULL;
main_Import_3_in_6 = NULL;
main_Import_3_out_1 = NULL;
main_Map_3_in_3 = NULL;
main_Map_3_in_4 = NULL;
main_Map_3_out_1 = NULL;
main_Transmitter_3_out_1 = NULL;
main_Receiver_15_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_7 = 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_Band_1_in_2 = NULL;
main_Band_1_in_3 = 6;
main_Band_1_in_4 = NULL;
main_Band_1_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_7 = 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_Transmitter_2_out_1 = NULL;
main_Receiver_22_out_1 = NULL;
main_Isosurface_6_in_2 = NULL;
main_Isosurface_6_in_3 = 6;
main_Isosurface_6_in_4 = NULL;
main_Isosurface_6_in_5 = NULL;
main_Isosurface_6_in_6 = NULL;
main_Isosurface_6_out_1 = NULL;
main_AutoColor_5_in_2 = NULL;
main_AutoColor_5_in_3 = NULL;
main_AutoColor_5_in_4 = NULL;
main_AutoColor_5_in_5 = NULL;
main_AutoColor_5_in_6 = NULL;
main_AutoColor_5_in_7 = NULL;
main_AutoColor_5_in_8 = NULL;
main_AutoColor_5_in_9 = NULL;
main_AutoColor_5_in_10 = NULL;
main_AutoColor_5_out_1 = NULL;
main_Receiver_21_out_1 = NULL;
main_AutoGrayScale_1_in_2 = NULL;
main_AutoGrayScale_1_in_3 = NULL;
main_AutoGrayScale_1_in_4 = NULL;
main_AutoGrayScale_1_in_5 = NULL;
main_AutoGrayScale_1_in_6 = NULL;
main_AutoGrayScale_1_in_7 = NULL;
main_AutoGrayScale_1_in_8 = NULL;
main_AutoGrayScale_1_in_9 = NULL;
main_AutoGrayScale_1_in_10 = NULL;
main_AutoGrayScale_1_out_1 = NULL;
main_Caption_3_in_1 = "red = cloudwater, green = temperature";
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_Selector_3_in_1 = "Selector_3";
main_Selector_3_in_2 = " bands and contours" ;
main_Selector_3_in_3 = 6 ;
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 = 6 ;
main_Selector_3_out_2 = " bands and contours" ;
main_Caption_4_in_2 = [.1 .95];
main_Caption_4_in_3 = NULL;
main_Caption_4_in_4 = NULL;
main_Caption_4_in_5 = NULL;
main_Caption_4_in_6 = NULL;
main_Caption_4_in_7 = NULL;
main_Caption_4_in_8 = NULL;
main_Caption_4_in_9 = NULL;
main_Caption_4_out_1 = NULL;
main_Caption_5_in_1 = "height = cloudwater, contours = temperature";
main_Caption_5_in_2 = NULL;
main_Caption_5_in_3 = NULL;
main_Caption_5_in_4 = NULL;
main_Caption_5_in_5 = NULL;
main_Caption_5_in_6 = NULL;
main_Caption_5_in_7 = NULL;
main_Caption_5_in_8 = NULL;
main_Caption_5_in_9 = NULL;
main_Caption_5_out_1 = NULL;
main_Caption_6_in_1 = "red = cloudwater, green = temperature";
main_Caption_6_in_2 = NULL;
main_Caption_6_in_3 = NULL;
main_Caption_6_in_4 = NULL;
main_Caption_6_in_5 = NULL;
main_Caption_6_in_6 = NULL;
main_Caption_6_in_7 = NULL;
main_Caption_6_in_8 = NULL;
main_Caption_6_in_9 = NULL;
main_Caption_6_out_1 = NULL;
main_Caption_7_in_1 = "hue = cloudwater, saturation = temperature";
main_Caption_7_in_2 = NULL;
main_Caption_7_in_3 = NULL;
main_Caption_7_in_4 = NULL;
main_Caption_7_in_5 = NULL;
main_Caption_7_in_6 = NULL;
main_Caption_7_in_7 = NULL;
main_Caption_7_in_8 = NULL;
main_Caption_7_in_9 = NULL;
main_Caption_7_out_1 = NULL;
main_Caption_8_in_1 = "contours = cloudwater, colors = temperature";
main_Caption_8_in_2 = NULL;
main_Caption_8_in_3 = NULL;
main_Caption_8_in_4 = NULL;
main_Caption_8_in_5 = NULL;
main_Caption_8_in_6 = NULL;
main_Caption_8_in_7 = NULL;
main_Caption_8_in_8 = NULL;
main_Caption_8_in_9 = NULL;
main_Caption_8_out_1 = NULL;
main_Caption_9_in_1 = "contours = cloudwater, banded colors = temperature";
main_Caption_9_in_2 = NULL;
main_Caption_9_in_3 = NULL;
main_Caption_9_in_4 = NULL;
main_Caption_9_in_5 = NULL;
main_Caption_9_in_6 = NULL;
main_Caption_9_in_7 = NULL;
main_Caption_9_in_8 = NULL;
main_Caption_9_in_9 = NULL;
main_Caption_9_out_1 = NULL;
main_Caption_12_in_1 = "grayscale=temperature,  contour lines = cloudwater";
main_Caption_12_in_2 = NULL;
main_Caption_12_in_3 = NULL;
main_Caption_12_in_4 = NULL;
main_Caption_12_in_5 = NULL;
main_Caption_12_in_6 = NULL;
main_Caption_12_in_7 = NULL;
main_Caption_12_in_8 = NULL;
main_Caption_12_in_9 = NULL;
main_Caption_12_out_1 = NULL;
main_Receiver_4_out_1 = NULL;
main_Isosurface_1_in_2 = NULL;
main_Isosurface_1_in_3 = 6;
main_Isosurface_1_in_4 = NULL;
main_Isosurface_1_in_5 = NULL;
main_Isosurface_1_in_6 = NULL;
main_Isosurface_1_out_1 = NULL;
main_Color_1_in_2 = "red";
main_Color_1_in_3 = NULL;
main_Color_1_in_4 = NULL;
main_Color_1_in_5 = NULL;
main_Color_1_out_1 = NULL;
main_Receiver_14_out_1 = NULL;
main_Isosurface_2_in_2 = NULL;
main_Isosurface_2_in_3 = 6;
main_Isosurface_2_in_4 = NULL;
main_Isosurface_2_in_5 = NULL;
main_Isosurface_2_in_6 = NULL;
main_Isosurface_2_out_1 = NULL;
main_Color_2_in_2 = "green";
main_Color_2_in_3 = NULL;
main_Color_2_in_4 = NULL;
main_Color_2_in_5 = NULL;
main_Color_2_out_1 = NULL;
main_Collect_3_out_1 = NULL;
main_Receiver_24_out_1 = NULL;
main_Statistics_1_out_4 = NULL;
main_Statistics_1_out_5 = NULL;
main_Compute_6_in_1 = "($0-$1)/($2-$1)";
main_Compute_6_out_1 = NULL;
main_Receiver_25_out_1 = NULL;
main_Statistics_2_out_4 = NULL;
main_Statistics_2_out_5 = NULL;
main_Compute_7_in_1 = "($0-$1)/($2-$1)";
main_Compute_7_out_1 = NULL;
main_Compute_8_in_1 = "[$0, $1, 0.0]";
main_Compute_8_out_1 = NULL;
main_Receiver_2_out_1 = NULL;
main_Replace_1_in_3 = NULL;
main_Replace_1_in_4 = "colors";
main_Replace_1_out_1 = NULL;
main_Shade_1_in_2 = 0;
main_Shade_1_in_3 = NULL;
main_Shade_1_in_4 = NULL;
main_Shade_1_in_5 = NULL;
main_Shade_1_in_6 = NULL;
main_Shade_1_in_7 = NULL;
main_Shade_1_out_1 = NULL;
main_Collect_6_out_1 = NULL;
main_Transmitter_4_out_1 = NULL;
main_Receiver_7_out_1 = NULL;
main_Compute_13_in_1 = "[.66666 - $0, $1, 1.0]";
main_Compute_13_out_1 = NULL;
main_Convert_1_in_2 = NULL;
main_Convert_1_in_3 = NULL;
main_Convert_1_in_4 = NULL;
main_Convert_1_out_1 = NULL;
main_Receiver_3_out_1 = NULL;
main_Replace_3_in_3 = NULL;
main_Replace_3_in_4 = NULL;
main_Replace_3_out_1 = NULL;
main_Rename_1_in_2 = "data";
main_Rename_1_in_3 = "colors";
main_Rename_1_out_1 = NULL;
main_Shade_2_in_2 = 0;
main_Shade_2_in_3 = NULL;
main_Shade_2_in_4 = NULL;
main_Shade_2_in_5 = NULL;
main_Shade_2_in_6 = NULL;
main_Shade_2_in_7 = NULL;
main_Shade_2_out_1 = NULL;
main_Collect_7_out_1 = NULL;
main_Transmitter_5_out_1 = NULL;
main_Receiver_8_out_1 = NULL;
main_Transmitter_8_out_1 = NULL;
main_Receiver_12_out_1 = NULL;
main_Receiver_6_out_1 = NULL;
main_Receiver_5_out_1 = NULL;
main_RubberSheet_1_in_2 = NULL;
main_RubberSheet_1_in_3 = NULL;
main_RubberSheet_1_in_4 = NULL;
main_RubberSheet_1_out_1 = NULL;
main_Replace_2_in_3 = NULL;
main_Replace_2_in_4 = NULL;
main_Replace_2_out_1 = NULL;
main_Isosurface_3_in_2 = NULL;
main_Isosurface_3_in_3 = 6;
main_Isosurface_3_in_4 = NULL;
main_Isosurface_3_in_5 = NULL;
main_Isosurface_3_in_6 = NULL;
main_Isosurface_3_out_1 = NULL;
main_Color_3_in_2 = "black";
main_Color_3_in_3 = NULL;
main_Color_3_in_4 = NULL;
main_Color_3_in_5 = NULL;
main_Color_3_out_1 = NULL;
main_Collect_5_out_1 = NULL;
main_Transmitter_9_out_1 = NULL;
main_Receiver_13_out_1 = NULL;
main_Receiver_16_out_1 = NULL;
main_Isosurface_4_in_2 = NULL;
main_Isosurface_4_in_3 = 6;
main_Isosurface_4_in_4 = NULL;
main_Isosurface_4_in_5 = NULL;
main_Isosurface_4_in_6 = NULL;
main_Isosurface_4_out_1 = NULL;
main_Color_4_in_2 = "black";
main_Color_4_in_3 = NULL;
main_Color_4_in_4 = NULL;
main_Color_4_in_5 = NULL;
main_Color_4_out_1 = NULL;
main_Collect_8_out_1 = NULL;
main_Transmitter_10_out_1 = NULL;
main_Receiver_17_out_1 = NULL;
main_Collect_9_out_1 = NULL;
main_Shade_3_in_2 = 0;
main_Shade_3_in_3 = NULL;
main_Shade_3_in_4 = NULL;
main_Shade_3_in_5 = NULL;
main_Shade_3_in_6 = NULL;
main_Shade_3_in_7 = NULL;
main_Shade_3_out_1 = NULL;
main_Transmitter_11_out_1 = NULL;
main_Receiver_18_out_1 = NULL;
main_Collect_12_out_1 = NULL;
main_Transmitter_14_out_1 = NULL;
main_Receiver_23_out_1 = NULL;
main_Switch_3_out_1 = NULL;
main_Collect_4_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_4_in_1 = "Image_4";
main_Image_4_in_3 = "X24,,";
main_Image_4_in_4 = 1;
main_Image_4_in_5 = [50000 7750 27000];
main_Image_4_in_6 = [50000 7750 281291];
main_Image_4_in_7 = 108536.0;
main_Image_4_in_8 = 619;
main_Image_4_in_9 = 0.461;
main_Image_4_in_10 = [0 1 0];
main_Image_4_in_11 = NULL;
main_Image_4_in_12 = 0;
main_Image_4_in_13 = NULL;
main_Image_4_in_14 = 1;
main_Image_4_in_15 = NULL;
main_Image_4_in_16 = NULL;
main_Image_4_in_17 = NULL;
main_Image_4_in_18 = NULL;
main_Image_4_in_19 = 0;
main_Image_4_in_20 = NULL;
main_Image_4_in_21 = NULL;
main_Image_4_in_22 = NULL;
main_Image_4_in_23 = NULL;
main_Image_4_in_25 = NULL;
main_Image_4_in_26 = NULL;
main_Image_4_in_27 = NULL;
main_Image_4_in_28 = NULL;
main_Image_4_in_29 = NULL;
main_Image_4_in_30 = NULL;
main_Image_4_in_31 = NULL;
main_Image_4_in_32 = NULL;
main_Image_4_in_33 = NULL;
main_Image_4_in_34 = NULL;
main_Image_4_in_35 = NULL;
main_Image_4_in_36 = NULL;
main_Image_4_in_37 = NULL;
main_Image_4_in_38 = NULL;
main_Image_4_in_39 = NULL;
main_Image_4_in_40 = NULL;
main_Image_4_in_41 = NULL;
main_Image_4_in_42 = NULL;
main_Image_4_in_43 = NULL;
main_Image_4_in_44 = NULL;
main_Image_4_in_45 = NULL;
main_Image_4_in_46 = NULL;
main_Image_4_in_47 = NULL;
main_Image_4_in_48 = NULL;
Executive("product version 3 1 4");
$sync
main();
