//
// time: Wed Apr  9 15:39:40 1997
//
// version: 3.1.1 (format), 3.1.4 (DX Beta)
//
//
// MODULE main
// CATEGORY Macros
//
// comment: This visual program illustrates the interoperability of the Data Explorer modules. This program uses data from a simulation of a severe storm. The data is courtesy of the NCSA, University of Illinois at Urbana-Champaign.  This particular program uses three of the simulated variables: cloudwater, temperature, and wind.  An isosurface is created of the cloudwater. A Switch module allows you to choose whether to map temperature or wind onto the isosurface, while another Switch module allows you to choose whether or not to show glyphs representing the data values on the isosurface. The surface is then colored and displayed.  Notice that the Map, AutoColor, and AutoGlyph modules work with both scalar or vector data, without any modification to the visual program. Map will map any sort of data onto the isosurface. AutoColor, when receiving vector data, bases the colors on the magnitude of the vectors. AutoGlyph draws either spheres to represent scalar data, or arrows to represent vector data.  Each of these modules are able to modify their behavior based on their input because of the underlying data model in which the data are self-describing.
// page assignment: colored_iso	order=4, windowed=0, showing=0
// page assignment: data_to_map	order=3, windowed=0, showing=0
// page assignment: glyphs	order=5, windowed=0, showing=0
// page assignment: image	order=6, windowed=0, showing=0
// page assignment: iso	order=2, windowed=0, showing=1
// workspace: width = 271, height = 459
// layout: snap = 0, width = 50, height = 50, align = CC
//
macro main(
) -> (
) {
    // 
    // node Import[1]: x = 30, y = 119, inputs = 6, label = Import
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "cloudwater"
    // page group: iso
    //
main_Import_1_out_1 = 
    Import(
    main_Import_1_in_1,
    main_Import_1_in_2,
    main_Import_1_in_3,
    main_Import_1_in_4,
    main_Import_1_in_5,
    main_Import_1_in_6
    ) [instance: 1, cache: 1];
    // 
    // node Scalar[2]: x = 118, y = 118, inputs = 11, label = Scalar
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Scalar_2"
    // input[3]: defaulting = 0, visible = 0, type = 5, value = 0.140000
    // input[4]: defaulting = 1, visible = 0, type = 3, value = 0
    // input[5]: defaulting = 1, visible = 0, type = 5, value = 0.1
    // input[6]: defaulting = 1, visible = 0, type = 5, value = 2.0
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.00000
    // input[8]: defaulting = 1, visible = 0, type = 32, value = "2"
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 2
    // output[1]: visible = 1, type = 5, value = 0.140000
    // page group: iso
    //
    // 
    // node Isosurface[2]: x = 74, y = 266, inputs = 6, label = Isosurface
    // page group: iso
    //
main_Isosurface_2_out_1 = 
    Isosurface(
    main_Import_1_out_1,
    main_Scalar_2_out_1,
    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 Transmitter[26]: x = 110, y = 397, inputs = 1, label = iso
    // page group: iso
    //
iso = main_Isosurface_2_out_1;
    // 
    // node Receiver[37]: x = 61, y = 112, inputs = 1, label = iso
    // page group: colored_iso
    //
main_Receiver_37_out_1[cache: 0] = iso;
    // 
    // node Selector[1]: x = 48, y = 167, inputs = 7, label = Selector
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Selector_1"
    // input[2]: defaulting = 0, visible = 0, type = 32, value = "mapped wind" 
    // input[3]: defaulting = 0, visible = 0, type = 29, value = 2 
    // input[4]: defaulting = 1, visible = 1, type = 16777248, value = { "mapped temperature" "mapped wind" }
    // 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 = 2 
    // output[2]: visible = 1, type = 32, value = "mapped wind" 
    // page group: data_to_map
    //
    // 
    // node Import[2]: x = 139, y = 153, inputs = 6, label = Import
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "temperature"
    // page group: data_to_map
    //
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 Import[3]: x = 229, y = 155, inputs = 6, label = Import
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "wind"
    // page group: data_to_map
    //
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 Switch[1]: x = 158, y = 343, inputs = 3, label = Switch
    // page group: data_to_map
    //
main_Switch_1_out_1 = 
    Switch(
    main_Selector_1_out_1,
    main_Import_2_out_1,
    main_Import_3_out_1
    ) [instance: 1, cache: 1];
    // 
    // node Transmitter[27]: x = 176, y = 453, inputs = 1, label = data_to_map
    // page group: data_to_map
    //
data_to_map = main_Switch_1_out_1;
    // 
    // node Receiver[38]: x = 150, y = 110, inputs = 1, label = data_to_map
    // page group: colored_iso
    //
main_Receiver_38_out_1[cache: 0] = data_to_map;
    // 
    // node Map[1]: x = 93, y = 192, inputs = 4, label = Map
    // page group: colored_iso
    //
main_Map_1_out_1 = 
    Map(
    main_Receiver_37_out_1,
    main_Receiver_38_out_1,
    main_Map_1_in_3,
    main_Map_1_in_4
    ) [instance: 1, cache: 1];
    // 
    // node AutoColor[1]: x = 100, y = 276, inputs = 10, label = AutoColor
    // page group: colored_iso
    //
main_AutoColor_1_out_1,
main_AutoColor_1_out_2 = 
    AutoColor(
    main_Map_1_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_Receiver_38_out_1,
    main_AutoColor_1_in_8,
    main_AutoColor_1_in_9,
    main_AutoColor_1_in_10
    ) [instance: 1, cache: 1];
    // 
    // node Transmitter[28]: x = 92, y = 389, inputs = 1, label = colored_iso
    // page group: colored_iso
    //
colored_iso = main_AutoColor_1_out_1;
    // 
    // node Receiver[42]: x = 21, y = 154, inputs = 1, label = colored_iso
    // page group: glyphs
    //
main_Receiver_42_out_1[cache: 0] = colored_iso;
    // 
    // node Sample[1]: x = 50, y = 265, inputs = 2, label = Sample
    // input[2]: defaulting = 0, visible = 1, type = 1, value = 150
    // page group: glyphs
    //
main_Sample_1_out_1 = 
    Sample(
    main_Receiver_42_out_1,
    main_Sample_1_in_2
    ) [instance: 1, cache: 1];
    // 
    // node AutoGlyph[1]: x = 55, y = 385, inputs = 7, label = AutoGlyph
    // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.400000
    // input[4]: defaulting = 0, visible = 1, type = 5, value = 0.500000
    // page group: glyphs
    //
main_AutoGlyph_1_out_1 = 
    AutoGlyph(
    main_Sample_1_out_1,
    main_AutoGlyph_1_in_2,
    main_AutoGlyph_1_in_3,
    main_AutoGlyph_1_in_4,
    main_AutoGlyph_1_in_5,
    main_AutoGlyph_1_in_6,
    main_AutoGlyph_1_in_7
    ) [instance: 1, cache: 1];
    // 
    // node Transmitter[1]: x = 48, y = 262, inputs = 1, label = caption
    // page group: data_to_map
    //
caption = main_Selector_1_out_2;
    // 
    // node Receiver[1]: x = 32, y = 54, inputs = 1, label = caption
    // page group: image
    //
main_Receiver_1_out_1[cache: 0] = caption;
    // 
    // node List[1]: x = 46, y = 146, inputs = 2, label = List
    // input[2]: defaulting = 0, visible = 1, type = 16777248, value = {"data courtesy of NCSA, University of Illinois at Urbana-Champaign"}
    // page group: image
    //
main_List_1_out_1 = 
    List(
    main_Receiver_1_out_1,
    main_List_1_in_2
    ) [instance: 1, cache: 1];
    // 
    // node Caption[1]: x = 66, y = 272, inputs = 9, label = Caption
    // input[2]: defaulting = 0, visible = 1, type = 8, value = [0.5, 0.02]
    // page group: image
    //
main_Caption_1_out_1 = 
    Caption(
    main_List_1_out_1,
    main_Caption_1_in_2,
    main_Caption_1_in_3,
    main_Caption_1_in_4,
    main_Caption_1_in_5,
    main_Caption_1_in_6,
    main_Caption_1_in_7,
    main_Caption_1_in_8,
    main_Caption_1_in_9
    ) [instance: 1, cache: 1];
    // 
    // node Receiver[40]: x = 121, y = 51, inputs = 1, label = colored_iso
    // page group: image
    //
main_Receiver_40_out_1[cache: 0] = colored_iso;
    // 
    // node Selector[2]: x = 198, y = 148, inputs = 7, label = Selector
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Selector_2"
    // input[2]: defaulting = 0, visible = 0, type = 32, value = "do not show glyphs" 
    // input[3]: defaulting = 0, visible = 0, type = 29, value = 0 
    // input[4]: defaulting = 1, visible = 1, type = 16777248, value = { "show glyphs" "do not show glyphs" }
    // 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 = 0 
    // output[2]: visible = 1, type = 32, value = "do not show glyphs" 
    // page group: image
    //
    // 
    // node Transmitter[29]: x = 100, y = 462, inputs = 1, label = glyphs
    // page group: glyphs
    //
glyphs = main_AutoGlyph_1_out_1;
    // 
    // node Receiver[41]: x = 266, y = 57, inputs = 1, label = glyphs
    // page group: image
    //
main_Receiver_41_out_1[cache: 0] = glyphs;
    // 
    // node Switch[2]: x = 207, y = 310, inputs = 2, label = Switch
    // page group: image
    //
main_Switch_2_out_1 = 
    Switch(
    main_Selector_2_out_1,
    main_Receiver_41_out_1
    ) [instance: 2, cache: 1];
    // 
    // node Collect[1]: x = 110, y = 411, inputs = 3, label = Collect
    // page group: image
    //
main_Collect_1_out_1 = 
    Collect(
    main_Caption_1_out_1,
    main_Receiver_40_out_1,
    main_Switch_2_out_1
    ) [instance: 1, cache: 1];
    // 
    // node Image[3]: x = 108, y = 515, 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 = [41623 7000.65 33067.1]
    // input[6]: defaulting = 0, visible = 0, type = 8, value = [41623 7000.65 789277]
    // input[7]: defaulting = 0, visible = 0, type = 5, value = 66894.8
    // input[8]: defaulting = 0, visible = 0, type = 1, value = 1060
    // input[9]: defaulting = 0, visible = 0, type = 5, value = 0.272
    // input[10]: defaulting = 0, visible = 0, type = 8, value = [0 1 0]
    // input[11]: defaulting = 1, visible = 0, type = 5, value = 5.06512
    // 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
    // input[41]: defaulting = 0, visible = 0, type = 32, value = "panzoom"
    // page group: image
    // depth: value = 24
    // window: position = (0.2922,0.6191), size = 0.8391x0.3242
    // 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_1_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];
    //
    // decorator Annotate	pos=(36,40) size=235x28 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 32
    // annotation user: This page creates an isosurface.
    // annotation user_end: <NULL>
    // page group: iso
    //
    // decorator Annotate	pos=(48,45) size=313x44 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 86
    // annotation user: This page allows the user to choose which
    // annotation user: of two data sets to map onto the isosurface.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: data_to_map
    //
    // decorator Annotate	pos=(63,27) size=322x60 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 122
    // annotation user: This page maps the selected data onto the
    // annotation user: isosurface, then colors it based on the entire
    // annotation user: range of the "data_to_map" field.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: colored_iso
    //
    // decorator Annotate	pos=(56,76) size=384x40 style(Label), value = <NULL>
    // annotation user_begin: 72
    // annotation user: This page maps samples the isosurface, and creates glyphs at
    // annotation user: each point.
    // annotation user_end: <NULL>
    // page group: glyphs
    //
    // decorator Annotate	pos=(341,149) size=237x60 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 88
    // annotation user: This page collects together the
    // annotation user: various parts of the visualization
    // annotation user: and creates an image.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: image
// network: end of macro body
CacheScene("Image_3", main_Image_3_out_1, main_Image_3_out_2);
}
main_Import_1_in_1 = "cloudwater";
main_Import_1_in_2 = NULL;
main_Import_1_in_3 = NULL;
main_Import_1_in_4 = NULL;
main_Import_1_in_5 = NULL;
main_Import_1_in_6 = NULL;
main_Import_1_out_1 = NULL;
main_Scalar_2_in_1 = "Scalar_2";
main_Scalar_2_in_2 = NULL;
main_Scalar_2_in_3 = 0.140000;
main_Scalar_2_in_4 = NULL;
main_Scalar_2_in_5 = NULL;
main_Scalar_2_in_6 = NULL;
main_Scalar_2_in_7 = NULL;
main_Scalar_2_in_8 = NULL;
main_Scalar_2_in_9 = NULL;
main_Scalar_2_in_10 = NULL;
main_Scalar_2_in_11 = NULL;
main_Scalar_2_out_1 = 0.140000;
main_Isosurface_2_in_3 = NULL;
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_Transmitter_26_out_1 = NULL;
main_Receiver_37_out_1 = NULL;
main_Selector_1_in_1 = "Selector_1";
main_Selector_1_in_2 = "mapped wind" ;
main_Selector_1_in_3 = 2 ;
main_Selector_1_in_4 = NULL;
main_Selector_1_in_5 = NULL;
main_Selector_1_in_6 = NULL;
main_Selector_1_in_7 = NULL;
main_Selector_1_out_1 = 2 ;
main_Selector_1_out_2 = "mapped wind" ;
main_Import_2_in_1 = "temperature";
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_Import_3_in_1 = "wind";
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_Switch_1_out_1 = NULL;
main_Transmitter_27_out_1 = NULL;
main_Receiver_38_out_1 = NULL;
main_Map_1_in_3 = NULL;
main_Map_1_in_4 = NULL;
main_Map_1_out_1 = NULL;
main_AutoColor_1_in_2 = NULL;
main_AutoColor_1_in_3 = NULL;
main_AutoColor_1_in_4 = NULL;
main_AutoColor_1_in_5 = NULL;
main_AutoColor_1_in_6 = 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_Transmitter_28_out_1 = NULL;
main_Receiver_42_out_1 = NULL;
main_Sample_1_in_2 = 150;
main_Sample_1_out_1 = NULL;
main_AutoGlyph_1_in_2 = 0.400000;
main_AutoGlyph_1_in_3 = NULL;
main_AutoGlyph_1_in_4 = 0.500000;
main_AutoGlyph_1_in_5 = NULL;
main_AutoGlyph_1_in_6 = NULL;
main_AutoGlyph_1_in_7 = NULL;
main_AutoGlyph_1_out_1 = NULL;
main_Transmitter_1_out_1 = NULL;
main_Receiver_1_out_1 = NULL;
main_List_1_in_2 = {"data courtesy of NCSA, University of Illinois at Urbana-Champaign"};
main_List_1_out_1 = NULL;
main_Caption_1_in_2 = [0.5, 0.02];
main_Caption_1_in_3 = NULL;
main_Caption_1_in_4 = NULL;
main_Caption_1_in_5 = NULL;
main_Caption_1_in_6 = NULL;
main_Caption_1_in_7 = NULL;
main_Caption_1_in_8 = NULL;
main_Caption_1_in_9 = NULL;
main_Caption_1_out_1 = NULL;
main_Receiver_40_out_1 = NULL;
main_Selector_2_in_1 = "Selector_2";
main_Selector_2_in_2 = "do not show glyphs" ;
main_Selector_2_in_3 = 0 ;
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 = 0 ;
main_Transmitter_29_out_1 = NULL;
main_Receiver_41_out_1 = NULL;
main_Switch_2_out_1 = NULL;
main_Collect_1_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 = [41623 7000.65 33067.1];
main_Image_3_in_6 = [41623 7000.65 789277];
main_Image_3_in_7 = 66894.8;
main_Image_3_in_8 = 1060;
main_Image_3_in_9 = 0.272;
main_Image_3_in_10 = [0 1 0];
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 = "panzoom";
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;
Executive("product version 3 1 4");
$sync
main();
