//
// time: Wed Mar 12 15:27:16 1997
//
// version: 3.1.1 (format), 3.1.4 (DX Beta)
//
//
// MODULE main
//
// comment: A general purpose visual program for gridded, two-dimensional data has been used. 
// comment: 
// comment: The 2-dimensional surface is colored using a data-driven colormap editor (choose Open All  Colormap Editors from the Windows menu of the Image window).
// comment: 
// comment: If the data are scalar, then the colored surface is deformed using RubberSheet. If the data are position-dependent, contour lines are added.
// comment: 
// comment: If the data are vector, then glyphs (arrows) are drawn at sampled points on the colored surface.
// comment: 
// comment: If you would like to modify or use this visual program in the future, choose Open Visual Program Editor from the Windows menu, and then Save As from the File menu of the VPE.
// page assignment: image	order=6, windowed=0, showing=0
// page assignment: import	order=2, windowed=0, showing=1
// page assignment: is_scalar	order=3, windowed=0, showing=0
// page assignment: scalar_viz	order=4, windowed=0, showing=0
// page assignment: vector_viz	order=5, windowed=0, showing=0
// workspace: width = 596, height = 543
// layout: snap = 0, width = 50, height = 20, align = NN
//
macro main(
) -> (
) {
    // 
    // node FileSelector[1]: x = 99, y = 129, inputs = 0, label = FileSelector
    // output[1]: visible = 1, type = 32, value = "_filename_"
    // output[2]: visible = 1, type = 32, value = "_filename_"
    // page group: import
    //
    // 
    // node String[1]: x = 262, y = 129, inputs = 0, label = String
    // output[1]: visible = 1, type = 32, value = "_filetype_"
    // page group: import
    //
    // 
    // node Import[1]: x = 106, y = 209, inputs = 6, label = Import
    // input[1]: defaulting = 1, visible = 1, type = 32, value = "/opt/local/dx/samples/data/southeastern_topo.dx"
    // page group: import
    //
main_Import_1_out_1 = 
    Import(
    main_FileSelector_1_out_1,
    main_Import_1_in_2,
    main_String_1_out_1,
    main_Import_1_in_4,
    main_Import_1_in_5,
    main_Import_1_in_6
    ) [instance: 1, cache: 1];
    // 
    // node Transmitter[50]: x = 95, y = 476, inputs = 1, label = imported
    // page group: import
    //
imported = main_Import_1_out_1;
    // 
    // node Receiver[65]: x = 236, y = 117, inputs = 1, label = imported
    // page group: vector_viz
    //
main_Receiver_65_out_1[cache: 0] = imported;
    // 
    // node Sample[1]: x = 209, y = 216, inputs = 2, label = Sample
    // input[2]: defaulting = 0, visible = 1, type = 1, value = 400
    // page group: vector_viz
    //
main_Sample_1_out_1 = 
    Sample(
    main_Receiver_65_out_1,
    main_Sample_1_in_2
    ) [instance: 1, cache: 1];
    // 
    // node AutoGlyph[3]: x = 180, y = 311, inputs = 7, label = AutoGlyph
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "arrow"
    // page group: vector_viz
    //
main_AutoGlyph_3_out_1 = 
    AutoGlyph(
    main_Sample_1_out_1,
    main_AutoGlyph_3_in_2,
    main_AutoGlyph_3_in_3,
    main_AutoGlyph_3_in_4,
    main_AutoGlyph_3_in_5,
    main_AutoGlyph_3_in_6,
    main_AutoGlyph_3_in_7
    ) [instance: 3, cache: 1];
    // 
    // node Colormap[4]: x = 281, y = 305, inputs = 19, label = Colormap
    // input[1]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.666667] [1.0 0.0] }
    // input[2]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] }
    // input[3]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] }
    // input[4]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] }
    // input[5]: defaulting = 0, visible = 0, type = 32, value = "Colormap_4"
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 0.0
    // input[8]: defaulting = 1, visible = 0, type = 5, value = 94.0
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 20
    // input[12]: defaulting = 0, visible = 0, type = 16777221, value = { 0.0 94.0 }
    // input[17]: defaulting = 0, visible = 0, type = 5, value = 0.0
    // input[18]: defaulting = 0, visible = 0, type = 5, value = 94.0
    // page group: import
    // window: position = (0.5250,0.0000), size = 0.4688x0.2930
    //
main_Colormap_4_out_1[cache: 2],
main_Colormap_4_out_2[cache: 2] = 
    Colormap(
    main_Colormap_4_in_1,
    main_Colormap_4_in_2,
    main_Colormap_4_in_3,
    main_Colormap_4_in_4,
    main_Colormap_4_in_5,
    main_Import_1_out_1,
    main_Colormap_4_in_7,
    main_Colormap_4_in_8,
    main_Colormap_4_in_9,
    main_Colormap_4_in_10,
    main_Colormap_4_in_11,
    main_Colormap_4_in_12,
    main_Colormap_4_in_13,
    main_Colormap_4_in_14,
    main_Colormap_4_in_15,
    main_Colormap_4_in_16,
    main_Colormap_4_in_17,
    main_Colormap_4_in_18,
    main_Colormap_4_in_19
    ) [instance: 4, cache: 1];
    // 
    // node Color[4]: x = 220, y = 380, inputs = 5, label = Color
    // page group: import
    //
main_Color_4_out_1 = 
    Color(
    main_Import_1_out_1,
    main_Colormap_4_out_1,
    main_Color_4_in_3,
    main_Color_4_in_4,
    main_Color_4_in_5
    ) [instance: 4, cache: 1];
    // 
    // node Transmitter[54]: x = 259, y = 481, inputs = 1, label = colored
    // page group: import
    //
colored = main_Color_4_out_1;
    // 
    // node Receiver[67]: x = 36, y = 65, inputs = 1, label = colored
    // page group: scalar_viz
    //
main_Receiver_67_out_1[cache: 0] = colored;
    // 
    // node RubberSheet[1]: x = 47, y = 320, inputs = 4, label = RubberSheet
    // page group: scalar_viz
    //
main_RubberSheet_1_out_1 = 
    RubberSheet(
    main_Receiver_67_out_1,
    main_RubberSheet_1_in_2,
    main_RubberSheet_1_in_3,
    main_RubberSheet_1_in_4
    ) [instance: 1, cache: 1];
    // 
    // node Inquire[4]: x = 162, y = 419, inputs = 3, label = Inquire
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "is data dependent"
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "positions"
    // page group: scalar_viz
    //
main_Inquire_4_out_1 = 
    Inquire(
    main_RubberSheet_1_out_1,
    main_Inquire_4_in_2,
    main_Inquire_4_in_3
    ) [instance: 4, cache: 1];
    // 
    // node Receiver[61]: x = 337, y = 106, inputs = 1, label = imported
    // page group: scalar_viz
    //
main_Receiver_61_out_1[cache: 0] = imported;
    // 
    // node Reset[1]: x = 385, y = 195, inputs = 6, label = Reset
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "main_Reset_1_out_1"
    // input[2]: defaulting = 0, visible = 0, type = 29, value = 1
    // input[3]: defaulting = 0, visible = 0, type = 3, value = 1
    // input[4]: defaulting = 1, visible = 0, type = 29, value = 1
    // input[5]: defaulting = 1, visible = 0, type = 29, value = 0
    // output[1]: visible = 1, type = 29, value = 1
    // page group: scalar_viz
    // toggle : 1
    //
    // 
    // node ScalarList[3]: x = 354, y = 274, inputs = 11, label = ScalarList
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "ScalarList_3"
    // input[3]: defaulting = 0, visible = 0, type = 16777221, value = { 0.0 9.3999996 18.799999 28.199999 37.599998 47.0 56.399998 65.799995 75.199997 84.599998 94.0 }
    // input[4]: defaulting = 1, visible = 1, type = 3, value = 0
    // input[5]: defaulting = 1, visible = 0, type = 5, value = 0.0
    // input[6]: defaulting = 1, visible = 0, type = 5, value = 94.0
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.0
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 1
    // output[1]: visible = 1, type = 16777221, value = { 0.0 9.3999996 18.799999 28.199999 37.599998 47.0 56.399998 65.799995 75.199997 84.599998 94.0 }
    // page group: scalar_viz
    //
main_ScalarList_3_out_1[cache: 2] = 
    ScalarList(
    main_ScalarList_3_in_1,
    main_Receiver_61_out_1,
    main_ScalarList_3_in_3,
    main_Reset_1_out_1,
    main_ScalarList_3_in_5,
    main_ScalarList_3_in_6,
    main_ScalarList_3_in_7,
    main_ScalarList_3_in_8,
    main_ScalarList_3_in_9,
    main_ScalarList_3_in_10,
    main_ScalarList_3_in_11
    ) [instance: 3, cache: 1];
    // 
    // node Isosurface[1]: x = 254, y = 352, inputs = 6, label = Isosurface
    // page group: scalar_viz
    //
main_Isosurface_1_out_1 = 
    Isosurface(
    main_RubberSheet_1_out_1,
    main_ScalarList_3_out_1,
    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[2]: x = 279, y = 429, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "black"
    // page group: scalar_viz
    //
main_Color_2_out_1 = 
    Color(
    main_Isosurface_1_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 Switch[4]: x = 224, y = 514, inputs = 3, label = Switch
    // page group: scalar_viz
    //
main_Switch_4_out_1 = 
    Switch(
    main_Inquire_4_out_1,
    main_Color_2_out_1,
    main_Switch_4_in_3
    ) [instance: 4, cache: 1];
    // 
    // node Collect[1]: x = 64, y = 468, inputs = 2, label = Collect
    // page group: scalar_viz
    //
main_Collect_1_out_1 = 
    Collect(
    main_RubberSheet_1_out_1,
    main_Switch_4_out_1
    ) [instance: 1, cache: 1];
    // 
    // node Receiver[68]: x = 40, y = 100, inputs = 1, label = colored
    // page group: vector_viz
    //
main_Receiver_68_out_1[cache: 0] = colored;
    // 
    // node Collect[6]: x = 93, y = 364, inputs = 2, label = Collect
    // page group: vector_viz
    //
main_Collect_6_out_1 = 
    Collect(
    main_Receiver_68_out_1,
    main_AutoGlyph_3_out_1
    ) [instance: 6, cache: 1];
    // 
    // node Receiver[62]: x = 147, y = 47, inputs = 1, label = imported
    // page group: is_scalar
    //
main_Receiver_62_out_1[cache: 0] = imported;
    // 
    // node Inquire[3]: x = 155, y = 169, inputs = 3, label = Inquire
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "is scalar + 1"
    // page group: is_scalar
    //
main_Inquire_3_out_1 = 
    Inquire(
    main_Receiver_62_out_1,
    main_Inquire_3_in_2,
    main_Inquire_3_in_3
    ) [instance: 3, cache: 1];
    // 
    // node Transmitter[51]: x = 168, y = 288, inputs = 1, label = is_scalar
    // page group: is_scalar
    //
is_scalar = main_Inquire_3_out_1;
    // 
    // node Receiver[64]: x = 25, y = 104, inputs = 1, label = is_scalar
    // page group: image
    //
main_Receiver_64_out_1[cache: 0] = is_scalar;
    // 
    // node Transmitter[53]: x = 84, y = 540, inputs = 1, label = vector_viz
    // page group: vector_viz
    //
vector_viz = main_Collect_6_out_1;
    // 
    // node Receiver[66]: x = 108, y = 99, inputs = 1, label = vector_viz
    // page group: image
    //
main_Receiver_66_out_1[cache: 0] = vector_viz;
    // 
    // node Transmitter[52]: x = 43, y = 552, inputs = 1, label = scalar_viz
    // page group: scalar_viz
    //
scalar_viz = main_Collect_1_out_1;
    // 
    // node Receiver[63]: x = 202, y = 102, inputs = 1, label = scalar_viz
    // page group: image
    //
main_Receiver_63_out_1[cache: 0] = scalar_viz;
    // 
    // node Switch[3]: x = 68, y = 221, inputs = 3, label = Switch
    // page group: image
    //
main_Switch_3_out_1 = 
    Switch(
    main_Receiver_64_out_1,
    main_Receiver_66_out_1,
    main_Receiver_63_out_1
    ) [instance: 3, cache: 1];
    // 
    // node Reset[2]: x = 230, y = 246, inputs = 6, label = Reset
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "main_Reset_2_out_1"
    // input[2]: defaulting = 0, visible = 0, type = 29, value = 1
    // input[3]: defaulting = 0, visible = 0, type = 3, value = 1
    // input[4]: defaulting = 1, visible = 0, type = 29, value = 1
    // input[5]: defaulting = 1, visible = 0, type = 29, value = 0
    // output[1]: visible = 1, type = 29, value = 1
    // page group: image
    // toggle : 1
    //
    // 
    // node Image[3]: x = 82, y = 333, 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 = [3.5 3.5 0.494975]
    // input[6]: defaulting = 0, visible = 0, type = 8, value = [3.5 3.5 25.4956]
    // input[7]: defaulting = 0, visible = 0, type = 5, value = 13.3978
    // input[8]: defaulting = 0, visible = 0, type = 1, value = 640
    // input[9]: defaulting = 0, visible = 0, type = 5, value = 0.75
    // input[10]: defaulting = 0, visible = 0, type = 8, value = [0 1 0]
    // input[11]: defaulting = 1, visible = 0, type = 5, value = 30.0
    // 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[21]: visible = 1
    // input[29]: defaulting = 1, visible = 0, type = 3, value = 0
    // input[41]: defaulting = 0, visible = 0, type = 32, value = "rotate"
    // input[42]: defaulting = 0, visible = 0, type = 32, value = "Gridded_2D_1var_notseries"
    // page group: image
    // title: value = Gridded_2D_1var_notseries
    // depth: value = 8
    // window: position = (0.3359,0.3076), size = 0.5109x0.5117
    // 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_Switch_3_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_Reset_2_out_1,
    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=(282,43) size=314x76 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 173
    // annotation user: This is a simple visual program intended 
    // annotation user: to be used for a two-dimensional data set 
    // annotation user: with a single variable,  which is not a series 
    // annotation user: (hence the name of the visual  program).
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: import
    //
    // decorator Annotate	pos=(308,522) size=311x44 style(Label), value = <NULL>
    // annotation user_begin: 65
    // annotation user: Isosurface is switched off if the data are not
    // annotation user: position dependent
    // annotation user_end: <NULL>
    // page group: scalar_viz
    //
    // decorator Annotate	pos=(228,76) size=396x44 style(Label), value = <NULL>
    // annotation user_begin: 73
    // annotation user: The data are checked to see if they are scalar, using the
    // annotation user: Inquire module.
    // annotation user_end: <NULL>
    // page group: is_scalar
    //
    // decorator Annotate	pos=(96,18) size=438x28 style(Label), value = <NULL>
    // annotation user_begin: 65
    // annotation user: This set of visualization modules is used if the data are scalar.
    // annotation user_end: <NULL>
    // page group: scalar_viz
    //
    // decorator Annotate	pos=(2,281) size=218x28 style(Label), value = <NULL>
    // annotation user_begin: 29
    // annotation user: A deformed surface is created
    // annotation user_end: <NULL>
    // page group: scalar_viz
    //
    // decorator Annotate	pos=(309,388) size=279x44 style(Label), value = <NULL>
    // annotation user_begin: 67
    // annotation user: The imported data are colored using a 
    // annotation user: data-driven colormap editor.
    // annotation user_end: <NULL>
    // page group: import
    //
    // decorator Annotate	pos=(344,363) size=186x44 style(Label), value = <NULL>
    // annotation user_begin: 42
    // annotation user: contour lines are created
    // annotation user: using Isosurface
    // annotation user_end: <NULL>
    // page group: scalar_viz
    //
    // decorator Annotate	pos=(51,36) size=356x28 style(Label), value = <NULL>
    // annotation user_begin: 51
    // annotation user: This set of modules are used if the data are vector
    // annotation user_end: <NULL>
    // page group: vector_viz
    //
    // decorator Annotate	pos=(257,378) size=291x44 style(Label), value = <NULL>
    // annotation user_begin: 65
    // annotation user: The data is sampled and glyphs (arrows)
    // annotation user: are placed at each sample
    // annotation user_end: <NULL>
    // page group: vector_viz
    //
    // decorator Annotate	pos=(74,31) size=483x44 style(Label), value = <NULL>
    // annotation user_begin: 109
    // annotation user: Depending on whether the data are scalar or vector, the appropriate
    // annotation user: visualization is passed through to Image.
    // annotation user_end: <NULL>
    // page group: image
// network: end of macro body
CacheScene("Image_3", main_Image_3_out_1, main_Image_3_out_2);
}
main_FileSelector_1_out_1 = "_filename_";
main_String_1_out_1 = "_filetype_";
main_Import_1_in_2 = 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_Transmitter_50_out_1 = NULL;
main_Receiver_65_out_1 = NULL;
main_Sample_1_in_2 = 400;
main_Sample_1_out_1 = NULL;
main_AutoGlyph_3_in_2 = "arrow";
main_AutoGlyph_3_in_3 = NULL;
main_AutoGlyph_3_in_4 = NULL;
main_AutoGlyph_3_in_5 = NULL;
main_AutoGlyph_3_in_6 = NULL;
main_AutoGlyph_3_in_7 = NULL;
main_AutoGlyph_3_out_1 = NULL;
main_Colormap_4_in_1 = { [0.0 0.666667] [1.0 0.0] };
main_Colormap_4_in_2 = { [0.0 1.0] [1.0 1.0] };
main_Colormap_4_in_3 = { [0.0 1.0] [1.0 1.0] };
main_Colormap_4_in_4 = { [0.0 1.0] [1.0 1.0] };
main_Colormap_4_in_5 = "Colormap_4";
main_Colormap_4_in_7 = NULL;
main_Colormap_4_in_8 = NULL;
main_Colormap_4_in_9 = NULL;
main_Colormap_4_in_10 = NULL;
main_Colormap_4_in_11 = NULL;
main_Colormap_4_in_12 = { 0.0 94.0 };
main_Colormap_4_in_13 = NULL;
main_Colormap_4_in_14 = NULL;
main_Colormap_4_in_15 = NULL;
main_Colormap_4_in_16 = NULL;
main_Colormap_4_in_17 = 0.0;
main_Colormap_4_in_18 = 94.0;
main_Colormap_4_in_19 = NULL;
main_Colormap_4_out_1 = NULL;
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_Transmitter_54_out_1 = NULL;
main_Receiver_67_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_Inquire_4_in_2 = "is data dependent";
main_Inquire_4_in_3 = "positions";
main_Inquire_4_out_1 = NULL;
main_Receiver_61_out_1 = NULL;
main_Reset_1_in_1 = "main_Reset_1_out_1";
main_Reset_1_in_2 = 1;
main_Reset_1_in_3 = 1;
main_Reset_1_in_4 = NULL;
main_Reset_1_in_5 = NULL;
main_Reset_1_in_6 = NULL;
main_Reset_1_out_1[oneshot:0] = 1;
main_ScalarList_3_in_1 = "ScalarList_3";
main_ScalarList_3_in_3 = { 0.0 9.3999996 18.799999 28.199999 37.599998 47.0 56.399998 65.799995 75.199997 84.599998 94.0 };
main_ScalarList_3_in_5 = NULL;
main_ScalarList_3_in_6 = NULL;
main_ScalarList_3_in_7 = NULL;
main_ScalarList_3_in_8 = NULL;
main_ScalarList_3_in_9 = NULL;
main_ScalarList_3_in_10 = NULL;
main_ScalarList_3_in_11 = NULL;
main_ScalarList_3_out_1 = { 0.0 9.3999996 18.799999 28.199999 37.599998 47.0 56.399998 65.799995 75.199997 84.599998 94.0 };
main_Isosurface_1_in_3 = NULL;
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_2_in_2 = "black";
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_Switch_4_in_3 = NULL;
main_Switch_4_out_1 = NULL;
main_Collect_1_out_1 = NULL;
main_Receiver_68_out_1 = NULL;
main_Collect_6_out_1 = NULL;
main_Receiver_62_out_1 = NULL;
main_Inquire_3_in_2 = "is scalar + 1";
main_Inquire_3_in_3 = NULL;
main_Inquire_3_out_1 = NULL;
main_Transmitter_51_out_1 = NULL;
main_Receiver_64_out_1 = NULL;
main_Transmitter_53_out_1 = NULL;
main_Receiver_66_out_1 = NULL;
main_Transmitter_52_out_1 = NULL;
main_Receiver_63_out_1 = NULL;
main_Switch_3_out_1 = NULL;
main_Reset_2_in_1 = "main_Reset_2_out_1";
main_Reset_2_in_2 = 1;
main_Reset_2_in_3 = 1;
main_Reset_2_in_4 = NULL;
main_Reset_2_in_5 = NULL;
main_Reset_2_in_6 = NULL;
main_Reset_2_out_1[oneshot:0] = 1;
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 = "X8,,Gridded_2D_1var_notseries";
main_Image_3_in_4 = 1;
main_Image_3_in_5 = [3.5 3.5 0.494975];
main_Image_3_in_6 = [3.5 3.5 25.4956];
main_Image_3_in_7 = 13.3978;
main_Image_3_in_8 = 640;
main_Image_3_in_9 = 0.75;
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_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 = "rotate";
main_Image_3_in_42 = "Gridded_2D_1var_notseries";
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();
