#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! DEFAULT_MACRO FILE_NAME C:\Documents and Settings\dbagh\Desktop\maze.pdf DEFAULT_MACRO DIMENSIONS 3D DEFAULT_MACRO CURVY Curvy DEFAULT_MACRO CELLSIZE 15 DEFAULT_MACRO WIDTH 600 DEFAULT_MACRO HEIGHT 600 #! START_HEADER #! END_HEADER LOG_TIMINGS YES DEFAULT_MACRO WB_CURRENT_CONTEXT DEFAULT_MACRO MazeGenerator_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(MazeGenerator_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(MazeGenerator_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(MazeGenerator_WORKSPACE_NAME)_INPUT Input Splitter" INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_INPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_INPUT" # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- Tcl2 proc $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_doFetch {} { FME_SetAttribute {_cellsize} [FME_DecodeText {$($(MazeGenerator_WORKSPACE_NAME)_CELLSIZE)}] } FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_INPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_OUTPUT" @Tcl2($(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_doFetch) # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- Tcl2 proc $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_2_doFetch {} { FME_SetAttribute {_curvature} [FME_DecodeText {$($(MazeGenerator_WORKSPACE_NAME)_CURVY)}] } FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_2 INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_OUTPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_2_OUTPUT" @Tcl2($(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_2_doFetch) # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- Tcl2 proc $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_3_doFetch {} { FME_SetAttribute {_dimensionality} [FME_DecodeText {$($(MazeGenerator_WORKSPACE_NAME)_DIMENSIONS)}] } FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_3 INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_2_OUTPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_3_OUTPUT" @Tcl2($(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_3_doFetch) # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- Tcl2 proc $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_4_doFetch {} { FME_SetAttribute {_height} [FME_DecodeText {$($(MazeGenerator_WORKSPACE_NAME)_HEIGHT)}] } FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_4 INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_3_OUTPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_4_OUTPUT" @Tcl2($(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_4_doFetch) # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- Tcl2 proc $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_5_doFetch {} { FME_SetAttribute {_width} [FME_DecodeText {$($(MazeGenerator_WORKSPACE_NAME)_WIDTH)}] } FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_5 INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_4_OUTPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_5_OUTPUT" @Tcl2($(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_5_doFetch) # ------------------------------------------------------------------------- Lookup "$(MazeGenerator_WORKSPACE_NAME)_ValueMapper_LOOKUP_TABLE" Curvy 1 Straight 0 "" "" ENCODED FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_ValueMapper INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ParameterFetcher_5_OUTPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ValueMapper_OUTPUT" _curvature @Lookup($(MazeGenerator_WORKSPACE_NAME)_ValueMapper_LOOKUP_TABLE,_curvature,FORWARD|ENCODED_ATTR) # ------------------------------------------------------------------------- Lookup "$(MazeGenerator_WORKSPACE_NAME)_ValueMapper_2_LOOKUP_TABLE" 3D 1 2D 0 "" "" ENCODED FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_ValueMapper_2 INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ValueMapper_OUTPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ValueMapper_2_OUTPUT" _dimensionality @Lookup($(MazeGenerator_WORKSPACE_NAME)_ValueMapper_2_LOOKUP_TABLE,_dimensionality,FORWARD|ENCODED_ATTR) # ------------------------------------------------------------------------- Tcl2 set {$(MazeGenerator_WORKSPACE_NAME)_Concatenator_valList} [split http:davidbau.comgeneratedmaze.pdf?w=,&_width,h=,&_height,cell=,&_cellsize,count=1curve=,&_curvature,cross=,&_dimensionality,tube=0.5m=20wall=0.1 ,]; # We use TCL here instead of @Concatenate because TCL is more flexible. Tcl2 proc $(MazeGenerator_WORKSPACE_NAME)_Concatenator_concatter {} { global {$(MazeGenerator_WORKSPACE_NAME)_Concatenator_valList}; set val {}; foreach {valEnc} [set {$(MazeGenerator_WORKSPACE_NAME)_Concatenator_valList}] { append val [FME_DecodeTextOrAttr $valEnc]; }; FME_SetAttribute {_url} $val; } FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_Concatenator INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_ValueMapper_2_OUTPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_Concatenator_OUTPUT" @Tcl2($(MazeGenerator_WORKSPACE_NAME)_Concatenator_concatter) # ------------------------------------------------------------------------- HTTPRequest $(MazeGenerator_WORKSPACE_NAME)_HTTPFetcher_http_request REQUEST_HEADER HTTP_USERNAME "" HTTP_PASSWORD "" HTTP_AUTHMETHOD Basic PROXY_URL PROXY_PORT PROXY_USERNAME "" PROXY_PASSWORD "" PROXY_AUTHMETHOD Basic USE_RECV_HEADER_ENCODING No CONTINUE_ON_ERROR No MACRO $(MazeGenerator_WORKSPACE_NAME)_HTTPFetcher_true_url &_url INCLUDE [ if { [string first {&} {&_url}] == 0 } { append macroLine {MACRO $(MazeGenerator_WORKSPACE_NAME)_HTTPFetcher_true_url } [string range {&_url} 1 end]; puts $macroLine; }; ] FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_HTTPFetcher INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_Concatenator_OUTPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_HTTPFetcher_OUTPUT" @Http( GET, $($(MazeGenerator_WORKSPACE_NAME)_HTTPFetcher_true_url), _pdf, $(MazeGenerator_WORKSPACE_NAME)_HTTPFetcher_http_request ) # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_AttributeFileWriter INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_HTTPFetcher_OUTPUT" OUTPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_AttributeFileWriter_OUTPUT" @File(DestWriteSrcRead,_pdf,"$($(MazeGenerator_WORKSPACE_NAME)_FILE_NAME)") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_Logger_Logger INPUT FEATURE_TYPE "$(MazeGenerator_WORKSPACE_NAME)_AttributeFileWriter_OUTPUT" OUTPUT FEATURE_TYPE * @FeatureType("") @Log("PDF maze was successfully generated",0,0) @FeatureType(__NUKE_LOGGED__) FACTORY_DEF * TeeFactory FACTORY_NAME $(MazeGenerator_WORKSPACE_NAME)_Logger_Nuker INPUT FEATURE_TYPE __NUKE_LOGGED__ INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(MazeGenerator_WORKSPACE_NAME))}]