//
// time: Wed Apr  9 15:36:16 1997
//
// version: 3.1.1 (format), 3.1.4 (DX Beta)
//
//
// MODULE main
// CATEGORY Macros
//
// comment: This network shows the electrostatic potentials for an imide. The molecular structure was obtained from a modeling package and registered with the potential grid . The negative potentials for oxygen are represented by the silver spheres at the value of  -0.015 ev.  A slice from the data is colored based on the magnitude of the gradient of the potential.   The value in this technique is that it allows a view of the potential data, indicating  that this structure may not be planar. Nitrogen atoms, as has been reported in the literature, may have the effect of causing  changes in the planarity of  these kinds of compounds.
// comment: 
// comment: The sequencer is data driven so that for each slab dimension chosen, the limits of the sequencer correspond to the number of positions in that dimension.
// comment: 
// comment:  When the sequencer is running  one can see the contribution of the nitrogen to the gradient  with respect to the position of the slice through the potential field.  It is also important to  be able to visualize in 3D the positive and negative potentials, this information yields information as to the nature of the kind of attack that this kind of structure can undergo. ie...  nucleophilic or electrophilic.
// comment: 
// comment: The data used in this visual program is on a regular grid, 23x43x48. The data set size is 0.2 Mbyte.
// comment: 
// comment:  		
// comment: 
// comment: 
// comment: 		
// comment:     
// comment:  
// comment: 
// comment:  
// page assignment: ball_stick	order=4, windowed=0, showing=0
// page assignment: contours	order=5, windowed=0, showing=0
// page assignment: image	order=6, windowed=0, showing=0
// page assignment: import	order=2, windowed=0, showing=1
// page assignment: slab	order=3, windowed=0, showing=0
// workspace: width = 607, height = 574
// layout: snap = 0, width = 50, height = 50, align = CC
//
macro main(
) -> (
) {
    // 
    // node Import[2]: x = 100, y = 20, inputs = 6, label = Import
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "npp"
    // page group: ball_stick
    //
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 AutoColor[1]: x = 20, y = 119, inputs = 10, label = AutoColor
    // input[3]: defaulting = 0, visible = 1, type = 5, value = 1.000000
    // input[4]: defaulting = 0, visible = 1, type = 5, value = 0.400000
    // input[5]: defaulting = 0, visible = 1, type = 5, value = 0.700000
    // page group: ball_stick
    //
main_AutoColor_1_out_1,
main_AutoColor_1_out_2 = 
    AutoColor(
    main_Import_2_out_1,
    main_AutoColor_1_in_2,
    main_AutoColor_1_in_3,
    main_AutoColor_1_in_4,
    main_AutoColor_1_in_5,
    main_AutoColor_1_in_6,
    main_AutoColor_1_in_7,
    main_AutoColor_1_in_8,
    main_AutoColor_1_in_9,
    main_AutoColor_1_in_10
    ) [instance: 1, cache: 1];
    // 
    // node Caption[1]: x = 282, y = 374, inputs = 9, label = Caption
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "Imide Electrostatic Potentials"
    // input[2]: defaulting = 0, visible = 1, type = 8, value = [0.5, 0.95]
    // input[6]: defaulting = 0, visible = 1, type = 1, value = 20
    // input[7]: defaulting = 0, visible = 1, type = 32, value = "variable"
    // page group: image
    //
main_Caption_1_out_1 = 
    Caption(
    main_Caption_1_in_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 Glyph[1]: x = 31, y = 206, inputs = 7, label = Glyph
    // input[4]: defaulting = 0, visible = 1, type = 5, value = 0.160000
    // input[5]: defaulting = 0, visible = 1, type = 5, value = 0.600000
    // page group: ball_stick
    //
main_Glyph_1_out_1 = 
    Glyph(
    main_AutoColor_1_out_1,
    main_Glyph_1_in_2,
    main_Glyph_1_in_3,
    main_Glyph_1_in_4,
    main_Glyph_1_in_5,
    main_Glyph_1_in_6,
    main_Glyph_1_in_7
    ) [instance: 1, cache: 1];
    // 
    // node Tube[1]: x = 264, y = 121, inputs = 4, label = Tube
    // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.250000
    // input[3]: defaulting = 0, visible = 1, type = 1, value = NULL
    // page group: ball_stick
    //
main_Tube_1_out_1 = 
    Tube(
    main_Import_2_out_1,
    main_Tube_1_in_2,
    main_Tube_1_in_3,
    main_Tube_1_in_4
    ) [instance: 1, cache: 1];
    // 
    // node Color[3]: x = 255, y = 209, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "steelblue"
    // page group: ball_stick
    //
main_Color_3_out_1 = 
    Color(
    main_Tube_1_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[2]: x = 150, y = 282, inputs = 2, label = Collect
    // page group: ball_stick
    //
main_Collect_2_out_1 = 
    Collect(
    main_Glyph_1_out_1,
    main_Color_3_out_1
    ) [instance: 2, cache: 1];
    // 
    // node Rotate[1]: x = 127, y = 359, inputs = 5, label = Rotate
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "y"
    // input[3]: defaulting = 0, visible = 1, type = 5, value = 90.000000
    // input[4]: defaulting = 0, visible = 1, type = 32, value = "x"
    // input[5]: defaulting = 0, visible = 1, type = 5, value = 115.000000
    // page group: ball_stick
    //
main_Rotate_1_out_1 = 
    Rotate(
    main_Collect_2_out_1,
    main_Rotate_1_in_2,
    main_Rotate_1_in_3,
    main_Rotate_1_in_4,
    main_Rotate_1_in_5
    ) [instance: 1, cache: 1];
    // 
    // node Translate[1]: x = 155, y = 439, inputs = 2, label = Translate
    // input[2]: defaulting = 0, visible = 1, type = 8, value = [13.8, 16.3, 14]
    // page group: ball_stick
    //
main_Translate_1_out_1 = 
    Translate(
    main_Rotate_1_out_1,
    main_Translate_1_in_2
    ) [instance: 1, cache: 1];
    // 
    // node Transmitter[1]: x = 145, y = 517, inputs = 1, label = ball_and_stick
    // page group: ball_stick
    //
ball_and_stick = main_Translate_1_out_1;
    // 
    // node Receiver[1]: x = 22, y = 20, inputs = 1, label = ball_and_stick
    // page group: image
    //
main_Receiver_1_out_1[cache: 0] = ball_and_stick;
    // 
    // node Import[1]: x = 124, y = 160, inputs = 6, label = Import
    // input[1]: defaulting = 0, visible = 1, type = 32, value = "imide_potential"
    // page group: import
    //
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 Transmitter[17]: x = 255, y = 276, inputs = 1, label = imported
    // page group: import
    //
imported = main_Import_1_out_1;
    // 
    // node Receiver[25]: x = 39, y = 20, inputs = 1, label = imported
    // page group: slab
    //
main_Receiver_25_out_1[cache: 0] = imported;
    // 
    // node Gradient[1]: x = 58, y = 99, inputs = 2, label = Gradient
    // page group: slab
    //
main_Gradient_1_out_1 = 
    Gradient(
    main_Receiver_25_out_1,
    main_Gradient_1_in_2
    ) [instance: 1, cache: 1];
    // 
    // node Compute[4]: x = 42, y = 184, inputs = 2, label = Compute
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "mag($0)"
    // page group: slab
    // expression: value = mag(a)
    // name[2]: value = a
    //
main_Compute_4_out_1 = 
    Compute(
    main_Compute_4_in_1,
    main_Gradient_1_out_1
    ) [instance: 4, cache: 1];
    // 
    // node Integer[4]: x = 59, y = 277, inputs = 11, label = Integer
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Integer_4"
    // input[3]: defaulting = 0, visible = 0, type = 1, value = 1 
    // input[4]: defaulting = 1, visible = 0, type = 1, value = 0
    // input[5]: defaulting = 1, visible = 0, type = 1, value = 0
    // input[6]: defaulting = 1, visible = 0, type = 1, value = 2
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.00000
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 0
    // output[1]: visible = 1, type = 1, value = 1 
    // page group: slab
    //
    // 
    // node Inquire[1]: x = 138, y = 223, inputs = 3, label = Inquire
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "position gridcounts"
    // page group: slab
    //
main_Inquire_1_out_1 = 
    Inquire(
    main_Compute_4_out_1,
    main_Inquire_1_in_2,
    main_Inquire_1_in_3
    ) [instance: 1, cache: 1];
    // 
    // node Compute[14]: x = 161, y = 304, inputs = 3, label = Compute
    // input[1]: defaulting = 0, visible = 0, type = 32, value = " select($0,$1) -1"
    // page group: slab
    // expression: value =  select(counts,dimension) -1
    // name[2]: value = counts
    // name[3]: value = dimension
    //
main_Compute_14_out_1 = 
    Compute(
    main_Compute_14_in_1,
    main_Inquire_1_out_1,
    main_Integer_4_out_1
    ) [instance: 14, cache: 1];
    // 
    // node Sequencer[1]: x = 144, y = 385, inputs = 7, label = Sequencer
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Sequencer_1"
    // input[4]: defaulting = 0, visible = 1, type = 1, value = 1
    // input[5]: defaulting = 1, visible = 1, type = 1, value = 42
    // input[6]: defaulting = 1, visible = 0, type = 1, value = 1
    // input[7]: defaulting = 0, visible = 0, type = 16777217, value = { 1 42 1 1 42 1 }
    // page group: slab
    // vcr[1]: min = 1, max = 42, beg = 1, end = 42, cur = 13, inc = 1, loop = off, step = off, pal = off
    // window: position = (0.3359,0.8545), size = 0.2188x0.0781
    //
    main_Sequencer_1_in_3 = @frame;
main_Sequencer_1_out_1[cache: 2] = 
    Sequencer(
    main_Sequencer_1_in_1,
    main_Sequencer_1_in_2,
    main_Sequencer_1_in_3,
    main_Sequencer_1_in_4,
    main_Compute_14_out_1,
    main_Sequencer_1_in_6,
    main_Sequencer_1_in_7
    ) [instance: 1, cache: 1];
    // 
    // node Slab[2]: x = 18, y = 391, inputs = 4, label = Slab
    // input[4]: defaulting = 0, visible = 1, type = 1, value = 0
    // page group: slab
    //
main_Slab_2_out_1 = 
    Slab(
    main_Compute_4_out_1,
    main_Integer_4_out_1,
    main_Sequencer_1_out_1,
    main_Slab_2_in_4
    ) [instance: 2, cache: 1];
    // 
    // node Transmitter[18]: x = 108, y = 503, inputs = 1, label = slab
    // page group: slab
    //
slab = main_Slab_2_out_1;
    // 
    // node Receiver[26]: x = 36, y = 106, inputs = 1, label = slab
    // page group: contours
    //
main_Receiver_26_out_1[cache: 0] = slab;
    // 
    // node Transmitter[19]: x = 223, y = 508, inputs = 1, label = gradient
    // page group: slab
    //
gradient = main_Gradient_1_out_1;
    // 
    // node Receiver[27]: x = 332, y = 95, inputs = 1, label = gradient
    // page group: contours
    //
main_Receiver_27_out_1[cache: 0] = gradient;
    // 
    // node Colormap[3]: x = 191, y = 200, inputs = 19, label = Colormap
    // input[1]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.666667] [0.054487179 0.32631579] [0.092948718 0.063157895] [0.16666667 0.010526316] [0.2275641 0.0] [0.44230769 0.0] [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_3"
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 0.00017455303
    // input[8]: defaulting = 1, visible = 0, type = 5, value = 63.44146
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 20
    // input[12]: defaulting = 0, visible = 0, type = 16777221, value = { 0.00017455303 63.44146 }
    // input[17]: defaulting = 0, visible = 0, type = 5, value = 0.00017455303
    // input[18]: defaulting = 0, visible = 0, type = 5, value = 63.44146
    // page group: contours
    // window: position = (0.5250,0.0000), size = 0.4688x0.3574
    //
main_Colormap_3_out_1[cache: 2],
main_Colormap_3_out_2[cache: 2] = 
    Colormap(
    main_Colormap_3_in_1,
    main_Colormap_3_in_2,
    main_Colormap_3_in_3,
    main_Colormap_3_in_4,
    main_Colormap_3_in_5,
    main_Receiver_27_out_1,
    main_Colormap_3_in_7,
    main_Colormap_3_in_8,
    main_Colormap_3_in_9,
    main_Colormap_3_in_10,
    main_Colormap_3_in_11,
    main_Colormap_3_in_12,
    main_Colormap_3_in_13,
    main_Colormap_3_in_14,
    main_Colormap_3_in_15,
    main_Colormap_3_in_16,
    main_Colormap_3_in_17,
    main_Colormap_3_in_18,
    main_Colormap_3_in_19
    ) [instance: 3, cache: 1];
    // 
    // node Color[8]: x = 129, y = 299, inputs = 5, label = Color
    // page group: contours
    //
main_Color_8_out_1 = 
    Color(
    main_Receiver_26_out_1,
    main_Colormap_3_out_1,
    main_Color_8_in_3,
    main_Color_8_in_4,
    main_Color_8_in_5
    ) [instance: 8, cache: 1];
    // 
    // node Isosurface[4]: x = 8, y = 456, inputs = 6, label = Isosurface
    // input[2]: defaulting = 0, visible = 1, type = 16777221, value = {.1 .. 40.1 : 5}
    // input[3]: defaulting = 1, visible = 1, type = 1, value = 10
    // page group: contours
    //
main_Isosurface_4_out_1 = 
    Isosurface(
    main_Color_8_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[5]: x = 4, y = 531, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "black"
    // input[3]: defaulting = 0, visible = 1, type = 5, value = 1.000000
    // page group: contours
    //
main_Color_5_out_1 = 
    Color(
    main_Isosurface_4_out_1,
    main_Color_5_in_2,
    main_Color_5_in_3,
    main_Color_5_in_4,
    main_Color_5_in_5
    ) [instance: 5, cache: 1];
    // 
    // node Collect[13]: x = 143, y = 584, inputs = 2, label = Collect
    // page group: contours
    //
main_Collect_13_out_1 = 
    Collect(
    main_Color_5_out_1,
    main_Color_8_out_1
    ) [instance: 13, cache: 1];
    // 
    // node Transmitter[4]: x = 234, y = 612, inputs = 1, label = colored_slab
    // page group: contours
    //
colored_slab = main_Collect_13_out_1;
    // 
    // node Receiver[4]: x = 163, y = 25, inputs = 1, label = colored_slab
    // page group: image
    //
main_Receiver_4_out_1[cache: 0] = colored_slab;
    // 
    // node Collect[7]: x = 145, y = 111, inputs = 2, label = Collect
    // page group: image
    //
main_Collect_7_out_1 = 
    Collect(
    main_Receiver_1_out_1,
    main_Receiver_4_out_1
    ) [instance: 7, cache: 1];
    // 
    // node Isosurface[2]: x = 166, y = 352, inputs = 6, label = Isosurface
    // input[2]: defaulting = 0, visible = 1, type = 16777221, value = { -0.023 }
    // input[6]: defaulting = 0, visible = 1, type = 1, value = 1
    // page group: import
    //
main_Isosurface_2_out_1 = 
    Isosurface(
    main_Import_1_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 = 282, y = 390, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "gray"
    // page group: import
    //
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 Transmitter[3]: x = 181, y = 512, inputs = 1, label = n_potential
    // page group: import
    //
n_potential = main_Color_2_out_1;
    // 
    // node Receiver[3]: x = 270, y = 28, inputs = 1, label = n_potential
    // page group: image
    //
main_Receiver_3_out_1[cache: 0] = n_potential;
    // 
    // node Collect[3]: x = 214, y = 175, inputs = 2, label = Collect
    // page group: image
    //
main_Collect_3_out_1 = 
    Collect(
    main_Collect_7_out_1,
    main_Receiver_3_out_1
    ) [instance: 3, cache: 1];
    // 
    // node Selector[1]: x = 20, y = 207, inputs = 7, label = Selector
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Selector_1"
    // input[2]: defaulting = 0, visible = 0, type = 32, value = "negative potential" 
    // input[3]: defaulting = 0, visible = 0, type = 29, value = 3 
    // input[4]: defaulting = 1, visible = 1, type = 16777248, value = { "ball and stick" "gradient map" "negative potential" }
    // input[5]: defaulting = 1, visible = 0, type = 16777245, value = { 1 2 3 }
    // input[6]: defaulting = 1, visible = 0, type = 3, value = 0
    // output[1]: visible = 1, type = 29, value = 3 
    // output[2]: visible = 1, type = 32, value = "negative potential" 
    // page group: image
    //
    // 
    // node Switch[1]: x = 121, y = 268, inputs = 4, label = Switch
    // page group: image
    //
main_Switch_1_out_1 = 
    Switch(
    main_Selector_1_out_1,
    main_Receiver_1_out_1,
    main_Collect_7_out_1,
    main_Collect_3_out_1
    ) [instance: 1, cache: 1];
    // 
    // node Shade[1]: x = 140, y = 357, inputs = 7, label = Shade
    // input[3]: defaulting = 1, visible = 1, type = 32, value = "20"
    // input[4]: defaulting = 0, visible = 1, type = 5, value = .8
    // input[5]: defaulting = 0, visible = 1, type = 1, value = 20
    // page group: image
    //
main_Shade_1_out_1 = 
    Shade(
    main_Switch_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 ShowBox[8]: x = 48, y = 355, inputs = 1, label = ShowBox
    // page group: import
    //
main_ShowBox_8_out_1,
main_ShowBox_8_out_2 = 
    ShowBox(
    main_Import_1_out_1
    ) [instance: 8, cache: 1];
    // 
    // node Transmitter[16]: x = 62, y = 444, inputs = 1, label = box
    // page group: import
    //
box = main_ShowBox_8_out_1;
    // 
    // node Receiver[24]: x = 399, y = 403, inputs = 1, label = box
    // page group: image
    //
main_Receiver_24_out_1[cache: 0] = box;
    // 
    // node Collect[9]: x = 259, y = 463, inputs = 3, label = Collect
    // page group: image
    //
main_Collect_9_out_1 = 
    Collect(
    main_Shade_1_out_1,
    main_Caption_1_out_1,
    main_Receiver_24_out_1
    ) [instance: 9, cache: 1];
    // 
    // node Image[2]: x = 246, y = 537, inputs = 48, label = Image
    // input[1]: defaulting = 0, visible = 0, type = 67108863, value = "Image_2"
    // input[4]: defaulting = 0, visible = 0, type = 1, value = 1
    // input[5]: defaulting = 0, visible = 0, type = 8, value = [13.827 16.783 13.7]
    // input[6]: defaulting = 0, visible = 0, type = 8, value = [43.3311 29.8031 36.0601]
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 27.1061
    // input[8]: defaulting = 0, visible = 0, type = 1, value = 640
    // input[9]: defaulting = 0, visible = 0, type = 5, value = 0.751
    // input[10]: defaulting = 0, visible = 0, type = 8, value = [-0.2964 0.942001 -0.157422]
    // input[11]: defaulting = 0, visible = 0, type = 5, value = 38.1062
    // input[12]: defaulting = 0, visible = 0, type = 1, value = 1
    // 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.3359,0.3076), size = 0.5109x0.5117
    // internal caching: 1
    //
main_Image_2_out_1,
main_Image_2_out_2,
main_Image_2_out_3 = 
    Image(
    main_Image_2_in_1,
    main_Collect_9_out_1,
    main_Image_2_in_3,
    main_Image_2_in_4,
    main_Image_2_in_5,
    main_Image_2_in_6,
    main_Image_2_in_7,
    main_Image_2_in_8,
    main_Image_2_in_9,
    main_Image_2_in_10,
    main_Image_2_in_11,
    main_Image_2_in_12,
    main_Image_2_in_13,
    main_Image_2_in_14,
    main_Image_2_in_15,
    main_Image_2_in_16,
    main_Image_2_in_17,
    main_Image_2_in_18,
    main_Image_2_in_19,
    main_Image_2_in_20,
    main_Image_2_in_21,
    main_Image_2_in_22,
    main_Image_2_in_23,
    main_Image_2_in_24,
    main_Image_2_in_25,
    main_Image_2_in_26,
    main_Image_2_in_27,
    main_Image_2_in_28,
    main_Image_2_in_29,
    main_Image_2_in_30,
    main_Image_2_in_31,
    main_Image_2_in_32,
    main_Image_2_in_33,
    main_Image_2_in_34,
    main_Image_2_in_35,
    main_Image_2_in_36,
    main_Image_2_in_37,
    main_Image_2_in_38,
    main_Image_2_in_39,
    main_Image_2_in_40,
    main_Image_2_in_41,
    main_Image_2_in_42,
    main_Image_2_in_43,
    main_Image_2_in_44,
    main_Image_2_in_45,
    main_Image_2_in_46,
    main_Image_2_in_47,
    main_Image_2_in_48
    ) [instance: 2, cache: 1];
    //
    // decorator Annotate	pos=(62,46) size=545x28 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 77
    // annotation user: This page imports the data, creates an isosurface, and a box around the data.
    // annotation user_end: <NULL>
    // page group: import
    //
    // decorator Annotate	pos=(125,36) size=417x76 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 206
    // annotation user: This page computes the gradient of the field, computes the
    // annotation user: magnitude of the graident, and then sets up a data-driven
    // annotation user: sequencer to extract "slabs" of the three-dimensional
    // annotation user: field in the user-chosen dimension.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: slab
    //
    // decorator Annotate	pos=(210,357) size=404x60 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 145
    // annotation user: The slab is colored based using a colormap derived from
    // annotation user: the entire field (the transmitter "gradient"),  then
    // annotation user: contour lines are drawn on the slab.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: contours
    //
    // decorator Annotate	pos=(203,24) size=444x44 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 125
    // annotation user: A ball and stick model of the molecule is created, and then
    // annotation user: rotated and translated to align with the electron potential data.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: ball_stick
    //
    // decorator Annotate	pos=(295,179) size=341x92 style(Label), font=bold, value = <NULL>
    // annotation user_begin: 195
    // annotation user: The ball and stick model, the slab, and the 
    // annotation user: isosurface of the potential data are all
    // annotation user: collected together. The Switch module 
    // annotation user: allows the user to specify which portions of the 
    // annotation user: realization to show.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    // page group: image
// network: end of macro body
CacheScene("Image_2", main_Image_2_out_1, main_Image_2_out_2);
}
main_Import_2_in_1 = "npp";
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_AutoColor_1_in_2 = NULL;
main_AutoColor_1_in_3 = 1.000000;
main_AutoColor_1_in_4 = 0.400000;
main_AutoColor_1_in_5 = 0.700000;
main_AutoColor_1_in_6 = NULL;
main_AutoColor_1_in_7 = NULL;
main_AutoColor_1_in_8 = NULL;
main_AutoColor_1_in_9 = NULL;
main_AutoColor_1_in_10 = NULL;
main_AutoColor_1_out_1 = NULL;
main_Caption_1_in_1 = "Imide Electrostatic Potentials";
main_Caption_1_in_2 = [0.5, 0.95];
main_Caption_1_in_3 = NULL;
main_Caption_1_in_4 = NULL;
main_Caption_1_in_5 = NULL;
main_Caption_1_in_6 = 20;
main_Caption_1_in_7 = "variable";
main_Caption_1_in_8 = NULL;
main_Caption_1_in_9 = NULL;
main_Caption_1_out_1 = NULL;
main_Glyph_1_in_2 = NULL;
main_Glyph_1_in_3 = NULL;
main_Glyph_1_in_4 = 0.160000;
main_Glyph_1_in_5 = 0.600000;
main_Glyph_1_in_6 = NULL;
main_Glyph_1_in_7 = NULL;
main_Glyph_1_out_1 = NULL;
main_Tube_1_in_2 = 0.250000;
main_Tube_1_in_3 = NULL;
main_Tube_1_in_4 = NULL;
main_Tube_1_out_1 = NULL;
main_Color_3_in_2 = "steelblue";
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_2_out_1 = NULL;
main_Rotate_1_in_2 = "y";
main_Rotate_1_in_3 = 90.000000;
main_Rotate_1_in_4 = "x";
main_Rotate_1_in_5 = 115.000000;
main_Rotate_1_out_1 = NULL;
main_Translate_1_in_2 = [13.8, 16.3, 14];
main_Translate_1_out_1 = NULL;
main_Transmitter_1_out_1 = NULL;
main_Receiver_1_out_1 = NULL;
main_Import_1_in_1 = "imide_potential";
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_Transmitter_17_out_1 = NULL;
main_Receiver_25_out_1 = NULL;
main_Gradient_1_in_2 = NULL;
main_Gradient_1_out_1 = NULL;
main_Compute_4_in_1 = "mag($0)";
main_Compute_4_out_1 = NULL;
main_Integer_4_in_1 = "Integer_4";
main_Integer_4_in_2 = NULL;
main_Integer_4_in_3 = 1 ;
main_Integer_4_in_4 = NULL;
main_Integer_4_in_5 = NULL;
main_Integer_4_in_6 = NULL;
main_Integer_4_in_7 = NULL;
main_Integer_4_in_8 = NULL;
main_Integer_4_in_9 = NULL;
main_Integer_4_in_10 = NULL;
main_Integer_4_in_11 = NULL;
main_Integer_4_out_1 = 1 ;
main_Inquire_1_in_2 = "position gridcounts";
main_Inquire_1_in_3 = NULL;
main_Inquire_1_out_1 = NULL;
main_Compute_14_in_1 = " select($0,$1) -1";
main_Compute_14_out_1 = NULL;
main_Sequencer_1_in_1 = "Sequencer_1";
main_Sequencer_1_in_2 = NULL;
main_Sequencer_1_in_3 = NULL;
main_Sequencer_1_in_4 = 1;
main_Sequencer_1_in_6 = NULL;
main_Sequencer_1_in_7 = { 1 42 1 1 42 1 };
main_Sequencer_1_out_1 = NULL;

@startframe = 1;
@nextframe  = @startframe;
@endframe   = 42;
@deltaframe = 1;
main_Slab_2_in_4 = 0;
main_Slab_2_out_1 = NULL;
main_Transmitter_18_out_1 = NULL;
main_Receiver_26_out_1 = NULL;
main_Transmitter_19_out_1 = NULL;
main_Receiver_27_out_1 = NULL;
main_Colormap_3_in_1 = { [0.0 0.666667] [0.054487179 0.32631579] [0.092948718 0.063157895] [0.16666667 0.010526316] [0.2275641 0.0] [0.44230769 0.0] [1.0 0.0] };
main_Colormap_3_in_2 = { [0.0 1.0] [1.0 1.0] };
main_Colormap_3_in_3 = { [0.0 1.0] [1.0 1.0] };
main_Colormap_3_in_4 = { [0.0 1.0] [1.0 1.0] };
main_Colormap_3_in_5 = "Colormap_3";
main_Colormap_3_in_7 = NULL;
main_Colormap_3_in_8 = NULL;
main_Colormap_3_in_9 = NULL;
main_Colormap_3_in_10 = NULL;
main_Colormap_3_in_11 = NULL;
main_Colormap_3_in_12 = { 0.00017455303 63.44146 };
main_Colormap_3_in_13 = NULL;
main_Colormap_3_in_14 = NULL;
main_Colormap_3_in_15 = NULL;
main_Colormap_3_in_16 = NULL;
main_Colormap_3_in_17 = 0.00017455303;
main_Colormap_3_in_18 = 63.44146;
main_Colormap_3_in_19 = NULL;
main_Colormap_3_out_1 = NULL;
main_Color_8_in_3 = NULL;
main_Color_8_in_4 = NULL;
main_Color_8_in_5 = NULL;
main_Color_8_out_1 = NULL;
main_Isosurface_4_in_2 = {.1 .. 40.1 : 5};
main_Isosurface_4_in_3 = NULL;
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_5_in_2 = "black";
main_Color_5_in_3 = 1.000000;
main_Color_5_in_4 = NULL;
main_Color_5_in_5 = NULL;
main_Color_5_out_1 = NULL;
main_Collect_13_out_1 = NULL;
main_Transmitter_4_out_1 = NULL;
main_Receiver_4_out_1 = NULL;
main_Collect_7_out_1 = NULL;
main_Isosurface_2_in_2 = { -0.023 };
main_Isosurface_2_in_3 = NULL;
main_Isosurface_2_in_4 = NULL;
main_Isosurface_2_in_5 = NULL;
main_Isosurface_2_in_6 = 1;
main_Isosurface_2_out_1 = NULL;
main_Color_2_in_2 = "gray";
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_Transmitter_3_out_1 = NULL;
main_Receiver_3_out_1 = NULL;
main_Collect_3_out_1 = NULL;
main_Selector_1_in_1 = "Selector_1";
main_Selector_1_in_2 = "negative potential" ;
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_1 = 3 ;
main_Switch_1_out_1 = NULL;
main_Shade_1_in_2 = NULL;
main_Shade_1_in_3 = NULL;
main_Shade_1_in_4 = .8;
main_Shade_1_in_5 = 20;
main_Shade_1_in_6 = NULL;
main_Shade_1_in_7 = NULL;
main_Shade_1_out_1 = NULL;
main_ShowBox_8_out_1 = NULL;
main_Transmitter_16_out_1 = NULL;
main_Receiver_24_out_1 = NULL;
main_Collect_9_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_2_in_1 = "Image_2";
main_Image_2_in_3 = "X24,,";
main_Image_2_in_4 = 1;
main_Image_2_in_5 = [13.827 16.783 13.7];
main_Image_2_in_6 = [43.3311 29.8031 36.0601];
main_Image_2_in_7 = NULL;
main_Image_2_in_8 = 640;
main_Image_2_in_9 = 0.751;
main_Image_2_in_10 = [-0.2964 0.942001 -0.157422];
main_Image_2_in_11 = 38.1062;
main_Image_2_in_12 = 1;
main_Image_2_in_13 = NULL;
main_Image_2_in_14 = 1;
main_Image_2_in_15 = NULL;
main_Image_2_in_16 = NULL;
main_Image_2_in_17 = NULL;
main_Image_2_in_18 = NULL;
main_Image_2_in_19 = 0;
main_Image_2_in_20 = NULL;
main_Image_2_in_21 = NULL;
main_Image_2_in_22 = NULL;
main_Image_2_in_23 = NULL;
main_Image_2_in_25 = NULL;
main_Image_2_in_26 = NULL;
main_Image_2_in_27 = NULL;
main_Image_2_in_28 = NULL;
main_Image_2_in_29 = NULL;
main_Image_2_in_30 = NULL;
main_Image_2_in_31 = NULL;
main_Image_2_in_32 = NULL;
main_Image_2_in_33 = NULL;
main_Image_2_in_34 = NULL;
main_Image_2_in_35 = NULL;
main_Image_2_in_36 = NULL;
main_Image_2_in_37 = NULL;
main_Image_2_in_38 = NULL;
main_Image_2_in_39 = NULL;
main_Image_2_in_40 = NULL;
main_Image_2_in_41 = NULL;
main_Image_2_in_42 = NULL;
main_Image_2_in_43 = NULL;
main_Image_2_in_44 = NULL;
main_Image_2_in_45 = NULL;
main_Image_2_in_46 = NULL;
main_Image_2_in_47 = NULL;
main_Image_2_in_48 = NULL;
Executive("product version 3 1 4");
$sync

sequence main();
play;
