// // time: Wed Apr 9 15:25:08 1997 // // version: 3.1.1 (format), 3.1.4 (DX Beta) // // // MODULE main // // comment: This visual program shows you how to create connections (interpolation elements) for a set of scattered points. Choose "Open All Control Panels" from the Windows menu to open the control panel. There is a selector interactor which controls what you see: the original scattered points or the points connected (with triangles) using the Connect module. When the Connect module is used, the positions are exactly the same as the original positions. The original scattered points are shown as small magenta disks when the connected data set is shown. // comment: // comment: (See also AutoGrid.net and Regrid.net) // page assignment: connect order=4, windowed=0, showing=0 // page assignment: image order=5, windowed=0, showing=0 // page assignment: import order=2, windowed=0, showing=1 // page assignment: scattered order=3, windowed=0, showing=0 // workspace: width = 386, height = 322 // layout: snap = 0, width = 50, height = 50, align = UL // macro main( ) -> ( ) { // // node Import[1]: x = 157, y = 150, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "spreadsheet_scattered.general" // input[3]: defaulting = 1, visible = 1, type = 32, value = "general" // 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[31]: x = 171, y = 260, inputs = 1, label = imported // page group: import // imported = main_Import_1_out_1; // // node Receiver[47]: x = 130, y = 116, inputs = 1, label = imported // page group: connect // main_Receiver_47_out_1[cache: 0] = imported; // // node Connect[1]: x = 301, y = 181, inputs = 3, label = Connect // page group: connect // main_Connect_1_out_1 = Connect( main_Receiver_47_out_1, main_Connect_1_in_2, main_Connect_1_in_3 ) [instance: 1, cache: 1]; // // node AutoColor[4]: x = 229, y = 309, inputs = 10, label = AutoColor // page group: connect // main_AutoColor_4_out_1, main_AutoColor_4_out_2 = AutoColor( main_Connect_1_out_1, main_AutoColor_4_in_2, main_AutoColor_4_in_3, main_AutoColor_4_in_4, main_AutoColor_4_in_5, main_AutoColor_4_in_6, main_AutoColor_4_in_7, main_AutoColor_4_in_8, main_AutoColor_4_in_9, main_AutoColor_4_in_10 ) [instance: 4, cache: 1]; // // node Receiver[46]: x = 169, y = 143, inputs = 1, label = imported // page group: scattered // main_Receiver_46_out_1[cache: 0] = imported; // // node AutoGlyph[1]: x = 135, y = 222, inputs = 7, label = AutoGlyph // page group: scattered // main_AutoGlyph_1_out_1 = AutoGlyph( main_Receiver_46_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 AutoColor[5]: x = 146, y = 316, inputs = 10, label = AutoColor // page group: scattered // main_AutoColor_5_out_1, main_AutoColor_5_out_2 = AutoColor( main_AutoGlyph_1_out_1, main_AutoColor_5_in_2, main_AutoColor_5_in_3, main_AutoColor_5_in_4, main_AutoColor_5_in_5, main_AutoColor_5_in_6, main_AutoColor_5_in_7, main_AutoColor_5_in_8, main_AutoColor_5_in_9, main_AutoColor_5_in_10 ) [instance: 5, cache: 1]; // // node AutoGlyph[6]: x = 97, y = 274, inputs = 7, label = AutoGlyph // input[4]: defaulting = 0, visible = 1, type = 5, value = .2 // input[5]: defaulting = 0, visible = 1, type = 5, value = 1.00000 // page group: connect // main_AutoGlyph_6_out_1 = AutoGlyph( main_Receiver_47_out_1, main_AutoGlyph_6_in_2, main_AutoGlyph_6_in_3, main_AutoGlyph_6_in_4, main_AutoGlyph_6_in_5, main_AutoGlyph_6_in_6, main_AutoGlyph_6_in_7 ) [instance: 6, cache: 1]; // // node Selector[2]: x = 36, y = 99, inputs = 7, label = Selector // input[1]: defaulting = 0, visible = 0, type = 32, value = "Selector_2" // input[2]: defaulting = 0, visible = 0, type = 32, value = "using Connect module" // input[3]: defaulting = 0, visible = 0, type = 29, value = 2 // input[4]: defaulting = 1, visible = 1, type = 16777248, value = { "original scattered points" "using Connect module" } // 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 = "using Connect module" // page group: image // // // node Caption[2]: x = 344, y = 269, inputs = 9, label = Caption // input[6]: defaulting = 0, visible = 1, type = 1, value = 20 // input[7]: defaulting = 0, visible = 1, type = 32, value = "roman_tser" // page group: image // main_Caption_2_out_1 = Caption( main_Selector_2_out_2, main_Caption_2_in_2, main_Caption_2_in_3, main_Caption_2_in_4, main_Caption_2_in_5, main_Caption_2_in_6, main_Caption_2_in_7, main_Caption_2_in_8, main_Caption_2_in_9 ) [instance: 2, cache: 1]; // // node Color[6]: x = 134, y = 348, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "magenta" // page group: connect // main_Color_6_out_1 = Color( main_AutoGlyph_6_out_1, main_Color_6_in_2, main_Color_6_in_3, main_Color_6_in_4, main_Color_6_in_5 ) [instance: 6, cache: 1]; // // node ShowConnections[2]: x = 324, y = 310, inputs = 1, label = ShowConnections // page group: connect // main_ShowConnections_2_out_1 = ShowConnections( main_Connect_1_out_1 ) [instance: 2, cache: 1]; // // node Color[2]: x = 335, y = 393, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "black" // page group: connect // main_Color_2_out_1 = Color( main_ShowConnections_2_out_1, main_Color_2_in_2, main_Color_2_in_3, main_Color_2_in_4, main_Color_2_in_5 ) [instance: 2, cache: 1]; // // node Collect[3]: x = 221, y = 472, inputs = 3, label = Collect // page group: connect // main_Collect_3_out_1 = Collect( main_Color_6_out_1, main_AutoColor_4_out_1, main_Color_2_out_1 ) [instance: 3, cache: 1]; // // node Transmitter[32]: x = 179, y = 410, inputs = 1, label = scattered // page group: scattered // scattered = main_AutoColor_5_out_1; // // node Receiver[48]: x = 166, y = 99, inputs = 1, label = scattered // page group: image // main_Receiver_48_out_1[cache: 0] = scattered; // // node Transmitter[33]: x = 294, y = 561, inputs = 1, label = connected // page group: connect // connected = main_Collect_3_out_1; // // node Receiver[49]: x = 287, y = 97, inputs = 1, label = connected // page group: image // main_Receiver_49_out_1[cache: 0] = connected; // // node Switch[2]: x = 128, y = 277, inputs = 3, label = Switch // page group: image // main_Switch_2_out_1 = Switch( main_Selector_2_out_1, main_Receiver_48_out_1, main_Receiver_49_out_1 ) [instance: 2, cache: 1]; // // node Collect[5]: x = 176, y = 357, inputs = 2, label = Collect // page group: image // main_Collect_5_out_1 = Collect( main_Switch_2_out_1, main_Caption_2_out_1 ) [instance: 5, cache: 1]; // // node Image[3]: x = 173, y = 453, 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 = [1.98004 3.82937 0] // input[6]: defaulting = 0, visible = 0, type = 8, value = [1.98004 3.82937 9.40394] // input[7]: defaulting = 0, visible = 0, type = 5, value = 5.03957 // input[8]: defaulting = 0, visible = 0, type = 1, value = 348 // input[9]: defaulting = 0, visible = 0, type = 5, value = 1.234 // input[10]: defaulting = 0, visible = 0, type = 8, value = [0 1 0] // input[11]: defaulting = 1, visible = 0, type = 5, value = 30.0001 // input[12]: defaulting = 0, visible = 0, type = 1, value = 0 // input[14]: defaulting = 0, visible = 0, type = 1, value = 1 // input[15]: defaulting = 1, visible = 0, type = 32, value = "none" // input[16]: defaulting = 1, visible = 0, type = 32, value = "none" // input[17]: defaulting = 1, visible = 0, type = 1, value = 1 // input[18]: defaulting = 1, visible = 0, type = 1, value = 1 // input[19]: defaulting = 0, visible = 0, type = 3, value = 0 // input[29]: defaulting = 1, visible = 0, type = 3, value = 0 // page group: image // depth: value = 24 // window: position = (0.6547,0.0195), size = 0.2828x0.4873 // 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_5_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=(99,44) size=437x28 style(Label), font=bold, value = // annotation user_begin: 63 // annotation user: This page visualizes the original scattered points with glyphs. // annotation user_end: // page group: scattered // // decorator Annotate pos=(97,31) size=425x60 style(Label), font=bold, value = // annotation user_begin: 178 // annotation user: This page uses Connect to create connections between the // annotation user: scattered points. It then visualizes the connected field, the // annotation user: connections themselves, and the original scattered points. // annotation user_end: // resource *decorator.alignment:XmALIGNMENT_BEGINNING // page group: connect // // decorator Annotate pos=(120,16) size=448x44 style(Label), font=bold, value = // annotation user_begin: 106 // annotation user: This page allows the user to choose whether to see the original // annotation user: scattered points or the connected version. // annotation user_end: // resource *decorator.alignment:XmALIGNMENT_BEGINNING // page group: image // // decorator Annotate pos=(75,40) size=311x28 style(Label), font=bold, value = // annotation user_begin: 44 // annotation user: This page imports a set of scattered points. // annotation user_end: // page group: import // network: end of macro body CacheScene("Image_3", main_Image_3_out_1, main_Image_3_out_2); } main_Import_1_in_1 = "spreadsheet_scattered.general"; 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_31_out_1 = NULL; main_Receiver_47_out_1 = NULL; main_Connect_1_in_2 = NULL; main_Connect_1_in_3 = NULL; main_Connect_1_out_1 = NULL; main_AutoColor_4_in_2 = NULL; main_AutoColor_4_in_3 = NULL; main_AutoColor_4_in_4 = NULL; main_AutoColor_4_in_5 = NULL; main_AutoColor_4_in_6 = NULL; main_AutoColor_4_in_7 = NULL; main_AutoColor_4_in_8 = NULL; main_AutoColor_4_in_9 = NULL; main_AutoColor_4_in_10 = NULL; main_AutoColor_4_out_1 = NULL; main_Receiver_46_out_1 = NULL; main_AutoGlyph_1_in_2 = NULL; main_AutoGlyph_1_in_3 = NULL; main_AutoGlyph_1_in_4 = NULL; 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_AutoColor_5_in_2 = NULL; main_AutoColor_5_in_3 = NULL; main_AutoColor_5_in_4 = NULL; main_AutoColor_5_in_5 = NULL; main_AutoColor_5_in_6 = NULL; main_AutoColor_5_in_7 = NULL; main_AutoColor_5_in_8 = NULL; main_AutoColor_5_in_9 = NULL; main_AutoColor_5_in_10 = NULL; main_AutoColor_5_out_1 = NULL; main_AutoGlyph_6_in_2 = NULL; main_AutoGlyph_6_in_3 = NULL; main_AutoGlyph_6_in_4 = .2; main_AutoGlyph_6_in_5 = 1.00000; main_AutoGlyph_6_in_6 = NULL; main_AutoGlyph_6_in_7 = NULL; main_AutoGlyph_6_out_1 = NULL; main_Selector_2_in_1 = "Selector_2"; main_Selector_2_in_2 = "using Connect module" ; main_Selector_2_in_3 = 2 ; 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 = 2 ; main_Selector_2_out_2 = "using Connect module" ; main_Caption_2_in_2 = NULL; main_Caption_2_in_3 = NULL; main_Caption_2_in_4 = NULL; main_Caption_2_in_5 = NULL; main_Caption_2_in_6 = 20; main_Caption_2_in_7 = "roman_tser"; main_Caption_2_in_8 = NULL; main_Caption_2_in_9 = NULL; main_Caption_2_out_1 = NULL; main_Color_6_in_2 = "magenta"; main_Color_6_in_3 = NULL; main_Color_6_in_4 = NULL; main_Color_6_in_5 = NULL; main_Color_6_out_1 = NULL; main_ShowConnections_2_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_Collect_3_out_1 = NULL; main_Transmitter_32_out_1 = NULL; main_Receiver_48_out_1 = NULL; main_Transmitter_33_out_1 = NULL; main_Receiver_49_out_1 = NULL; main_Switch_2_out_1 = NULL; main_Collect_5_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 = [1.98004 3.82937 0]; main_Image_3_in_6 = [1.98004 3.82937 9.40394]; main_Image_3_in_7 = 5.03957; main_Image_3_in_8 = 348; main_Image_3_in_9 = 1.234; 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 = NULL; 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();