#! /usr/local/bin/perl -w use lib '/home/vorugu/public_html'; use CGI; $query = new CGI; $post_url="http://webdb.cs.ndsu.nodak.edu/~vorugu/public_html/WWWIC/neuralN.cgi"; if ($query ->param()) { get_Main(); # show_VRML(); } else { create_form(); } sub start_page { print $query -> header(-type => 'text/html', -expires => 'now'); print $query -> start_html ( -title => ' Neural Network '); print ""; print "
"; print $query -> h1('Neural Network'); print "
"; } sub create_form { start_page(); print "\n"; print $query -> start_multipart_form; print ''; print ''; print '\n"; print "\n"; print ''; print ''; print '\n"; print "\n"; print ''; print ''; print '\n"; print "\n"; print ''; print ''; print '\n"; print "\n"; print ''; print ''; print '\n"; print "\n"; print ''; print ''; print '\n"; print "\n"; print ''; print ''; print '\n"; print "\n"; print ''; print ''; print '\n"; print "\n"; print ''; print "\n"; print '\n"; print "\n"; print ''; print '\n"; print '\n"; print "\n"; print $query ->end_form; print '
Patterns : '; print $query -> textfield ('this_pattern'); print "
Input : '; print $query -> textfield ('this_input'); print "
Output : '; print $query -> textfield ('this_output'); print "
Error : '; print $query -> textfield ('this_error'); print "
Scale Factor : '; print $query -> textfield ('scale'); print "
Calibaration Factor X-Axis: '; print $query -> textfield ('xcali'); print "
Calibaration Factor Z-Axis: '; print $query -> textfield ('zcali'); print "
Image Types : '; print $query -> radio_group(-name => 'image_ver', -values=>['Actual Image','Normalized Image'], -default=>'Actual Image', -linebreak=>'false', -labels=>\%labels); print "
Neural Net File :'; print $query -> filefield (-name => 'assgn', -default => 'null', -size => 30, -maxlength => 80 ); print "
'; print $query -> defaults ('Reset'); print "'; print $query -> submit (-name => 'submit', -value=> 'Submit'); print "
'; print '
'; print '
'; print '
'; } sub get_data { $pattern = $query->param('this_pattern'); $input = $query->param('this_input'); $output = $query->param('this_output'); $error = $query->param('this_error'); $assignment = $query->param('assgn'); $scale = $query->param('scale'); $image = $query->param('image_ver'); } sub this_data { do get_data(); open(OUT,">final.res") || die "cant open the file final.res \n"; $line = $_; $cnt = 0; while (<$assignment>) { $line = $_; @array [$cnt] = $line; $cnt++; if ($line = /\binput\b\D*(\d+)/){ { $input = $1} print OUT "$input\n";} if ($line = /\boutput\b\D*(\d+)/){ { $output = $1} print OUT "$output\n";} if ($line = /\bpatterns\b\D*(\d+)/){ { $pattern = $1} print OUT "$pattern\n";} } $k1 = $pattern*$input; $k2 = $pattern*$output; close(OUT); open(INPUT,">INPUT") || die "Cannot open FINAL\n"; open(OUTPUT,">OUTPUT") || die "Cannot open FINAL\n"; open(ERROR,">ERROR") || die "Cannot open FINAL\n"; $j1 = 0; $j2 = 0; $j3 = 0; $flag = 1; foreach $line (@array){ if ($line =~ /^[0-9]/) { $line=~ s/\n//; $line=~ s/\r//; @this_line = split(/\s+/,$line); $i=0; foreach $i (@this_line){ if ($flag eq 1){ $j1++; if ($j1 eq $k1){ printf INPUT "%4.2f", ($i)/$scale;} else{ printf INPUT "%4.2f",($i)/$scale; print INPUT ",";} } elsif ($flag eq 2){ $j2++; if ($j2 eq $k2){ printf OUTPUT "%4.2f", ($i)/$scale;} else{ printf OUTPUT "%4.2f",($i)/$scale; print OUTPUT ",";} } else { $j3++; if ($j3 eq $k2){ printf ERROR "%4.2f", ($i)/$scale;} else{ printf ERROR "%4.2f", ($i)/$scale; print ERROR ",";} } } if ($flag eq 1){ print INPUT "\n"; $flag = 2;} elsif($flag eq 2){ print OUTPUT "\n"; $flag = 3; } else{ print ERROR "\n"; $flag = 1;} } } close(ERROR); close(OUTPUT); close(INPUT); } sub get_Main{ $image = $query->param('image_ver'); if ($image eq 'Actual Image') { show_act_VRML(); } else { show_VRML(); } } sub show_act_VRML { do get_data(); do this_data(); do maxmin_data(); do get_diff(); $xcalib = $query->param('xcali'); $zcalib = $query->param('zcali'); $xspace = 10; $zspace = 1; $xDimension = ($input * $xspace); $zDimension = ($pattern * $zspace); $XNL = $xDimension/$xcalib ; $ZNL = $zDimension/$zcalib ; close(SH); print $query -> header(-type => 'x-world/x-vrml'); print "#VRML V2.0 utf8\n"; print "Background { \n"; print "groundAngle [0.9, 1.5, 1.57 ] \n"; print "groundColor [0 0.2 0.5,0 0.2 0.5,0 0.2 0.5,0 0.2 0.60]\n"; print "skyAngle [ 0.9, 1.5, 1.57 ] \n"; print "skyColor [0.21 0.18 0.66,0.2 0.44 0.85,0.51 0.81 0.95,0.77 0.8 0.82] \n"; print "}\n"; print "Viewpoint { position 0 0 0 \n"; print "description \"1\" \n" ; print "orientation 1 0 0 0 \n"; print "}\n"; print "Viewpoint { position 0 500 -100 \n"; print "description \"Bird's Eye View\" \n" ; print "orientation 1 0 0 -1.57 \n"; print "}\n"; print "Viewpoint { position -650 50 -350 \n"; print "description \"East View\" \n" ; print "orientation 0 1 0 -1.57 \n"; print "}\n"; print "Viewpoint { position 550 0 50 \n"; print "description \"West View\" \n" ; print "orientation 0 1 0 1.57 \n"; print "}\n"; print "Group {\n"; print "children [\n"; print "DEF HudGroup Collision {\n"; print "children [\n"; print "DEF HudProx ProximitySensor {\n"; print "center 0 1.8 30 \n"; print "size 200 200 200 \n"; print "} \n"; print "DEF HudXform Transform { \n"; print "children [ \n"; print "Transform { \n"; print "translation -1 -4 -15 \n"; print "children[ \n"; print "Shape { \n"; print "geometry Text { \n"; print "string \"Move\" \n"; print "fontStyle FontStyle { \n"; print "size 0.8 \n"; print "} \n"; print "} \n"; print "} \n"; print "] \n"; print "} \n"; print "Transform { \n"; print "translation -10 2 -15 \n"; print "children[ \n"; print "Shape { \n"; print "geometry Text { \n"; print "string \[\"Input: $input\"\]\n "; print "fontStyle FontStyle { \n"; print "size 0.8 \n"; print "} \n"; print "} \n"; print "} \n"; print "] \n"; print "} \n"; print "Transform { \n"; print "translation -10 1 -15 \n"; print "children[ \n"; print "Shape { \n"; print "geometry Text { \n"; print "string \[\"Patterns: $pattern\"\]\n "; print "fontStyle FontStyle { \n"; print "size 0.8 \n"; print "} \n"; print "} \n"; print "} \n"; print "] \n"; print "} \n"; print "Transform { \n"; print "translation 0 -5 -20 \n"; print "children [ \n"; print "DEF MovieCubeTouch TouchSensor{} \n"; print "Shape { \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 5 2 1 \n"; print "}\n"; print "}\n"; print "geometry Box {size 4 2 1} \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 1 0 0 } \n"; print "}\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "ROUTE HudProx.position_changed TO HudProx.center\n"; print "ROUTE HudProx.orientation_changed TO HudXform.rotation \n"; print "ROUTE HudProx.position_changed TO HudXform.translation \n"; print "}\n"; print "]\n"; print "}\n"; print "Group {\n"; print "children [\n"; print "Viewpoint { position 0 0 0 \n"; print "description \"1\" \n" ; print "orientation 1 0 0 0 \n"; print "}\n"; print "DEF HudGroup Collision {\n"; print "children [\n"; print "DEF HudProx1 ProximitySensor {\n"; print "center 0 1.8 30 \n"; print "size 200 200 200 \n"; print " } \n"; print " DEF HudXform1 Transform { \n"; print " children [ \n"; print "Transform { \n"; print "translation -5 -4 -15 \n"; print "children[ \n"; print "Shape { \n"; print "geometry Text { \n"; print "string \"Reset\" \n"; print "fontStyle FontStyle { \n"; print "size 0.8 \n"; print "} \n"; print "} \n"; print "} \n"; print "] \n"; print "} \n"; print "Transform { \n"; print "translation -5 -5 -20 \n"; print "children [ \n"; print "DEF ResetCubeTouch TouchSensor{} \n"; print "Shape { \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 5 2 1 \n"; print "}\n"; print "}\n"; print "geometry Box {size 4 2 1} \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 1 0 0 } \n"; print "}\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "ROUTE HudProx1.position_changed TO HudProx1.center\n"; print "ROUTE HudProx1.orientation_changed TO HudXform1.rotation\n"; print "ROUTE HudProx1.position_changed TO HudXform1.translation\n"; print "}\n"; print "]\n"; print "}\n"; print "Group {\n"; print "children [\n"; print "Viewpoint { position 0 0 0 \n"; print "description \"1\" \n" ; print "orientation 1 0 0 0 \n"; print "}\n"; print "DEF HudGroup Collision {\n"; print "children [\n"; print "DEF HudProx2 ProximitySensor {\n"; print "center 0 1.8 30 \n"; print "size 200 200 200 \n"; print " } \n"; print " DEF HudXform2 Transform { \n"; print " children [ \n"; print "Transform { \n"; print "translation 5 -4 -15 \n"; print "children[ \n"; print "Shape { \n"; print "geometry Text { \n"; print "string \"Show\" \n"; print "fontStyle FontStyle { \n"; print "size 0.8 \n"; print "} \n"; print "} \n"; print "} \n"; print "] \n"; print "} \n"; print "Transform { \n"; print "translation 5 -5 -20 \n"; print "children [ \n"; print "DEF ShowTouch TouchSensor{} \n"; print "DEF ShowTouch1 TouchSensor{} \n"; print "DEF ShowTouch2 TouchSensor{} \n"; print "Shape { \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 5 2 1 \n"; print "}\n"; print "}\n"; print "geometry Box {size 4 2 1} \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 1 0 0 } \n"; print "}\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "ROUTE HudProx2.position_changed TO HudProx2.center\n"; print "ROUTE HudProx2.orientation_changed TO HudXform2.rotation\n"; print "ROUTE HudProx2.position_changed TO HudXform2.translation\n"; print "}\n"; print "]\n"; print "}\n"; print "Transform {\n"; print "translation -10 -1 -150 \n"; print "children [ \n"; print "DEF TS TouchSensor { } \n"; print "Shape {\n"; print "appearance Appearance {\n"; print "material Material {\n"; print "diffuseColor 0 0 0.8 \n"; print "}\n"; print "}\n"; print "geometry ElevationGrid {\n"; print "xDimension $input \n"; print "zDimension $pattern\n"; print "xSpacing 10 \n"; print "zSpacing 1\n"; print "height [ \n"; open (IN,"){ print $line; # for ($i=0;$i<$input;$i++){ # print f "%4.2f", $INPUT_avg; # print ",";} # print "\n"; } } close(IN) || die "Uff!!! Cant close INPUT\n"; print "]\n"; print "}\n"; print "}\n"; print "DEF XT Transform {\n"; print "children [\n"; print "Shape{\n"; print "appearance Appearance{\n"; print "material Material {\n"; print "diffuseColor 0 0 1\n"; print "}\n"; print "}\n"; print "geometry DEF DEBUG_TEXT Text{\n"; print "string [\" \"]\n"; print "fontStyle FontStyle{\n"; print "style \"BOLD\"\n"; print "size 2.0\n"; print "spacing 1.5}\n"; print "}\n"; print "}\n"; print "]\n"; print "translation -5 8 100\n"; print "}\n"; print "DEF SWITCH_SCRIPT1 Script {\n"; print "field SFBool mySwitchOn FALSE\n"; print "field MFString offText [ \" \" ]\n"; print "field MFString onText [ \" Input Elevation Grid\" ]\n"; print "eventIn SFBool touchedSwitch\n"; print "eventOut MFString changedText\n"; print "url [ \"javascript:\n"; print "function touchedSwitch(ts) {\n"; print "if (ts) {if (mySwitchOn) {\n"; print "mySwitchOn = false\;\n"; print "changedText = offText\;\n"; print "} else {\n"; print "mySwitchOn = true\;\n"; print "changedText = onText\;\n"; print "}\n"; print "}\n"; print "}\n"; print "\"]\n"; print "}\n"; ##begin print "DEF IP1 Switch{\n"; print "whichChoice 1\n"; print "choice[\n"; print "Shape { appearance Appearance {\n"; print "material Material {\n"; print "emissiveColor 1 0 0 }}\n"; print "geometry IndexedLineSet {\n"; print "coord Coordinate {\n"; print "point[\n"; for ($i=0; $i<$ZNL; $i++){ $value = ($zDimension-$i * $zcalib); print "0 0 $value, $xDimension 0 $value, "; }; print "\n"; print "]\n"; print "}\n"; print "coordIndex [ \n"; for ($i=0; $i<($ZNL*2); $i = $i + 2) { $j = ($i+1); print "$i,$j,-1,"; }; print "\n"; print "]\n"; print "}\n"; print "}\n"; print "]}\n"; ## print "DEF IP2 Switch{\n"; print "whichChoice 1\n"; print "choice[\n"; print "Shape { appearance Appearance {\n"; print "material Material {\n"; print "emissiveColor 1 1 1 }}\n"; print "geometry IndexedLineSet {\n"; print "coord Coordinate {\n"; print "point [ 0 0 $zDimension , 0 50 $zDimension ]\n"; print "}\n"; print "coordIndex [0 1 -1]\n"; print "} }\n"; print "]}\n"; ## print "DEF IP3 Switch{\n"; print "whichChoice 1\n"; print "choice[\n"; print "Shape { appearance Appearance {\n"; print "material Material {\n"; print "emissiveColor 0 1 0 }}\n"; print "geometry IndexedLineSet {\n"; print "coord Coordinate {\n"; print "point[\n"; for ($i=0, $value=0; $value<$xDimension; $i++){ $value = ($i*$xcalib); #print "$value 0 50,$value 0 -$zDimension,"; print "$value 0 0,$value 0 $zDimension,"; }; print "\n"; print "]\n"; print "}\n"; print "coordIndex [ \n"; for ($i=0; $i<($XNL*2); $i = $i + 2) { $j = ($i+1); print "$i,$j,-1,"; }; print "\n"; print "]\n"; print "}\n"; print "}\n"; print "]}\n"; ###end print "DEF myScript Script{\n"; print "eventIn SFBool touched\n"; print "field SFBool lastValue FALSE\n"; print "eventOut SFInt32 choice\n"; print "url [ \"javascript:\n"; print "function touched(value) {\n"; print "if (value){\n"; print "lastValue=!lastValue\;\n"; print "if (lastValue)\n"; print "choice=0\;\n"; print "else\n"; print "choice=1\;\n"; print "}}\n"; print "\"]\n"; print "}\n"; ### print "]\n"; print "}\n"; print "ROUTE ShowTouch.isActive TO myScript.touched\n"; print "ROUTE myScript.choice TO IP1.set_whichChoice\n"; print "ROUTE ShowTouch1.isActive TO myScript.touched\n"; print "ROUTE myScript.choice TO IP2.set_whichChoice\n"; print "ROUTE ShowTouch2.isActive TO myScript.touched\n"; print "ROUTE myScript.choice TO IP3.set_whichChoice\n"; print "ROUTE TS.isActive TO SWITCH_SCRIPT1.touchedSwitch\n"; print "ROUTE SWITCH_SCRIPT1.changedText TO DEBUG_TEXT.set_string\n"; print "DEF InPutEleGrid Transform {\n"; print "translation -10 1 -200 \n"; print "children [ \n"; print "DEF ElevTimer0 TimeSensor {cycleInterval 10.0} \n"; print "DEF ElevPosInterP PositionInterpolator { \n"; print "key [0.25,0.5,0.75,1]\n"; print "keyValue [-10 1 -200, -10 4 -200,\n"; print "-10 4 -250,-10 1 -250] \n"; print "}\n"; print "DEF CubeBTimer TimeSensor { cycleInterval 7 }\n"; print "DEF CubeBPositionInterp PositionInterpolator {\n"; print "key [0.8]\n"; print "keyValue [-10 1 -200]\n"; print "}\n"; print "DEF TS1 TouchSensor { } \n"; print "Shape {\n"; print "appearance Appearance {\n"; print "material Material {\n"; print "diffuseColor 0.8 0 0 \n"; print "}\n"; print "}\n"; print "geometry ElevationGrid {\n"; print "xDimension $output \n"; print "zDimension $pattern \n"; print "xSpacing 10 \n"; print "zSpacing 1 \n"; print "height [ \n"; open (OUT,"){ print $line; # for ($i=0;$i<$input;$i++){ # print f "%4.2f",$OUTPUT_avg; # print ",";} # print "\n"; } } close(OUT) || die "Uff!!! Cant close OUTPUT\n"; print "]\n"; print "}\n"; print "}\n"; print "DEF XT1 Transform {\n"; print "children [\n"; print "Shape{\n"; print "appearance Appearance{\n"; print "material Material {\n"; print "diffuseColor 0 0 1\n"; print "}\n"; print "}\n"; print "geometry DEF DEBUG_TEXT1 Text{\n"; print "string [\" \"]\n"; print "fontStyle FontStyle{\n"; print "style \"BOLD\"\n"; print "size 2.0\n"; print "spacing 1.5}\n"; print "}\n"; print "}\n"; print "]\n"; print "translation -5 8 100\n"; print "}\n"; print "DEF SWITCH_SCRIPT2 Script {\n"; print "field SFBool mySwitchOn FALSE\n"; print "field MFString offText [ \" \" ]\n"; print "field MFString onText [ \" Expected Output Elevation Grid\" ]\n"; print "eventIn SFBool touchedSwitch\n"; print "eventOut MFString changedText\n"; print "url [ \"javascript:\n"; print "function touchedSwitch(ts) {\n"; print "if (ts) {if (mySwitchOn) {\n"; print "mySwitchOn = false\;\n"; print "changedText = offText\;\n"; print "} else {\n"; print "mySwitchOn = true\;\n"; print "changedText = onText\;\n"; print "}\n"; print "}\n"; print "}\n"; print "\"]\n"; print "}\n"; print "]\n"; print "}\n"; print "ROUTE TS1.isActive TO SWITCH_SCRIPT2.touchedSwitch\n"; print "ROUTE SWITCH_SCRIPT2.changedText TO DEBUG_TEXT1.set_string\n"; print "Transform {\n"; print "translation -10 1 -250 \n"; print "children [ \n"; print "DEF TS2 TouchSensor { } \n"; print "Shape {\n"; print "appearance Appearance {\n"; print "material Material {\n"; print "diffuseColor 0 0.8 0\n"; print "}\n"; print "}\n"; print "geometry ElevationGrid {\n"; print "xDimension $output \n"; print "zDimension $pattern \n"; print "xSpacing 10 \n"; print "zSpacing 1 \n"; print "height [ \n"; open (ERR,"){ print $line; # for ($i=0;$i<$input;$i++){ # print f "%4.2f",$ERROR_avg; # print ",";} # print "\n"; } } close(ERR) || die "Uff!!! Cant close OUTPUT\n"; print "]\n"; print "}\n"; print "}\n"; print "DEF XT2 Transform {\n"; print "children [\n"; print "Shape{\n"; print "appearance Appearance{\n"; print "material Material {\n"; print "diffuseColor 0 0 1\n"; print "}\n"; print "}\n"; print "geometry DEF DEBUG_TEXT2 Text{\n"; print "string [\" \"]\n"; print "fontStyle FontStyle{\n"; print "style \"BOLD\"\n"; print "size 2.0\n"; print "spacing 1.5}\n"; print "}\n"; print "}\n"; print "]\n"; print "translation -5 8 100\n"; print "}\n"; print "DEF SWITCH_SCRIPT2 Script {\n"; print "field SFBool mySwitchOn FALSE\n"; print "field MFString offText [ \" \" ]\n"; print "field MFString onText [ \" Actual Output Elevation Grid\" ]\n"; print "eventIn SFBool touchedSwitch\n"; print "eventOut MFString changedText\n"; print "url [ \"javascript:\n"; print "function touchedSwitch(ts) {\n"; print "if (ts) {if (mySwitchOn) {\n"; print "mySwitchOn = false\;\n"; print "changedText = offText\;\n"; print "} else {\n"; print "mySwitchOn = true\;\n"; print "changedText = onText\;\n"; print "}\n"; print "}\n"; print "}\n"; print "\"]\n"; print "}\n"; print "]\n"; print "}\n"; print "ROUTE TS2.isActive TO SWITCH_SCRIPT2.touchedSwitch\n"; print "ROUTE SWITCH_SCRIPT2.changedText TO DEBUG_TEXT2.set_string\n"; print "Transform {\n"; print "translation -10 35 -250 \n"; print "children [ \n"; print "DEF TS3 TouchSensor { } \n"; print "Shape {\n"; print "appearance Appearance {\n"; print "material Material {\n"; print "diffuseColor 1 0 1 \n"; print "}\n"; print "}\n"; print "geometry ElevationGrid {\n"; print "xDimension $output \n"; print "zDimension $pattern \n"; print "xSpacing 10 \n"; print "zSpacing 1 \n"; print "height [ \n"; open (DIFF,"){ print $line ; # for ($i=0;$i<$input;$i++){ # print f "%4.2f", $DIFF_avg; # print ",";} # print "\n"; } } close(DIFF) || die "Uff!!! Cant close OUTPUT\n"; print "]\n"; print "}\n"; print "}\n"; print "Shape { appearance Appearance {\n"; print "material Material {\n"; print "emissiveColor 1 0 1 }}\n"; print "geometry IndexedLineSet {\n"; print "coord Coordinate {\n"; print "point[\n"; open (SQR,") { $val = 250+$line; print "-10 35 -$val,\n"; } } print "]\n"; print "}\n"; print "coordIndex [ \n"; for ($i=0; $i<($ZNL*2); $i = $i + 2) { $j = ($i+1); print "$i,$j,-1,"; }; print "\n"; print "]\n"; print "}\n"; print "}\n"; print "DEF XT3 Transform {\n"; print "children [\n"; print "Shape{\n"; print "appearance Appearance{\n"; print "material Material {\n"; print "diffuseColor 0 0 1\n"; print "}\n"; print "}\n"; print "geometry DEF DEBUG_TEXT3 Text{\n"; print "string [\" \"]\n"; print "fontStyle FontStyle{\n"; print "style \"BOLD\"\n"; print "size 2.0\n"; print "spacing 1.5}\n"; print "}\n"; print "}\n"; print "]\n"; print "translation -5 8 100\n"; print "}\n"; print "DEF SWITCH_SCRIPT3 Script {\n"; print "field SFBool mySwitchOn FALSE\n"; print "field MFString offText [ \" \" ]\n"; print "field MFString onText [ \" Difference of Actual and Expected Output Elevation Grid\" ]\n"; print "eventIn SFBool touchedSwitch\n"; print "eventOut MFString changedText\n"; print "url [ \"javascript:\n"; print "function touchedSwitch(ts) {\n"; print "if (ts) {if (mySwitchOn) {\n"; print "mySwitchOn = false\;\n"; print "changedText = offText\;\n"; print "} else {\n"; print "mySwitchOn = true\;\n"; print "changedText = onText\;\n"; print "}\n"; print "}\n"; print "}\n"; print "\"]\n"; print "}\n"; print "]\n"; print "}\n"; print "ROUTE TS3.isActive TO SWITCH_SCRIPT3.touchedSwitch\n"; print "ROUTE SWITCH_SCRIPT3.changedText TO DEBUG_TEXT3.set_string\n"; print "ROUTE MovieCubeTouch.touchTime TO ElevTimer0.set_startTime\n"; print "ROUTE ElevTimer0.fraction_changed TO ElevPosInterP.set_fraction\n"; print "ROUTE ElevPosInterP.value_changed TO InPutEleGrid.set_translation\n"; print "ROUTE ResetCubeTouch.touchTime TO CubeBTimer.set_startTime\n"; print "ROUTE CubeBTimer.fraction_changed TO CubeBPositionInterp.set_fraction\n"; print "ROUTE CubeBPositionInterp.value_changed TO InPutEleGrid.set_translation\n"; } sub show_VRML { $xspace = 10; $zspace = 1.5; do get_data(); do this_data(); do maxmin_data(); do get_diff(); do get_squares(); print $query -> header(-type => 'x-world/x-vrml'); print "#VRML V2.0 utf8\n"; #{ print "Background { \n"; print "groundAngle [0.9, 1.5, 1.57 ] \n"; print "groundColor [0 0.2 0.5,0 0.2 0.5,0 0.2 0.5,0 0.2 0.60]\n"; print "skyAngle [ 0.9, 1.5, 1.57 ] \n"; print "skyColor [0.21 0.18 0.66,0.2 0.44 0.85,0.51 0.81 0.95,0.77 0.8 0.82] \n"; print "}\n"; print "Group {\n"; print "children [\n"; print "Viewpoint { position 0 0 0 \n"; print "description \"1\" \n" ; print "orientation 1 0 0 0 \n"; print "}\n"; print "DEF HudGroup Collision {\n"; print "children [\n"; print "DEF HudProx ProximitySensor {\n"; print "center 0 1.8 30 \n"; print "size 200 200 200 \n"; print "} \n"; print "DEF HudXform Transform { \n"; print "children [ \n"; print "Transform { \n"; print "translation -1 -4 -15 \n"; print "children[ \n"; print "Shape { \n"; print "geometry Text { \n"; print "string \"Move\" \n"; print "fontStyle FontStyle { \n"; print "size 0.8 \n"; print "} \n"; print "} \n"; print "} \n"; print "] \n"; print "} \n"; print "Transform { \n"; print "translation 0 -5 -20 \n"; print "children [ \n"; print "DEF MovieCubeTouch TouchSensor{} \n"; print "Shape { \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 5 2 1 \n"; print "}\n"; print "}\n"; print "geometry Box {size 4 2 1} \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 1 0 0 } \n"; print "}\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "ROUTE HudProx.position_changed TO HudProx.center\n"; print "ROUTE HudProx.orientation_changed TO HudXform.rotation \n"; print "ROUTE HudProx.position_changed TO HudXform.translation \n"; print "}\n"; print "]\n"; print "}\n"; print "Group {\n"; print "children [\n"; print "Viewpoint { position 0 0 0 \n"; print "description \"1\" \n" ; print "orientation 1 0 0 0 \n"; print "}\n"; print "DEF HudGroup Collision {\n"; print "children [\n"; print "DEF HudProx1 ProximitySensor {\n"; print "center 0 1.8 30 \n"; print "size 200 200 200 \n"; print " } \n"; print " DEF HudXform1 Transform { \n"; print " children [ \n"; print "Transform { \n"; print "translation -5 -4 -15 \n"; print "children[ \n"; print "Shape { \n"; print "geometry Text { \n"; print "string \"Reset\" \n"; print "fontStyle FontStyle { \n"; print "size 0.8 \n"; print "} \n"; print "} \n"; print "} \n"; print "] \n"; print "} \n"; print "Transform { \n"; print "translation -5 -5 -20 \n"; print "children [ \n"; print "DEF ResetCubeTouch TouchSensor{} \n"; print "Shape { \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 5 2 1 \n"; print "}\n"; print "}\n"; print "geometry Box {size 4 2 1} \n"; print "appearance Appearance { \n"; print "material Material { \n"; print "diffuseColor 1 0 0 } \n"; print "}\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "}\n"; print "]\n"; print "ROUTE HudProx1.position_changed TO HudProx1.center\n"; print "ROUTE HudProx1.orientation_changed TO HudXform1.rotation\n"; print "ROUTE HudProx1.position_changed TO HudXform1.translation\n"; print "}\n"; print "]\n"; print "}\n"; print "Transform {\n"; print "translation -10 1 -150 \n"; print "children [ \n"; print "DEF TS TouchSensor { } \n"; print "Shape {\n"; print "appearance Appearance {\n"; print "material Material {\n"; print "diffuseColor 0 0 0.8 \n"; print "}\n"; print "}\n"; print "geometry ElevationGrid {\n"; print "xDimension $input \n"; print "zDimension $pattern\n"; print "xSpacing 10 \n"; print "zSpacing 1\n"; print "height [ \n"; open (IN,"){ print $line; for ($i=0;$i<$input;$i++){ printf "%4.2f", $INPUT_avg; print ",";} print "\n"; } } close(IN) || die "Uff!!! Cant close INPUT\n"; print "]\n"; print "}\n"; print "}\n"; print "DEF XT Transform {\n"; print "children [\n"; print "Shape{\n"; print "appearance Appearance{\n"; print "material Material {\n"; print "diffuseColor 0 0 1\n"; print "}\n"; print "}\n"; print "geometry DEF DEBUG_TEXT Text{\n"; print "string [\" \"]\n"; print "fontStyle FontStyle{\n"; print "style \"BOLD\"\n"; print "size 2.0\n"; print "spacing 1.5}\n"; print "}\n"; print "}\n"; print "]\n"; print "translation -5 8 100\n"; print "}\n"; print "DEF SWITCH_SCRIPT1 Script {\n"; print "field SFBool mySwitchOn FALSE\n"; print "field MFString offText [ \" \" ]\n"; print "field MFString onText [ \" Input Elevation Grid\" ]\n"; print "eventIn SFBool touchedSwitch\n"; print "eventOut MFString changedText\n"; print "url [ \"javascript:\n"; print "function touchedSwitch(ts) {\n"; print "if (ts) {if (mySwitchOn) {\n"; print "mySwitchOn = false\;\n"; print "changedText = offText\;\n"; print "} else {\n"; print "mySwitchOn = true\;\n"; print "changedText = onText\;\n"; print "}\n"; print "}\n"; print "}\n"; print "\"]\n"; print "}\n"; print "]\n"; print "}\n"; print "ROUTE TS.isActive TO SWITCH_SCRIPT1.touchedSwitch\n"; print "ROUTE SWITCH_SCRIPT1.changedText TO DEBUG_TEXT.set_string\n"; print "DEF InPutEleGrid Transform {\n"; print "translation -10 1 -200 \n"; print "children [ \n"; print "DEF ElevTimer0 TimeSensor {cycleInterval 10.0} \n"; print "DEF ElevPosInterP PositionInterpolator { \n"; print "key [0.25,0.5,0.75,1]\n"; print "keyValue [-10 1 -200, -10 4 -200,\n"; print "-10 4 -250,-10 1 -250] \n"; print "}\n"; print "DEF CubeBTimer TimeSensor { cycleInterval 7 }\n"; print "DEF CubeBPositionInterp PositionInterpolator {\n"; print "key [0.8]\n"; print "keyValue [-10 1 -200]\n"; print "}\n"; print "DEF TS1 TouchSensor { } \n"; print "Shape {\n"; print "appearance Appearance {\n"; print "material Material {\n"; print "diffuseColor 0.8 0 0 \n"; print "}\n"; print "}\n"; print "geometry ElevationGrid {\n"; print "xDimension $output \n"; print "zDimension $pattern \n"; print "xSpacing 10 \n"; print "zSpacing 1 \n"; print "height [ \n"; open (OUT,"){ print $line; for ($i=0;$i<$input;$i++){ printf "%4.2f",$OUTPUT_avg; print ",";} print "\n"; } } close(OUT) || die "Uff!!! Cant close OUTPUT\n"; print "]\n"; print "}\n"; print "}\n"; print "DEF XT1 Transform {\n"; print "children [\n"; print "Shape{\n"; print "appearance Appearance{\n"; print "material Material {\n"; print "diffuseColor 0 0 1\n"; print "}\n"; print "}\n"; print "geometry DEF DEBUG_TEXT1 Text{\n"; print "string [\" \"]\n"; print "fontStyle FontStyle{\n"; print "style \"BOLD\"\n"; print "size 2.0\n"; print "spacing 1.5}\n"; print "}\n"; print "}\n"; print "]\n"; print "translation -5 8 100\n"; print "}\n"; print "DEF SWITCH_SCRIPT2 Script {\n"; print "field SFBool mySwitchOn FALSE\n"; print "field MFString offText [ \" \" ]\n"; print "field MFString onText [ \" Expected Output Elevation Grid\" ]\n"; print "eventIn SFBool touchedSwitch\n"; print "eventOut MFString changedText\n"; print "url [ \"javascript:\n"; print "function touchedSwitch(ts) {\n"; print "if (ts) {if (mySwitchOn) {\n"; print "mySwitchOn = false\;\n"; print "changedText = offText\;\n"; print "} else {\n"; print "mySwitchOn = true\;\n"; print "changedText = onText\;\n"; print "}\n"; print "}\n"; print "}\n"; print "\"]\n"; print "}\n"; print "]\n"; print "}\n"; print "ROUTE TS1.isActive TO SWITCH_SCRIPT2.touchedSwitch\n"; print "ROUTE SWITCH_SCRIPT2.changedText TO DEBUG_TEXT1.set_string\n"; print "Transform {\n"; print "translation -10 1 -250 \n"; print "children [ \n"; print "DEF TS2 TouchSensor { } \n"; print "Shape {\n"; print "appearance Appearance {\n"; print "material Material {\n"; print "diffuseColor 0 0.8 0\n"; print "}\n"; print "}\n"; print "geometry ElevationGrid {\n"; print "xDimension $output \n"; print "zDimension $pattern \n"; print "xSpacing 10 \n"; print "zSpacing 1 \n"; print "height [ \n"; open (ERR,"){ print $line; for ($i=0;$i<$input;$i++){ printf "%4.2f",$ERROR_avg; print ",";} print "\n"; } } close(ERR) || die "Uff!!! Cant close OUTPUT\n"; print "]\n"; print "}\n"; print "}\n"; print "DEF XT2 Transform {\n"; print "children [\n"; print "Shape{\n"; print "appearance Appearance{\n"; print "material Material {\n"; print "diffuseColor 0 0 1\n"; print "}\n"; print "}\n"; print "geometry DEF DEBUG_TEXT2 Text{\n"; print "string [\" \"]\n"; print "fontStyle FontStyle{\n"; print "style \"BOLD\"\n"; print "size 2.0\n"; print "spacing 1.5}\n"; print "}\n"; print "}\n"; print "]\n"; print "translation -5 8 100\n"; print "}\n"; print "DEF SWITCH_SCRIPT2 Script {\n"; print "field SFBool mySwitchOn FALSE\n"; print "field MFString offText [ \" \" ]\n"; print "field MFString onText [ \" Actual Output Elevation Grid\" ]\n"; print "eventIn SFBool touchedSwitch\n"; print "eventOut MFString changedText\n"; print "url [ \"javascript:\n"; print "function touchedSwitch(ts) {\n"; print "if (ts) {if (mySwitchOn) {\n"; print "mySwitchOn = false\;\n"; print "changedText = offText\;\n"; print "} else {\n"; print "mySwitchOn = true\;\n"; print "changedText = onText\;\n"; print "}\n"; print "}\n"; print "}\n"; print "\"]\n"; print "}\n"; print "]\n"; print "}\n"; print "ROUTE TS2.isActive TO SWITCH_SCRIPT2.touchedSwitch\n"; print "ROUTE SWITCH_SCRIPT2.changedText TO DEBUG_TEXT2.set_string\n"; print "Transform {\n"; print "translation -10 35 -250 \n"; print "children [ \n"; print "DEF TS3 TouchSensor { } \n"; print "Shape {\n"; print "appearance Appearance {\n"; print "material Material {\n"; print "diffuseColor 1 0 1 \n"; print "}\n"; print "}\n"; print "geometry ElevationGrid {\n"; print "xDimension $output \n"; print "zDimension $pattern \n"; print "xSpacing 10 \n"; print "zSpacing 1 \n"; print "height [ \n"; open (DIFF,"){ print $line ; for ($i=0;$i<$input;$i++){ printf "%4.2f", $DIFF_avg; print ",";} print "\n"; } } close(DIFF) || die "Uff!!! Cant close OUTPUT\n"; print "]\n"; print "}\n"; print "}\n"; print "DEF XT3 Transform {\n"; print "children [\n"; print "Shape{\n"; print "appearance Appearance{\n"; print "material Material {\n"; print "diffuseColor 0 0 1\n"; print "}\n"; print "}\n"; print "geometry DEF DEBUG_TEXT3 Text{\n"; print "string [\" \"]\n"; print "fontStyle FontStyle{\n"; print "style \"BOLD\"\n"; print "size 2.0\n"; print "spacing 1.5}\n"; print "}\n"; print "}\n"; print "]\n"; print "translation -5 8 100\n"; print "}\n"; print "DEF SWITCH_SCRIPT3 Script {\n"; print "field SFBool mySwitchOn FALSE\n"; print "field MFString offText [ \" \" ]\n"; print "field MFString onText [ \" Difference of Actual and Expected Output Elevation Grid\" ]\n"; print "eventIn SFBool touchedSwitch\n"; print "eventOut MFString changedText\n"; print "url [ \"javascript:\n"; print "function touchedSwitch(ts) {\n"; print "if (ts) {if (mySwitchOn) {\n"; print "mySwitchOn = false\;\n"; print "changedText = offText\;\n"; print "} else {\n"; print "mySwitchOn = true\;\n"; print "changedText = onText\;\n"; print "}\n"; print "}\n"; print "}\n"; print "\"]\n"; print "}\n"; print "]\n"; print "}\n"; print "ROUTE TS3.isActive TO SWITCH_SCRIPT3.touchedSwitch\n"; print "ROUTE SWITCH_SCRIPT3.changedText TO DEBUG_TEXT3.set_string\n"; print "ROUTE MovieCubeTouch.touchTime TO ElevTimer0.set_startTime\n"; print "ROUTE ElevTimer0.fraction_changed TO ElevPosInterP.set_fraction\n"; print "ROUTE ElevPosInterP.value_changed TO InPutEleGrid.set_translation\n"; print "ROUTE ResetCubeTouch.touchTime TO CubeBTimer.set_startTime\n"; print "ROUTE CubeBTimer.fraction_changed TO CubeBPositionInterp.set_fraction\n"; print "ROUTE CubeBPositionInterp.value_changed TO InPutEleGrid.set_translation\n"; #} } sub maxmin_data { open (MAX,">MAXMIN") || die "Huhh!!! cant open MAXMIN\n"; open (IN,") { foreach $line (@array){ chop($line); @this_line = split(/,/,$line); $size = @this_line; for ($i=0;$i<$size;$i++){ if ($this_line[$i] > $max){ $max = $this_line[$i]; } if ($this_line[$i] < $min){ $min = $this_line[$i]; } } } } $INPUT_max = $max; $INPUT_min = $min; $INPUT_avg = ($INPUT_max+$INPUT_min)/2; close(IN) || die "Huhh!!! cant close Train"; open (IN,") { foreach $line (@array){ chop($line); @this_line = split(/,/,$line); $size = @this_line; for ($i=0;$i<$size;$i++){ if ($this_line[$i] > $max){ $max = $this_line[$i]; } if ($this_line[$i] < $min){ $min = $this_line[$i]; } } } } $OUTPUT_max = $max; $OUTPUT_min = $min; $OUTPUT_avg = ($OUTPUT_max+$OUTPUT_min)/2; close(IN) || die "Huhh!!! cant close OUTPUT"; open (IN,") { foreach $line (@array){ chop($line); @this_line = split(/,/,$line); $size = @this_line; for ($i=0;$i<$size;$i++){ if ($this_line[$i] > $max){ $max = $this_line[$i]; } if ($this_line[$i] < $min){ $min = $this_line[$i]; } } } } $ERROR_max = $max; $ERROR_min = $min; $ERROR_avg = ($ERROR_max+$ERROR_min)/2; close(IN) || die "Huhh!!! cant close ERROR"; print MAX "OUTPUT=$OUTPUT_max \n"; print MAX "OUTPUT=$OUTPUT_min \n"; print MAX "OUTPUT=$OUTPUT_avg \n"; print MAX "INPUT=$INPUT_max \n"; print MAX "INPUT=$INPUT_min \n"; print MAX "INPUT=$INPUT_avg \n"; print MAX "ERROR=$ERROR_max \n"; print MAX "ERROR=$ERROR_min \n"; print MAX "ERROR=$ERROR_avg \n"; close(MAX) || die "Huhh!!! cant close MAXMIN"; } sub get_diff { open(DIFF,">DIFFERENCE") || die "Cannot open FINAL\n"; open(OUT,") { chop $out_line; @thisout_line = split(/,/,$out_line); $err_line=; chop $err_line; @thiserr_line = split(/,/,$err_line); undef $diff_line; for ($i=0; $i<=$#thisout_line; $i++) { $Diff=($thisout_line[$i]-$thiserr_line[$i]); $diff_line .= sprintf ("%00.2f",$Diff).","; } print DIFF "$diff_line\n"; } close(ERR); close(OUT); close(DIFF); #} #sub get_squares { #do get_data(); #do this_data(); open(DIFF,"DIFFERENCE") || die "Cant Open Difference\n"; open(OUT,">SQUARES") || die "Cant Open Difference\n"; while ($line = ) { chop $line; $sum = 0; @array = split (/,/,$line); for ($i=0; $i<=$#array; $i++) { $sum = $sum + ($array[$i] * $array[$i]); } $sqrt = $sum/($pattern); print OUT "$sqrt\n"; } close(OUT); close(DIFF); }