//
// time: Tue Sep  5 08:09:19 1995
//
// version: 3.0.0 (format), 3.1.0 (DX)
//
//
// MODULE main
//
// comment: This visual program is used as part of the tutorial for Data Explorer. To access the tutorial you can type
// comment:      dx -tutor
// comment: or you can choose "Tutorial..." from the Help menu of any window.
// comment: 
// comment: This visual program is discussed in the section "Processing Images". To find this section, start the tutorial, then click on
// comment: "Appendix B, Tutorial II: Editing and Creating Visual Programs" in the third paragraph. Then click on "Processing Images" in
// comment: the list of Tutorial II Topics.
// comment: 
// comment: The tutorial will suggest ways to use and modify this visual program.
// workspace: width = 664, height = 649
// layout: snap = 0, width = 50, height = 50, align = UL
//
macro main(
) -> (
) {
    // 
    // node Selector[2]: x = 120, y = 518, inputs = 7, label = Selector
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Selector_2"
    // input[2]: defaulting = 0, visible = 0, type = 32, value = "original and filtered" 
    // input[3]: defaulting = 0, visible = 0, type = 29, value = 1 
    // input[4]: defaulting = 1, visible = 1, type = 16777248, value = { "original and filtered" "original - filtered" "chromakey overlay" "contours of magnitude" }
    // input[5]: defaulting = 1, visible = 0, type = 16777245, value = { 1 2 3 4 }
    // output[1]: visible = 1, type = 29, value = 1 
    // output[2]: visible = 1, type = 32, value = "original and filtered" 
    //
    // 
    // node ReadImage[1]: x = 25, y = 2, inputs = 8, label = ReadImage
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "cylinder.rgb"
    //
main_ReadImage_1_out_1 = 
    ReadImage(
    main_ReadImage_1_in_1,
    main_ReadImage_1_in_2,
    main_ReadImage_1_in_3,
    main_ReadImage_1_in_4,
    main_ReadImage_1_in_5,
    main_ReadImage_1_in_6,
    main_ReadImage_1_in_7,
    main_ReadImage_1_in_8
    ) [instance: 1, cache: 1];
    // 
    // node Selector[1]: x = 250, y = 130, inputs = 7, label = Selector
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Selector_1"
    // input[2]: defaulting = 0, visible = 0, type = 32, value = "isotropic" 
    // input[3]: defaulting = 0, visible = 0, type = 29, value = 3 
    // input[4]: defaulting = 1, visible = 1, type = 16777248, value = { "gaussian" "laplacian" "isotropic" }
    // input[5]: defaulting = 1, visible = 0, type = 16777245, value = { 1 2 3 }
    // output[1]: visible = 1, type = 29, value = 3 
    // output[2]: visible = 1, type = 32, value = "isotropic" 
    //
    // 
    // node Filter[1]: x = 83, y = 180, inputs = 4, label = Filter
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "colors"
    //
main_Filter_1_out_1 = 
    Filter(
    main_ReadImage_1_out_1,
    main_Selector_1_out_2,
    main_Filter_1_in_3,
    main_Filter_1_in_4
    ) [instance: 1, cache: 1];
    // 
    // node Collect[10]: x = 37, y = 278, inputs = 2, label = Collect
    //
main_Collect_10_out_1 = 
    Collect(
    main_ReadImage_1_out_1,
    main_Filter_1_out_1
    ) [instance: 10, cache: 1];
    // 
    // node Arrange[2]: x = 54, y = 402, inputs = 5, label = Arrange
    //
main_Arrange_2_out_1 = 
    Arrange(
    main_Collect_10_out_1,
    main_Arrange_2_in_2,
    main_Arrange_2_in_3,
    main_Arrange_2_in_4,
    main_Arrange_2_in_5
    ) [instance: 2, cache: 1];
    // 
    // node Mark[1]: x = 334, y = 155, inputs = 2, label = Mark
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "colors"
    //
main_Mark_1_out_1 = 
    Mark(
    main_ReadImage_1_out_1,
    main_Mark_1_in_2
    ) [instance: 1, cache: 1];
    // 
    // node Mark[2]: x = 394, y = 244, inputs = 2, label = Mark
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "colors"
    //
main_Mark_2_out_1 = 
    Mark(
    main_Filter_1_out_1,
    main_Mark_2_in_2
    ) [instance: 2, cache: 1];
    // 
    // node Compute[11]: x = 301, y = 307, inputs = 3, label = Compute
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "$0 - $1"
    // expression: value = original - filtered
    // name[2]: value = original
    // name[3]: value = filtered
    //
main_Compute_11_out_1 = 
    Compute(
    main_Compute_11_in_1,
    main_Mark_1_out_1,
    main_Mark_2_out_1
    ) [instance: 11, cache: 1];
    // 
    // node Unmark[1]: x = 314, y = 391, inputs = 2, label = Unmark
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "colors"
    //
main_Unmark_1_out_1 = 
    Unmark(
    main_Compute_11_out_1,
    main_Unmark_1_in_2
    ) [instance: 1, cache: 1];
    // 
    // node ReadImage[2]: x = 469, y = 57, inputs = 8, label = ReadImage
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "background.tiff"
    //
main_ReadImage_2_out_1 = 
    ReadImage(
    main_ReadImage_2_in_1,
    main_ReadImage_2_in_2,
    main_ReadImage_2_in_3,
    main_ReadImage_2_in_4,
    main_ReadImage_2_in_5,
    main_ReadImage_2_in_6,
    main_ReadImage_2_in_7,
    main_ReadImage_2_in_8
    ) [instance: 2, cache: 1];
    // 
    // node Transmitter[12]: x = 129, y = 74, inputs = 1, label = original_image
    //
original_image = main_ReadImage_1_out_1;
    // 
    // node Receiver[14]: x = 540, y = 145, inputs = 1, label = original_image
    //
main_Receiver_14_out_1 = original_image;
    // 
    // node Overlay[1]: x = 470, y = 245, inputs = 3, label = Overlay
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "black"
    //
main_Overlay_1_out_1 = 
    Overlay(
    main_ReadImage_2_out_1,
    main_Receiver_14_out_1,
    main_Overlay_1_in_3
    ) [instance: 1, cache: 1];
    // 
    // node Mark[3]: x = 559, y = 240, inputs = 2, label = Mark
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "colors"
    //
main_Mark_3_out_1 = 
    Mark(
    main_Receiver_14_out_1,
    main_Mark_3_in_2
    ) [instance: 3, cache: 1];
    // 
    // node Compute[12]: x = 544, y = 313, inputs = 2, label = Compute
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "mag($0)"
    // expression: value = mag(a)
    // name[2]: value = a
    //
main_Compute_12_out_1 = 
    Compute(
    main_Compute_12_in_1,
    main_Mark_3_out_1
    ) [instance: 12, cache: 1];
    // 
    // node Isosurface[1]: x = 551, y = 387, inputs = 6, label = Isosurface
    // input[3]: defaulting = 0, visible = 1, type = 1, value = 10
    //
main_Isosurface_1_out_1 = 
    Isosurface(
    main_Compute_12_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 AutoCamera[2]: x = 567, y = 460, inputs = 9, label = AutoCamera
    // input[3]: defaulting = 0, visible = 1, type = 5, value = 350.0
    // input[4]: defaulting = 0, visible = 1, type = 1, value = 350
    // input[5]: defaulting = 0, visible = 0, type = 5, value = .85
    //
main_AutoCamera_2_out_1 = 
    AutoCamera(
    main_Isosurface_1_out_1,
    main_AutoCamera_2_in_2,
    main_AutoCamera_2_in_3,
    main_AutoCamera_2_in_4,
    main_AutoCamera_2_in_5,
    main_AutoCamera_2_in_6,
    main_AutoCamera_2_in_7,
    main_AutoCamera_2_in_8,
    main_AutoCamera_2_in_9
    ) [instance: 2, cache: 1];
    // 
    // node Render[1]: x = 487, y = 488, inputs = 3, label = Render
    //
main_Render_1_out_1 = 
    Render(
    main_Isosurface_1_out_1,
    main_AutoCamera_2_out_1,
    main_Render_1_in_3
    ) [instance: 1, cache: 1];
    // 
    // node Switch[1]: x = 271, y = 526, inputs = 5, label = Switch
    //
main_Switch_1_out_1 = 
    Switch(
    main_Selector_2_out_1,
    main_Arrange_2_out_1,
    main_Unmark_1_out_1,
    main_Overlay_1_out_1,
    main_Render_1_out_1
    ) [instance: 1, cache: 1];
    // 
    // node Display[10]: x = 411, y = 586, inputs = 4, label = Display
    // depth: value = 8
    // window: position = (0.3648,0.0635), size = 0.5578x0.3359
    //
    Display(
    main_Switch_1_out_1,
    main_Display_10_in_2,
    main_Display_10_in_3,
    main_Display_10_in_4
    ) [instance: 10, cache: 1];
// network: end of macro body
}
main_Selector_2_in_1 = "Selector_2";
main_Selector_2_in_2 = "original and filtered" ;
main_Selector_2_in_3 = 1 ;
main_Selector_2_in_4 = NULL;
main_Selector_2_in_5 = NULL;
main_Selector_2_in_6 = NULL;
main_Selector_2_in_7 = NULL;
main_Selector_2_out_1 = 1 ;
main_ReadImage_1_in_1 = "cylinder.rgb";
main_ReadImage_1_in_2 = NULL;
main_ReadImage_1_in_3 = NULL;
main_ReadImage_1_in_4 = NULL;
main_ReadImage_1_in_5 = NULL;
main_ReadImage_1_in_6 = NULL;
main_ReadImage_1_in_7 = NULL;
main_ReadImage_1_in_8 = NULL;
main_ReadImage_1_out_1 = NULL;
main_Selector_1_in_1 = "Selector_1";
main_Selector_1_in_2 = "isotropic" ;
main_Selector_1_in_3 = 3 ;
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_2 = "isotropic" ;
main_Filter_1_in_3 = "colors";
main_Filter_1_in_4 = NULL;
main_Filter_1_out_1 = NULL;
main_Collect_10_out_1 = NULL;
main_Arrange_2_in_2 = NULL;
main_Arrange_2_in_3 = NULL;
main_Arrange_2_in_4 = NULL;
main_Arrange_2_in_5 = NULL;
main_Arrange_2_out_1 = NULL;
main_Mark_1_in_2 = "colors";
main_Mark_1_out_1 = NULL;
main_Mark_2_in_2 = "colors";
main_Mark_2_out_1 = NULL;
main_Compute_11_in_1 = "$0 - $1";
main_Compute_11_out_1 = NULL;
main_Unmark_1_in_2 = "colors";
main_Unmark_1_out_1 = NULL;
main_ReadImage_2_in_1 = "background.tiff";
main_ReadImage_2_in_2 = NULL;
main_ReadImage_2_in_3 = NULL;
main_ReadImage_2_in_4 = NULL;
main_ReadImage_2_in_5 = NULL;
main_ReadImage_2_in_6 = NULL;
main_ReadImage_2_in_7 = NULL;
main_ReadImage_2_in_8 = NULL;
main_ReadImage_2_out_1 = NULL;
main_Transmitter_12_out_1 = NULL;
main_Receiver_14_out_1 = NULL;
main_Overlay_1_in_3 = "black";
main_Overlay_1_out_1 = NULL;
main_Mark_3_in_2 = "colors";
main_Mark_3_out_1 = NULL;
main_Compute_12_in_1 = "mag($0)";
main_Compute_12_out_1 = NULL;
main_Isosurface_1_in_2 = NULL;
main_Isosurface_1_in_3 = 10;
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_AutoCamera_2_in_2 = NULL;
main_AutoCamera_2_in_3 = 350.0;
main_AutoCamera_2_in_4 = 350;
main_AutoCamera_2_in_5 = .85;
main_AutoCamera_2_in_6 = NULL;
main_AutoCamera_2_in_7 = NULL;
main_AutoCamera_2_in_8 = NULL;
main_AutoCamera_2_in_9 = NULL;
main_AutoCamera_2_out_1 = NULL;
main_Render_1_in_3 = NULL;
main_Render_1_out_1 = NULL;
main_Switch_1_out_1 = NULL;
main_Display_10_in_2 = NULL;
main_Display_10_in_3 = "X8,,";
main_Display_10_in_4 = NULL;
Executive("product version 3 1 0");
$sync
main();
