// // time: Thu May 19 10:00:37 1994 // // version: 2.0.1 // // MODULE main // CATEGORY Macros // workspace: width = 1834, height = 1787 // layout: snap = 0, width = 50, height = 50, align = CC // macro main( ) -> ( ) { // // node Construct[1]: x = 29, y = 41, inputs = 4, label = Make a stripe for the flag // input[1]: defaulting = 0, visible = 1, type = 16777224, value = {[0, 0]} // input[2]: defaulting = 0, visible = 1, type = 16777224, value = {[10, 2]} // input[3]: defaulting = 0, visible = 1, type = 8, value = [2, 2] // input[4]: defaulting = 0, visible = 1, type = 16777245, value = {1} // main_Construct_1_out_1 = Construct( main_Construct_1_in_1, main_Construct_1_in_2, main_Construct_1_in_3, main_Construct_1_in_4 ) [instance: 1, cache: 1]; // // node Sequencer[1]: x = 443, y = 589, inputs = 7, label = Sequencer // input[1]: defaulting = 0, visible = 0, type = 32, value = "Sequencer_1" // input[4]: defaulting = 1, visible = 1, type = 1, value = 0 // input[5]: defaulting = 1, visible = 1, type = 1, value = 100 // input[6]: defaulting = 1, visible = 0, type = 1, value = 1 // input[7]: defaulting = 0, visible = 0, type = 16777217, value = { 0 100 1 0 10 1 } // main_Sequencer_1_out_1 = @frame; // // node Scalar[1]: x = 463, y = 674, inputs = 11, label = Scalar // input[1]: defaulting = 0, visible = 0, type = 32, value = "Scalar_1" // input[3]: defaulting = 1, visible = 0, type = 5, value = 0.110000 // input[4]: defaulting = 0, visible = 0, type = 3, value = 0 // input[5]: defaulting = 1, visible = 0, type = 5, value = 0.0100000 // input[6]: defaulting = 1, visible = 0, type = 5, value = 0.500000 // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.0 // input[9]: defaulting = 1, visible = 0, type = 1, value = 2 // output[1]: visible = 1, type = 5, value = 0.110000 // // // node Scalar[2]: x = 477, y = 763, inputs = 11, label = Scalar // input[1]: defaulting = 0, visible = 0, type = 32, value = "Scalar_2" // input[3]: defaulting = 1, visible = 0, type = 5, value = 0.540000 // input[4]: defaulting = 0, visible = 0, type = 3, value = 0 // input[5]: defaulting = 1, visible = 0, type = 5, value = 0.100000 // input[6]: defaulting = 1, visible = 0, type = 5, value = 1.0 // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.0 // input[9]: defaulting = 1, visible = 0, type = 1, value = 2 // output[1]: visible = 1, type = 5, value = 0.540000 // // // node Construct[2]: x = 28, y = 643, inputs = 4, label = make flagpole // input[1]: defaulting = 0, visible = 1, type = 16777224, value = {[0, -2, 0]} // input[2]: defaulting = 0, visible = 1, type = 16777224, value = {[1, 2.9, 1]} // input[3]: defaulting = 0, visible = 1, type = 8, value = [1, 2, 1] // input[4]: defaulting = 0, visible = 1, type = 16777245, value = {1} // main_Construct_2_out_1 = Construct( main_Construct_2_in_1, main_Construct_2_in_2, main_Construct_2_in_3, main_Construct_2_in_4 ) [instance: 2, cache: 1]; // // node Construct[3]: x = 600, y = 129, inputs = 4, label = Construct // input[1]: defaulting = 0, visible = 1, type = 16777224, value = {[5, 4, 0]} // input[2]: defaulting = 0, visible = 1, type = 16777224, value = {[1, 1, 1]} // input[3]: defaulting = 0, visible = 1, type = 8, value = [1, 1, 1] // input[4]: defaulting = 0, visible = 1, type = 16777245, value = {2} // main_Construct_3_out_1 = Construct( main_Construct_3_in_1, main_Construct_3_in_2, main_Construct_3_in_3, main_Construct_3_in_4 ) [instance: 3, cache: 1]; // // node Color[1]: x = 15, y = 141, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "red" // main_Color_1_out_1 = Color( main_Construct_1_out_1, main_Color_1_in_2, main_Color_1_in_3, main_Color_1_in_4, main_Color_1_in_5 ) [instance: 1, cache: 1]; // // node Color[2]: x = 160, y = 140, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "white" // main_Color_2_out_1 = Color( main_Construct_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 Color[3]: x = 299, y = 139, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "yellow" // main_Color_3_out_1 = Color( main_Construct_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 Color[4]: x = 442, y = 134, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "green" // main_Color_4_out_1 = Color( main_Construct_1_out_1, main_Color_4_in_2, main_Color_4_in_3, main_Color_4_in_4, main_Color_4_in_5 ) [instance: 4, cache: 1]; // // node Tube[1]: x = 39, y = 730, inputs = 4, label = Tube // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.100000 // main_Tube_1_out_1 = Tube( main_Construct_2_out_1, main_Tube_1_in_2, main_Tube_1_in_3, main_Tube_1_in_4 ) [instance: 1, cache: 1]; // // node AutoGlyph[1]: x = 576, y = 239, inputs = 7, label = AutoGlyph // input[2]: defaulting = 0, visible = 1, type = 5, value = 1.000000 // input[4]: defaulting = 0, visible = 1, type = 5, value = 1.500000 // main_AutoGlyph_1_out_1 = AutoGlyph( main_Construct_3_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 Translate[1]: x = 194, y = 225, inputs = 2, label = Translate // input[2]: defaulting = 0, visible = 1, type = 8, value = [0, 2, 0] // main_Translate_1_out_1 = Translate( main_Color_2_out_1, main_Translate_1_in_2 ) [instance: 1, cache: 1]; // // node Translate[2]: x = 313, y = 225, inputs = 2, label = Translate // input[2]: defaulting = 0, visible = 1, type = 8, value = [0, 4, 0] // main_Translate_2_out_1 = Translate( main_Color_3_out_1, main_Translate_2_in_2 ) [instance: 2, cache: 1]; // // node Translate[3]: x = 438, y = 229, inputs = 2, label = Translate // input[2]: defaulting = 0, visible = 1, type = 8, value = [0, 6, 0] // main_Translate_3_out_1 = Translate( main_Color_4_out_1, main_Translate_3_in_2 ) [instance: 3, cache: 1]; // // node Color[5]: x = 37, y = 819, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "tan" // main_Color_5_out_1 = Color( main_Tube_1_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 Color[6]: x = 590, y = 345, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 8, value = [0.1, 0.1, 1] // main_Color_6_out_1 = Color( main_AutoGlyph_1_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 Collect[1]: x = 239, y = 359, inputs = 5, label = make flag // main_Collect_1_out_1 = Collect( main_Color_1_out_1, main_Translate_1_out_1, main_Translate_2_out_1, main_Translate_3_out_1, main_Color_6_out_1 ) [instance: 1, cache: 1]; // // node AutoCamera[1]: x = 163, y = 454, inputs = 9, label = Note 100x80 resolution // input[3]: defaulting = 0, visible = 1, type = 5, value = 10.000000 // input[4]: defaulting = 0, visible = 1, type = 1, value = 100 // input[5]: defaulting = 0, visible = 1, type = 5, value = 0.800000 // main_AutoCamera_1_out_1 = AutoCamera( main_Collect_1_out_1, main_AutoCamera_1_in_2, main_AutoCamera_1_in_3, main_AutoCamera_1_in_4, main_AutoCamera_1_in_5, main_AutoCamera_1_in_6, main_AutoCamera_1_in_7, main_AutoCamera_1_in_8, main_AutoCamera_1_in_9 ) [instance: 1, cache: 1]; // // node Render[1]: x = 58, y = 463, inputs = 3, label = convert flag to an image with 100x80 resolution // main_Render_1_out_1 = Render( main_Collect_1_out_1, main_AutoCamera_1_out_1, main_Render_1_in_3 ) [instance: 1, cache: 1]; // // node Transmitter[1]: x = 48, y = 547, inputs = 1, label = flag_IMAGE // flag_IMAGE = main_Render_1_out_1; // // node Display[3]: x = 214, y = 552, inputs = 4, label = Display // // depth: value = 8 Display( main_Render_1_out_1, main_Display_3_in_2, main_Display_3_in_3, main_Display_3_in_4 ) [instance: 3, cache: 1]; // // node Receiver[1]: x = 227, y = 649, inputs = 1, label = flag_IMAGE // main_Receiver_1_out_1 = flag_IMAGE; // // node Mark[1]: x = 257, y = 721, inputs = 2, label = parametric motion of image // input[2]: defaulting = 0, visible = 1, type = 32, value = "positions" // main_Mark_1_out_1 = Mark( main_Receiver_1_out_1, main_Mark_1_in_2 ) [instance: 1, cache: 1]; // // node Compute[1]: x = 330, y = 783, inputs = 5, label = move flag -- factors of .01 scale 100x80 image size to unity. // input[1]: defaulting = 0, visible = 0, type = 32, value = "[$0.x*.01, $0.y*.01, .001*$0.x*sin($0.x*$2-$1*$3)]" // // expression: value = [a.x*.01, a.y*.01, .001*a.x*sin(a.x*wavelength-seq*freq)] // name[2]: value = a // name[3]: value = seq // name[4]: value = wavelength // name[5]: value = freq main_Compute_1_out_1 = Compute( main_Compute_1_in_1, main_Mark_1_out_1, main_Sequencer_1_out_1, main_Scalar_1_out_1, main_Scalar_2_out_1 ) [instance: 1, cache: 1]; // // node Unmark[1]: x = 293, y = 870, inputs = 2, label = Unmark // input[2]: defaulting = 0, visible = 1, type = 32, value = "positions" // main_Unmark_1_out_1 = Unmark( main_Compute_1_out_1, main_Unmark_1_in_2 ) [instance: 1, cache: 1]; // // node Collect[2]: x = 162, y = 932, inputs = 2, label = flag+flagpole // main_Collect_2_out_1 = Collect( main_Color_5_out_1, main_Unmark_1_out_1 ) [instance: 2, cache: 1]; // // node Normals[1]: x = 197, y = 1019, inputs = 2, label = Normals // main_Normals_1_out_1 = Normals( main_Collect_2_out_1, main_Normals_1_in_2 ) [instance: 1, cache: 1]; // // node Image[2]: x = 287, y = 1064, inputs = 35, label = Image // input[1]: defaulting = 0, visible = 0, type = 1, value = 2 // input[4]: defaulting = 0, visible = 0, type = 8, value = [0.277288, 0.364141, 0.07883] // input[5]: defaulting = 0, visible = 0, type = 8, value = [0.64834, 6.56645, 5.7149] // input[6]: defaulting = 0, visible = 0, type = 5, value = 1.759190 // input[7]: defaulting = 0, visible = 0, type = 1, value = 121 // input[8]: defaulting = 0, visible = 0, type = 5, value = 0.459000 // input[9]: defaulting = 0, visible = 0, type = 8, value = [0.00632, 0.672296, -0.740255] // input[22]: defaulting = 0, visible = 0, type = 1, value = 0 // input[23]: defaulting = 0, visible = 0, type = 5, value = 30.000000 // input[24]: defaulting = 0, visible = 0, type = 1, value = 1 // input[25]: defaulting = 0, visible = 0, type = 32, value = "none" // input[26]: defaulting = 0, visible = 0, type = 32, value = "none" // input[27]: defaulting = 0, visible = 0, type = 1, value = 1 // input[28]: defaulting = 0, visible = 0, type = 1, value = 1 // input[29]: defaulting = 0, visible = 0, type = 3, value = 1 // // depth: value = 8 main_Image_2_out_1, main_Image_2_out_2 = Image( main_Image_2_in_1, main_Normals_1_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 ) [instance: 2, cache: 1]; // network: end of macro body } main_Construct_1_in_1 = {[0, 0]}; main_Construct_1_in_2 = {[10, 2]}; main_Construct_1_in_3 = [2, 2]; main_Construct_1_in_4 = {1}; main_Construct_1_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 = NULL; main_Sequencer_1_in_5 = NULL; main_Sequencer_1_in_6 = NULL; main_Sequencer_1_in_7 = { 0 100 1 0 10 1 }; main_Sequencer_1_out_1 = NULL; @startframe = 0; @nextframe = @startframe; @endframe = 10; @deltaframe = 1; main_Scalar_1_in_1 = "Scalar_1"; main_Scalar_1_in_2 = NULL; main_Scalar_1_in_3 = NULL; main_Scalar_1_in_4 = 0; main_Scalar_1_in_5 = NULL; main_Scalar_1_in_6 = NULL; main_Scalar_1_in_7 = NULL; main_Scalar_1_in_8 = NULL; main_Scalar_1_in_9 = NULL; main_Scalar_1_in_10 = NULL; main_Scalar_1_in_11 = NULL; main_Scalar_1_out_1 = 0.110000; main_Scalar_2_in_1 = "Scalar_2"; main_Scalar_2_in_2 = NULL; main_Scalar_2_in_3 = NULL; main_Scalar_2_in_4 = 0; main_Scalar_2_in_5 = NULL; main_Scalar_2_in_6 = NULL; main_Scalar_2_in_7 = NULL; main_Scalar_2_in_8 = NULL; main_Scalar_2_in_9 = NULL; main_Scalar_2_in_10 = NULL; main_Scalar_2_in_11 = NULL; main_Scalar_2_out_1 = 0.540000; main_Construct_2_in_1 = {[0, -2, 0]}; main_Construct_2_in_2 = {[1, 2.9, 1]}; main_Construct_2_in_3 = [1, 2, 1]; main_Construct_2_in_4 = {1}; main_Construct_2_out_1 = NULL; main_Construct_3_in_1 = {[5, 4, 0]}; main_Construct_3_in_2 = {[1, 1, 1]}; main_Construct_3_in_3 = [1, 1, 1]; main_Construct_3_in_4 = {2}; main_Construct_3_out_1 = NULL; main_Color_1_in_2 = "red"; main_Color_1_in_3 = NULL; main_Color_1_in_4 = NULL; main_Color_1_in_5 = NULL; main_Color_1_out_1 = NULL; main_Color_2_in_2 = "white"; 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_Color_3_in_2 = "yellow"; 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_Color_4_in_2 = "green"; 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_Tube_1_in_2 = 0.100000; main_Tube_1_in_3 = NULL; main_Tube_1_in_4 = NULL; main_Tube_1_out_1 = NULL; main_AutoGlyph_1_in_2 = 1.000000; main_AutoGlyph_1_in_3 = NULL; main_AutoGlyph_1_in_4 = 1.500000; main_AutoGlyph_1_in_5 = NULL; main_AutoGlyph_1_in_6 = NULL; main_AutoGlyph_1_in_7 = NULL; main_AutoGlyph_1_out_1 = NULL; main_Translate_1_in_2 = [0, 2, 0]; main_Translate_1_out_1 = NULL; main_Translate_2_in_2 = [0, 4, 0]; main_Translate_2_out_1 = NULL; main_Translate_3_in_2 = [0, 6, 0]; main_Translate_3_out_1 = NULL; main_Color_5_in_2 = "tan"; main_Color_5_in_3 = NULL; main_Color_5_in_4 = NULL; main_Color_5_in_5 = NULL; main_Color_5_out_1 = NULL; main_Color_6_in_2 = [0.1, 0.1, 1]; 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_Collect_1_out_1 = NULL; main_AutoCamera_1_in_2 = NULL; main_AutoCamera_1_in_3 = 10.000000; main_AutoCamera_1_in_4 = 100; main_AutoCamera_1_in_5 = 0.800000; main_AutoCamera_1_in_6 = NULL; main_AutoCamera_1_in_7 = NULL; main_AutoCamera_1_in_8 = NULL; main_AutoCamera_1_in_9 = NULL; main_AutoCamera_1_out_1 = NULL; main_Render_1_in_3 = NULL; main_Render_1_out_1 = NULL; main_Transmitter_1_out_1 = NULL; main_Display_3_in_2 = NULL; main_Display_3_in_4 = NULL; main_Receiver_1_out_1 = NULL; main_Mark_1_in_2 = "positions"; main_Mark_1_out_1 = NULL; main_Compute_1_in_1 = "[$0.x*.01, $0.y*.01, .001*$0.x*sin($0.x*$2-$1*$3)]"; main_Compute_1_out_1 = NULL; main_Unmark_1_in_2 = "positions"; main_Unmark_1_out_1 = NULL; main_Collect_2_out_1 = NULL; main_Normals_1_in_2 = NULL; main_Normals_1_out_1 = NULL; macro Image( useVector, object, where, to, from, width, resolution, aspect, up, options, AAenable = 1, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, RECenable = 1, RECfile, throttle, RECformat, perspective, viewAngle, buttonState = 1, buttonUpApprox = "none", buttonDownApprox = "none", buttonUpDensity = 1, buttonDownDensity = 1, renderMode = 1, backgroundColor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont) -> ( object, camera) { autoCamera = AutoCamera( object, "front", object, resolution, aspect, [0,1,0], perspective, viewAngle, backgroundColor) [instance: 1]; realCamera = Camera( to, from, width, resolution, aspect, up, perspective, viewAngle, backgroundColor) [instance: 1]; camera = Switch(useVector, autoCamera, realCamera)[instance:1]; AAobject = AutoAxes( object, camera, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont) [instance: 1]; object = Switch(AAenable, object, AAobject)[instance:2]; SWapproximation_options = Switch( buttonState, buttonUpApprox, buttonDownApprox) [instance: 3]; SWdensity_options = Switch( buttonState, buttonUpDensity, buttonDownDensity) [instance: 4]; HWapproximation_options = Format( "%s,%s", buttonDownApprox, buttonUpApprox) [instance: 1]; HWdensity_options = Format( "%d,%d", buttonDownDensity, buttonUpDensity) [instance: 1]; approximation_options = Switch(renderMode, SWapproximation_options, HWapproximation_options)[instance: 5]; density_options = Switch(renderMode, SWdensity_options, HWdensity_options)[instance: 6]; renderModeString = Switch(renderMode, "software", "hardware")[instance: 7]; annoted_object = Options( object, "send boxes", 0, "rendering approximation", approximation_options, "render every", density_options, "rendering mode", renderModeString) [instance: 1]; NoRECobject, RECobject = Route(RECenable, annoted_object); Display( NoRECobject, camera, where, throttle) [instance: 1]; image = Render( RECobject, camera) [instance: 1]; Display( image, NULL, where, throttle) [instance: 2]; WriteImage( image, RECfile, RECformat) [instance: 1]; } main_Image_2_in_1 = 2; main_Image_2_in_4 = [0.277288, 0.364141, 0.07883]; main_Image_2_in_5 = [0.64834, 6.56645, 5.7149]; main_Image_2_in_6 = 1.759190; main_Image_2_in_7 = 121; main_Image_2_in_8 = 0.459000; main_Image_2_in_9 = [0.00632, 0.672296, -0.740255]; main_Image_2_in_10 = NULL; main_Image_2_in_11 = NULL; main_Image_2_in_12 = NULL; main_Image_2_in_13 = NULL; main_Image_2_in_14 = NULL; main_Image_2_in_15 = NULL; main_Image_2_in_16 = NULL; main_Image_2_in_17 = NULL; main_Image_2_in_19 = NULL; main_Image_2_in_20 = NULL; main_Image_2_in_21 = NULL; main_Image_2_in_22 = 0; main_Image_2_in_23 = 30.000000; main_Image_2_in_24 = 1; main_Image_2_in_25 = "none"; main_Image_2_in_26 = "none"; main_Image_2_in_27 = 1; main_Image_2_in_28 = 1; main_Image_2_in_29 = 1; 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; sequence main(); play;