#!/usr/local/bin/perl #Developer: Mohammad M Hoque # Notes on this version: # Added the space ship viewpoint in the AllGenBarChartMovie.wrl # Modified output2 for movie. # Clean up the program # Open the data file and read it. open(INPUT,"; # Close the data file close (INPUT); # Call the subfunctions gen_world(@lines1); max_result(@lines1); gen_chart(@lines1); all_gen_bar_chart(@lines1); all_gen_sheet_chart(@lines1); AllGenBarChart(@lines1); cone(); ga_index_html(); main_html(); message_html(); button_html(); text1_html(); text2_html(); text3_html(); text4_html(); sub gen_world { open(OUTPUT,">AllGenWorld.wrl") || die "Can't open AllGenWorld.wrl\n"; @gen_world_lines= @_; $i=0; $j=0; #while ($line =pop @lines) while ($line =pop @gen_world_lines) { @var = split(" ",$line); @g[$i]=@var[0]; @x[$i]=@var[1]*5; @y[$i]=@var[2]*5; @z[$i]=@var[3]*5; @f[$i]=@var[4]; $i++; $j++; } $j=$j-1; print OUTPUT "#VRML V2.0 utf8"; print OUTPUT "\n"; print OUTPUT "Background {"; print OUTPUT "\n"; print OUTPUT "skyAngle[1 , 1.55, 1.6]"; print OUTPUT "\n"; print OUTPUT "skyColor[1 1 1, .98 .98 1, .9 .9 1, .8 .8 1]"; print OUTPUT "\n"; print OUTPUT "}"; print OUTPUT "\n" ; print OUTPUT "Viewpoint { "; print OUTPUT "\n" ; print OUTPUT "position 0 0 20"; print OUTPUT "\n"; print OUTPUT" orientation 10 1 1 0"; print OUTPUT "\n" ; print OUTPUT" description \"faroff\" "; print OUTPUT "\n" ; print OUTPUT" }"; print OUTPUT "\n" ; print OUTPUT"Viewpoint {"; print OUTPUT "\n" ; print OUTPUT " position 10 0 20"; print OUTPUT "\n" ; print OUTPUT " orientation 10 1 1 0"; print OUTPUT "\n" ; print OUTPUT " description \"view1\" "; print OUTPUT" }"; print OUTPUT "\n" ; print OUTPUT"Viewpoint {"; print OUTPUT "\n" ; print OUTPUT " position 15 0 20"; print OUTPUT "\n" ; print OUTPUT " orientation 10 1 1 0"; print OUTPUT "\n" ; print OUTPUT " description \"view2\" "; print OUTPUT "\n" ; print OUTPUT " }"; print OUTPUT "\n" ; print OUTPUT"Viewpoint {"; print OUTPUT "\n" ; print OUTPUT "position 20 0 20"; print OUTPUT "\n" ; print OUTPUT "orientation 10 1 1 0"; print OUTPUT "\n" ; print OUTPUT "description \"view3\" "; print OUTPUT "\n" ; print OUTPUT " }" ; print OUTPUT "\n"; print OUTPUT " DEF ball_Script Script {"; print OUTPUT "\n"; for ( $n=0;$n<=$j;$n++) { print OUTPUT " eventIn SFBool message_on$n "; print OUTPUT "\n" ; } print OUTPUT " eventOut SFInt32 whichChoice"; print OUTPUT "\n"; print OUTPUT " url [\"vrmlscript:"; print OUTPUT "\n"; for ( $k=0;$k<=$j;$k++) { print OUTPUT " function message_on$k() {"; print OUTPUT "\n" ; print OUTPUT " whichChoice = $k;}"; print OUTPUT "\n" ; } print OUTPUT " \", "; print OUTPUT "\n" ; print OUTPUT " \"javascript:"; print OUTPUT "\n" ; for ( $l=0;$l<=$j;$l++) { print OUTPUT " function message_on$l () {" ; print OUTPUT "\n" ; print OUTPUT " whichChoice = $l ;}" ; print OUTPUT "\n" ; } print OUTPUT " \"] " ; print OUTPUT "\n" ; print OUTPUT " }" ; print OUTPUT "\n" ; print OUTPUT " Transform {" ; print OUTPUT "\n" ; print OUTPUT " translation 0 0 0" ; print OUTPUT "\n" ; print OUTPUT "children [ " ; print OUTPUT "\n" ; $color_x = 1; $color_y = 0; $color_z = 0; $plus=1; $minus=-1; for($m=0;$m<$j;$m++) { if($g[$m] <= 10) { $color_x = $g[$m]/10; $size =0.4; } if($g[$m] >10 && $g[$m] <=20) { $size = 0.3; $color_x = 0; $color_y = $g[$m]/40; } if($g[$m] >= 20 && $g[$m] <30) { $size = 0.2; $color_x = 0; $color_y = 0; $color_z = $g[$m]/60; } if($g[$m] >= 30) { $size = 0.1; $color_x = 0; $color_y= $g[$m]/80; $color_z = $g[$m]/40; } print OUTPUT "\n" ; print OUTPUT " Transform{" ; print OUTPUT "\n" ; print OUTPUT " translation $x[$m] $y[$m] -$z[$m] "; print OUTPUT "\n" ; print OUTPUT " children [ " ; print OUTPUT "\n" ; print OUTPUT " Shape { " ; print OUTPUT "\n" ; print OUTPUT " appearance Appearance{ " ; print OUTPUT "\n" ; print OUTPUT " material Material{emissiveColor $color_x $color_y $color_z }}" ; print OUTPUT "\n" ; print OUTPUT " geometry Sphere{radius $size } " ; print OUTPUT "\n" ; print OUTPUT " } " ; print OUTPUT "\n" ; print OUTPUT " DEF ball_sensor$m TouchSensor {} "; print OUTPUT "\n" ; print OUTPUT " ] " ; print OUTPUT "\n" ; print OUTPUT " } " ; print OUTPUT "\n" ; } print OUTPUT "DEF message_Switch Switch {"; print OUTPUT " \n "; print OUTPUT "choice ["; print OUTPUT " \n "; for( $x ;$x<=$j;$x++) { print OUTPUT "Transform{" ; print OUTPUT " \n " ; print OUTPUT "translation 6 7 0" ; print OUTPUT " \n " ; print OUTPUT "children [" ; print OUTPUT " \n " ; print OUTPUT "Shape {" ; print OUTPUT " \n " ; print OUTPUT " appearance Appearance{ " ; print OUTPUT "\n" ; print OUTPUT " material Material{diffuseColor 1 0 0 }}" ; print OUTPUT "\n" ; print OUTPUT "geometry Text {" ; print OUTPUT "\n" ; print OUTPUT "string [\"Position: $x[$x] ,$y[$x] , $z[$x]\",\" Value of m: $f[$x]\",\" Generation No: $g[$x] \"]" ; print OUTPUT "\n" ; print OUTPUT "fontStyle FontStyle{" ; print OUTPUT "\n" ; print OUTPUT "style \"BOLD\"" ; print OUTPUT "\n" ; print OUTPUT "size 0.8" ; print OUTPUT "\n" ; print OUTPUT "spacing 1.5}" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; print OUTPUT "]" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; } print OUTPUT "]" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; print OUTPUT "]" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; for( $y=0 ;$y<$j;$y++){ print OUTPUT "ROUTE ball_sensor$y.isOver TO ball_Script.message_on$y" ; print OUTPUT "\n" ; } print OUTPUT "ROUTE ball_Script.whichChoice TO message_Switch.whichChoice"; print OUTPUT "\n" ; } # End sub gen_world sub max_result { open(OUTPUT1,">MinGenWorld.wrl") || die "Can't open MinGenWorld.wrl\n"; @max_lines=@_; $k=0; while ($max_line = pop @max_lines) { @m_var = split(" ",$max_line); @m_g[$k]=@m_var[0]; @m_x[$k]=@m_var[1]*5; @m_y[$k]=@m_var[2]*5; @m_z[$k]=@m_var[3]*5; @m_f[$k]=@m_var[4]; $k++; $l++; } max_index(); } sub max_index { $m1=0; #$m2=0; for ($m1;$m1<36; $m1++) { $num=0; $m2=0; @start[$m1]=@end[$m1-1]; for ($m2;$m2<1000;$m2++) { if(@m_g[$m2] eq $m1) { $num=$num+1; } } @gen_num[$m1]=$num; @end[$m1]=@end[$m1-1]+$num; $maxIndex=@start[$m1]; for( $n=@start[$m1]; $n<@end[$m1]; $n++) { if(@m_f[$n] > @m_f[$maxIndex]) { $maxIndex = $n; } } @max_g[$m1]=@m_g[$maxIndex]; @max_x[$m1]=@m_x[$maxIndex]; @max_y[$m1]=@m_y[$maxIndex]; @max_z[$m1]=@m_z[$maxIndex]; @max_f[$m1]=@m_f[$maxIndex]; } max_vrml(); max_vrml1(); button_min_world (); } sub max_vrml { print OUTPUT1 "#VRML V2.0 utf8"; print OUTPUT1 "\n"; print OUTPUT1 "Background {"; print OUTPUT1 "\n"; print OUTPUT1 "skyAngle[1 , 1.55, 1.6]"; print OUTPUT1 "\n"; print OUTPUT1 "skyColor[1 1 1, .98 .98 1, .9 .9 1, .8 .8 1]"; print OUTPUT1 "\n"; print OUTPUT1 "}"; print OUTPUT1 "\n" ; print OUTPUT1 "Viewpoint { "; print OUTPUT1 "\n" ; print OUTPUT1 "position 0 0 20"; print OUTPUT1 "\n"; print OUTPUT1" orientation 10 1 1 0"; print OUTPUT1 "\n" ; print OUTPUT1" description \"faroff\" "; print OUTPUT1 "\n" ; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1"Viewpoint {"; print OUTPUT1 "\n" ; print OUTPUT1 " position 10 0 20"; print OUTPUT1 "\n" ; print OUTPUT1 " orientation 10 1 1 0"; print OUTPUT1 "\n" ; print OUTPUT1 " description \"view1\" "; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1"Viewpoint {"; print OUTPUT1 "\n" ; print OUTPUT1 " position 15 0 20"; print OUTPUT1 "\n" ; print OUTPUT1 " orientation 10 1 1 0"; print OUTPUT1 "\n" ; print OUTPUT1 " description \"view2\" "; print OUTPUT1 "\n" ; print OUTPUT1 " }"; print OUTPUT1 "\n" ; print OUTPUT1"Viewpoint {"; print OUTPUT1 "\n" ; print OUTPUT1 "position 20 0 20"; print OUTPUT1 "\n" ; print OUTPUT1 "orientation 10 1 1 0"; print OUTPUT1 "\n" ; print OUTPUT1 "description \"view3\" "; print OUTPUT1 "\n" ; print OUTPUT1 " }" ; print OUTPUT1 "\n"; print OUTPUT1 " DEF ball_Script Script {"; print OUTPUT1 "\n"; for ( $n1=0;$n1<36;$n1++) { print OUTPUT1 " eventIn SFBool message_on$n1 "; print OUTPUT1 "\n" ; } print OUTPUT1 " eventOut SFInt32 whichChoice"; print OUTPUT1 "\n"; print OUTPUT1 " url [\"vrmlscript:"; print OUTPUT1 "\n"; for ( $k1=0;$k1<36;$k1++) { print OUTPUT1 " function message_on$k1() {" ; print OUTPUT1 "\n" ; print OUTPUT1 " whichChoice = $k1;}" ; print OUTPUT1 "\n" ; } print OUTPUT1 " \", " ; print OUTPUT1 "\n" ; print OUTPUT1 " \"javascript:" ; print OUTPUT1 "\n" ; for ( $l1=0;$l1<36;$l1++) { print OUTPUT1 " function message_on$l1 () {" ; print OUTPUT1 "\n" ; print OUTPUT1 " whichChoice = $l1 ;}" ; print OUTPUT1 "\n" ; } print OUTPUT1 " \"] " ; print OUTPUT1 "\n" ; print OUTPUT1 " }" ; print OUTPUT1 "\n" ; print OUTPUT1 " Transform {" ; print OUTPUT1 "\n" ; print OUTPUT1 " translation 0 0 0" ; print OUTPUT1 "\n" ; print OUTPUT1 "children [ " ; print OUTPUT1 "\n" ; # String Color=" 0 "; $color_x1 = 1; $color_y1 = 0; $color_z1 = 0; $plus=1; $minus=-1; for($m2=0;$m2<36;$m2++) { if($max_g[$m2] <= 10) { $color_x1 = $max_g[$m2]/20; $size1 =0.6; } if($max_g[$m2] >10 && $max_g[$m2] <=20) { $size1 = 0.5; $color_x1 = 0; $color_y1 = $max_g[$m2]/40; } if($max_g[$m2] >= 20 && $max_g[$m2] <30) { $size1 = 0.4; $color_x1 = 0; $color_y1 = 0; $color_z1 = $max_g[$m2]/60; } if($max_g[$m2] >= 30) { $size1 = 0.3; $color_x1 = 0; $color_y1= $max_g[$m2]/80; $color_z1 = $max_g[$m2]/40; } print OUTPUT1 "\n" ; print OUTPUT1 "Anchor {"; print OUTPUT1 "\n" ; print OUTPUT1 "children ["; print OUTPUT1 "\n" ; #print OUTPUT1 "Group {"; print OUTPUT1 "\n" ; #print OUTPUT1 " children [ "; #print OUTPUT1 "\n" ; #print OUTPUT1 " Shape { " ; #print OUTPUT1 "\n" ; #print OUTPUT1 " appearance Appearance{ " ; #print OUTPUT1 "\n" ; #print OUTPUT1 " material Material{emissiveColor $color_x1 $color_y1 $color_z1 transparency .2}}" ; #print OUTPUT1 "\n" ; #print OUTPUT1 " geometry Sphere{radius $size1 } " ; #print OUTPUT1 "\n" ; #print OUTPUT1 " } " ; #print OUTPUT1 "\n" ; #print OUTPUT1 " ] " ; #print OUTPUT1 "\n" ; #print OUTPUT1 " }, " ; #print OUTPUT1 "\n" ; print OUTPUT1 " Transform{" ; print OUTPUT1 "\n" ; print OUTPUT1 " translation $max_x[$m2] $max_y[$m2] -$max_z[$m2] "; print OUTPUT1 "\n" ; print OUTPUT1 " children [ " ; print OUTPUT1 "\n" ; print OUTPUT1 " Shape { " ; print OUTPUT1 "\n" ; print OUTPUT1 " appearance Appearance{ " ; print OUTPUT1 "\n" ; print OUTPUT1 " material Material{emissiveColor $color_x1 $color_y1 $color_z1 transparency .2}}" ; print OUTPUT1 "\n" ; print OUTPUT1 " geometry Sphere{radius $size1 } " ; print OUTPUT1 "\n" ; print OUTPUT1 " } " ; print OUTPUT1 "\n" ; #print OUTPUT1 " DEF ball_sensor$m2 TouchSensor {} "; print OUTPUT1 "\n" ; print OUTPUT1 " ] " ; print OUTPUT1 "\n" ; print OUTPUT1 " } " ; print OUTPUT1 "\n" ; print OUTPUT1 "\n" ; my($temp_x)=0; my($temp_y)=0; my($temp_z)=0; $temp_x=$max_x[$m2]-.25; $temp_y=$max_y[$m2]-.2; $temp_z=$max_z[$m2]; print OUTPUT1 "Transform{" ; print OUTPUT1 " \n " ; print OUTPUT1 "translation $temp_x $temp_y -$temp_z" ; print OUTPUT1 " \n " ; print OUTPUT1 "children [" ; print OUTPUT1 " \n " ; print OUTPUT1 "Shape {" ; print OUTPUT1 " \n " ; print OUTPUT1 " appearance Appearance{ " ; print OUTPUT1 "\n" ; print OUTPUT1 " material Material{diffuseColor 1 0 0 }}" ; print OUTPUT1 "\n" ; print OUTPUT1 "geometry Text {" ; print OUTPUT1 "\n" ; print OUTPUT1 "string [\"$m2\"]" ; print OUTPUT1 "\n" ; print OUTPUT1 "fontStyle FontStyle{" ; print OUTPUT1 "\n" ; print OUTPUT1 "style \"BOLD\"" ; print OUTPUT1 "\n" ; print OUTPUT1 "size .6" ; print OUTPUT1 "\n" ; print OUTPUT1 "spacing 1.5}" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "]" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "]\n"; print OUTPUT1 "description \"Min of Generation$m2\"" ; print OUTPUT1 "\n" ; print OUTPUT1 "parameter [\"target=message\"]" ; print OUTPUT1 "\n" ; print OUTPUT1 "url [\"GenBarChart$m2.wrl\"]" ; print OUTPUT1 "\n" ; print OUTPUT1 "bboxCenter 0 0 0" ; print OUTPUT1 "\n" ; print OUTPUT1 "bboxSize 1 1 1" ; print OUTPUT1 "\n" ; print OUTPUT1 " }"; print OUTPUT1 "\n"; } for($m2=0;$m2<35;$m2++) { print OUTPUT1 "\n" ; print OUTPUT1 " Transform{" ; print OUTPUT1 "\n" ; #print OUTPUT1 " translation $max_x[$m2] $max_y[$m2] -$max_z[$m2] "; #print OUTPUT1 "\n" ; print OUTPUT1 " children [ " ; print OUTPUT1 "\n" ; print OUTPUT1 " Shape { " ; print OUTPUT1 "\n" ; print OUTPUT1 " appearance Appearance{ " ; print OUTPUT1 "\n" ; print OUTPUT1 " material Material{emissiveColor $color_x1 $color_y1 $color_z1 }}" ; print OUTPUT1 "\n" ; print OUTPUT1 " geometry IndexedLineSet{ " ; print OUTPUT1 "\n" ; print OUTPUT1 "coord Coordinate {" ; print OUTPUT1 "\n " ; print OUTPUT1 "point[$max_x[$m2] $max_y[$m2] -$max_z[$m2],$max_x[$m2+1] $max_y[$m2+1] -$max_z[$m2+1] ]" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "coordIndex [0,1]" ; print OUTPUT1 "\n"; print OUTPUT1 " }"; print OUTPUT1 "\n" ; print OUTPUT1 " }"; print OUTPUT1 "\n" ; print OUTPUT1 " ] " ; print OUTPUT1 "\n" ; print OUTPUT1 " } " ; print OUTPUT1 "\n" ; } print OUTPUT1 "DEF message_Switch Switch {"; print OUTPUT1 " \n "; print OUTPUT1 "choice ["; print OUTPUT1 " \n "; for( $x1 ;$x1<36;$x1++) { print OUTPUT1 "Transform{" ; print OUTPUT1 " \n " ; print OUTPUT1 "translation $max_x[$x1] $max_y[$x1] -$max_z[$x1]" ; print OUTPUT1 " \n " ; print OUTPUT1 "children [" ; print OUTPUT1 " \n " ; print OUTPUT1 "Shape {" ; print OUTPUT1 " \n " ; print OUTPUT1 " appearance Appearance{ " ; print OUTPUT1 "\n" ; print OUTPUT1 " material Material{diffuseColor 1 0 0 }}" ; print OUTPUT1 "\n" ; print OUTPUT1 "geometry Text {" ; print OUTPUT1 "\n" ; print OUTPUT1 "string [\"Position: $max_x[$x1] ,$max_y[$x1] , $max_z[$x1]\",\" Value of m: $max_f[$x1]\",\" Generation No: $max_g[$x1] \"]" ; print OUTPUT1 "\n" ; print OUTPUT1 "fontStyle FontStyle{" ; print OUTPUT1 "\n" ; print OUTPUT1 "style \"BOLD\"" ; print OUTPUT1 "\n" ; print OUTPUT1 "size 0.8" ; print OUTPUT1 "\n" ; print OUTPUT1 "spacing 1.5}" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "]" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; } print OUTPUT1 "]" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "]" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; for( $y1=0 ;$y1<36;$y1++) { #print OUTPUT1 "ROUTE ball_sensor$y1.isOver TO ball_Script.message_on$y1" ; print OUTPUT1 "\n" ; } print OUTPUT1 "ROUTE ball_Script.whichChoice TO message_Switch.whichChoice"; print OUTPUT1 "\n" ; # Touch sensor Button print OUTPUT1 " Anchor{" ; print OUTPUT1 "\n" ; print OUTPUT1 " children[ " ; print OUTPUT1 "\n" ; print OUTPUT1 "Inline {url \"button_min_world.wrl\"}"; print OUTPUT1 " DEF Click TouchSensor {} "; print OUTPUT1 "\n" ; print OUTPUT1 " ] " ; print OUTPUT1 "\n" ; print OUTPUT1 "description \"All Generation Bar Chart\"" ; print OUTPUT1 "\n" ; print OUTPUT1 "parameter [\"target=message\"]" ; print OUTPUT1 "\n" ; print OUTPUT1 "url [\"AllGenBarChartMovie.wrl#VP25\"]" ; print OUTPUT1 "\n" ; print OUTPUT1 "bboxCenter 0 0 0" ; print OUTPUT1 "\n" ; print OUTPUT1 "bboxSize -1 -1 -1" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "Transform{" ; print OUTPUT1 " \n " ; print OUTPUT1 "translation -50 -3 -40" ; print OUTPUT1 " \n " ; print OUTPUT1 "children [" ; print OUTPUT1 " \n " ; print OUTPUT1 "Shape {" ; print OUTPUT1 " \n " ; print OUTPUT1 " appearance Appearance{ " ; print OUTPUT1 "\n" ; print OUTPUT1 " material Material{diffuseColor 1 0 0 }}" ; print OUTPUT1 "\n" ; print OUTPUT1 "geometry Text {" ; print OUTPUT1 "\n" ; print OUTPUT1 "string [\" Click to Start Movie \"]" ; print OUTPUT1 "\n" ; print OUTPUT1 "fontStyle FontStyle{" ; print OUTPUT1 "\n" ; print OUTPUT1 "style \"BOLD\"" ; print OUTPUT1 "\n" ; print OUTPUT1 "size 1.8" ; print OUTPUT1 "\n" ; print OUTPUT1 "spacing 1.5}" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1 "\n" ; print OUTPUT1 "]" ; print OUTPUT1 "\n" ; print OUTPUT1 "}" ; print OUTPUT1 "\n" ; print OUTPUT1" DEF Sphere Transform {"; print OUTPUT1 "\n" ; print OUTPUT1" translation -50 0 -50"; print OUTPUT1 "\n" ; print OUTPUT1" children ["; print OUTPUT1 "\n" ; print OUTPUT1 "\n" ; print OUTPUT1" DEF CubeTimer TimeSensor { cycleInterval 40.0"; print OUTPUT1 "\n" ; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1" DEF CubePositionInterp PositionInterpolator {"; print OUTPUT1 "\n" ; print OUTPUT1"key ["; my($key_value)=0; for ($m4=0;$m4<35;$m4++) { print OUTPUT1"$key_value,"; print OUTPUT1 "\n" ; $key_value=$key_value+0.028; } print OUTPUT1"$key_value"; print OUTPUT1 "\n" ; print OUTPUT1" ]"; print OUTPUT1 "\n" ; print OUTPUT1" keyValue [ "; for ($m3=0;$m3<35;$m3++) { print OUTPUT1" $max_x[$m3] $max_y[$m3] -$max_z[$m3],"; print OUTPUT1 "\n" ; } print OUTPUT1" $max_x[$m3] $max_y[$m3] -$max_z[$m3]"; print OUTPUT1 "\n" ; print OUTPUT1" ]"; print OUTPUT1 "\n" ; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1" Shape {"; print OUTPUT1 "\n" ; print OUTPUT1" appearance Appearance {"; print OUTPUT1 "\n" ; print OUTPUT1" material Material { diffuseColor 1 0 0 } }"; print OUTPUT1 "\n" ; print OUTPUT1" geometry Sphere {radius 1 } }"; print OUTPUT1 "\n" ; print OUTPUT1" ]"; print OUTPUT1 "\n" ; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1" ROUTE Click.touchTime TO CubeTimer.set_startTime"; print OUTPUT1 "\n" ; print OUTPUT1" ROUTE CubeTimer.fraction_changed TO CubePositionInterp.set_fraction"; print OUTPUT1 "\n" ; print OUTPUT1" ROUTE CubePositionInterp.value_changed TO Sphere.set_translation"; print OUTPUT1 "\n" ; print OUTPUT1"Transform {"; print OUTPUT1 "\n" ; print OUTPUT1" children ["; print OUTPUT1 "\n" ; print OUTPUT1" Group {"; print OUTPUT1 "\n" ; print OUTPUT1" children ["; print OUTPUT1 "\n" ; print OUTPUT1" DEF bird_17 Group {"; print OUTPUT1 "\n" ; print OUTPUT1" children DEF Time_18 TimeSensor {"; print OUTPUT1 "\n" ; print OUTPUT1" cycleInterval 34"; print OUTPUT1 "\n" ; print OUTPUT1" loop FALSE"; print OUTPUT1 "\n" ; print OUTPUT1" startTime 0"; print OUTPUT1 "\n" ; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1" DEF VP18PositionInterp PositionInterpolator {"; print OUTPUT1 "\n" ; print OUTPUT1" key [ "; my($temp)=0; for($p=0;$p<35;$p++) { print OUTPUT1"$temp ,"; $temp= $temp+1/36; } print OUTPUT1"$temp "; print OUTPUT1"]"; print OUTPUT1 "\n" ; print OUTPUT1" keyValue ["; my($temp1)=0; for($p1=0;$p1<35;$p1++) { $temp_max_z[$p1]= ($max_z[$p1]-50)*-1; print OUTPUT1"$max_x[$p1] $max_y[$p1] $temp_max_z[$p1],"; } print OUTPUT1"$max_x[$p1] $max_y[$p1] $max_z[$p1]"; print OUTPUT1 "]"; print OUTPUT1 "\n" ; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1" ]"; print OUTPUT1 "\n" ; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1" DEF VP18 Viewpoint {"; print OUTPUT1 "\n" ; print OUTPUT1" position 0 0 250"; print OUTPUT1 "\n" ; print OUTPUT1" orientation 0 0 0 0"; print OUTPUT1 "\n" ; print OUTPUT1" fieldOfView 1.57"; print OUTPUT1 "\n" ; print OUTPUT1" description \"Space Ship\""; print OUTPUT1 "\n" ; print OUTPUT1" }"; print OUTPUT1 "\n" ; print OUTPUT1" ]"; print OUTPUT1 "\n" ; print OUTPUT1"}"; print OUTPUT1 "\n" ; print OUTPUT1"ROUTE VP18.bindTime TO Time_18.set_startTime"; print OUTPUT1 "\n" ; print OUTPUT1"ROUTE Time_18.fraction_changed TO VP18PositionInterp.set_fraction"; print OUTPUT1 "\n" ; print OUTPUT1"ROUTE VP18PositionInterp.value_changed TO VP18.set_position"; close (OUTPUT1); } sub button_min_world { open(button,">button_min_world.wrl") ||die "Can't open button_min_world.wrl\n"; print button "#VRML V2.0 utf8"; print button"\n "; print button"Transform {"; print button"\n "; print button" translation -50 0 -50"; print button"\n "; print button"children["; print button"\n "; print button" Shape {"; print button"\n "; print button" appearance Appearance{"; print button"\n "; print button" material Material{diffuseColor 1 0 0}}"; print button"\n "; print button" geometry Box{size 6 4 4}"; print button"\n "; print button" }"; print button"\n "; print button" ]"; print button"\n "; print button" }"; print button"\n "; close (button); } sub max_vrml1 { print OUTPUT " Transform {" ; print OUTPUT "\n" ; print OUTPUT " translation 0 0 0" ; print OUTPUT "\n" ; print OUTPUT "children [ " ; print OUTPUT "\n" ; $color_x1 = 1; $color_y1 = 0; $color_z1 = 0; $plus=1; $minus=-1; for($m2=0;$m2<36;$m2++) { if($max_g[$m2] <= 10) { $color_x1 = $max_g[$m]/10; $size1 =0.6; } if($max_g[$m2] >10 && $max_g[$m2] <=20) { $size1 = 0.5; $color_x1 = 0; $color_y1 = $max_g[$m2]/40; } if($max_g[$m2] >= 20 && $max_g[$m2] <30) { $size1 = 0.4; $color_x1 = 0; $color_y1 = 0; $color_z1 = $max_g[$m2]/60; } if($max_g[$m2] >= 30) { $size1 = 0.3; $color_x1 = 0; $color_y1= $max_g[$m2]/80; $color_z1 = $max_g[$m2]/40; } print OUTPUT "\n" ; print OUTPUT "Anchor {"; print OUTPUT "\n" ; print OUTPUT " children [ " ; print OUTPUT "\n" ; print OUTPUT "\n" ; print OUTPUT " Transform{" ; print OUTPUT "\n" ; print OUTPUT " translation $max_x[$m2] $max_y[$m2] -$max_z[$m2] "; print OUTPUT "\n" ; print OUTPUT " children [ " ; print OUTPUT "\n" ; print OUTPUT "Inline { url \"cone.wrl\"}"; print OUTPUT "\n" ; print OUTPUT " ] " ; print OUTPUT "\n" ; print OUTPUT " } " ; print OUTPUT "\n" ; print OUTPUT "]" ; print OUTPUT "\n" ; print OUTPUT "description \"Min of GenNo-$m2\"" ; print OUTPUT "\n" ; print OUTPUT "parameter [\"target=message\"]" ; print OUTPUT "\n" ; print OUTPUT "url [\"GenBarChart$m2.wrl\"]" ; print OUTPUT "\n" ; print OUTPUT "bboxCenter 0 0 0" ; print OUTPUT "\n" ; print OUTPUT "bboxSize -1 -1 -1" ; print OUTPUT "\n" ; print OUTPUT "}" ; } for($m2=0;$m2<35;$m2++) { print OUTPUT "\n" ; print OUTPUT " Transform{" ; print OUTPUT "\n" ; #print OUTPUT " translation $max_x[$m2] $max_y[$m2] -$max_z[$m2] "; #print OUTPUT "\n" ; print OUTPUT " children [ " ; print OUTPUT "\n" ; print OUTPUT " Shape { " ; print OUTPUT "\n" ; print OUTPUT " appearance Appearance{ " ; print OUTPUT "\n" ; print OUTPUT " material Material{emissiveColor $color_x1 $color_y1 $color_z1 }}" ; print OUTPUT "\n" ; print OUTPUT " geometry IndexedLineSet{ " ; print OUTPUT "\n" ; print OUTPUT "coord Coordinate {" ; print OUTPUT "\n " ; print OUTPUT "point[$max_x[$m2] $max_y[$m2] -$max_z[$m2],$max_x[$m2+1] $max_y[$m2+1] -$max_z[$m2+1] ]" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; print OUTPUT "coordIndex [0,1]" ; print OUTPUT "\n"; print OUTPUT " }"; print OUTPUT "\n" ; print OUTPUT " }"; print OUTPUT "\n" ; print OUTPUT " ] " ; print OUTPUT "\n" ; print OUTPUT " } " ; print OUTPUT "\n" ; } print OUTPUT "\n" ; print OUTPUT "]" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; print OUTPUT" DEF ClickBox Transform {"; print OUTPUT "\n" ; print OUTPUT" translation -50 20 -50"; print OUTPUT "\n" ; print OUTPUT" children ["; print OUTPUT "\n" ; print OUTPUT" DEF CubeTouch TouchSensor { }"; print OUTPUT "\n" ; print OUTPUT" Shape {"; print OUTPUT "\n" ; print OUTPUT" appearance Appearance {"; print OUTPUT "\n" ; print OUTPUT" material Material { diffuseColor 1 0 0 } }"; print OUTPUT "\n" ; print OUTPUT" geometry Box {size 8 4 2 } }"; print OUTPUT "\n" ; print OUTPUT" ]"; print OUTPUT "\n" ; print OUTPUT" }"; print OUTPUT "\n" ; print OUTPUT "Transform{" ; print OUTPUT " \n " ; print OUTPUT "translation -46 10 -30" ; print OUTPUT " \n " ; print OUTPUT "children [" ; print OUTPUT " \n " ; print OUTPUT "Shape {" ; print OUTPUT " \n " ; print OUTPUT " appearance Appearance{ " ; print OUTPUT "\n" ; print OUTPUT " material Material{diffuseColor 1 0 0 }}" ; print OUTPUT "\n" ; print OUTPUT "geometry Text {" ; print OUTPUT "\n" ; print OUTPUT "string [\" Click For Time Sequence \"]" ; print OUTPUT "\n" ; print OUTPUT "fontStyle FontStyle{" ; print OUTPUT "\n" ; print OUTPUT "style \"BOLD\"" ; print OUTPUT "\n" ; print OUTPUT "size 2.2" ; print OUTPUT "\n" ; print OUTPUT "spacing 1.5}" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; print OUTPUT "\n" ; print OUTPUT "]" ; print OUTPUT "\n" ; print OUTPUT "}" ; print OUTPUT "\n" ; print OUTPUT" DEF Sphere Transform {"; print OUTPUT "\n" ; print OUTPUT" translation -50 20 -50"; print OUTPUT "\n" ; print OUTPUT" children ["; print OUTPUT "\n" ; #print OUTPUT" DEF CubeTouch TouchSensor { }"; print OUTPUT "\n" ; print OUTPUT" DEF CubeTimer TimeSensor { cycleInterval 40.0"; print OUTPUT "\n" ; print OUTPUT" }"; print OUTPUT "\n" ; print OUTPUT" DEF CubePositionInterp PositionInterpolator {"; print OUTPUT "\n" ; print OUTPUT"key ["; my($key_value)=0; for ($m4=0;$m4<35;$m4++) { print OUTPUT"$key_value,"; print OUTPUT "\n" ; $key_value=$key_value+0.028; } print OUTPUT"$key_value"; print OUTPUT "\n" ; print OUTPUT" ]"; print OUTPUT "\n" ; print OUTPUT" keyValue [ "; for ($m3=0;$m3<35;$m3++) { print OUTPUT" $max_x[$m3] $max_y[$m3] -$max_z[$m3],"; print OUTPUT "\n" ; } print OUTPUT" $max_x[$m3] $max_y[$m3] -$max_z[$m3]"; print OUTPUT "\n" ; print OUTPUT" ]"; print OUTPUT "\n" ; print OUTPUT" }"; print OUTPUT "\n" ; print OUTPUT" Shape {"; print OUTPUT "\n" ; print OUTPUT" appearance Appearance {"; print OUTPUT "\n" ; print OUTPUT" material Material { diffuseColor 1 0 0 } }"; print OUTPUT "\n" ; print OUTPUT" geometry Sphere {radius 1 } }"; print OUTPUT "\n" ; print OUTPUT" ]"; print OUTPUT "\n" ; print OUTPUT" }"; print OUTPUT "\n" ; print OUTPUT" ROUTE CubeTouch.touchTime TO CubeTimer.set_startTime"; print OUTPUT "\n" ; print OUTPUT" ROUTE CubeTimer.fraction_changed TO CubePositionInterp.set_fraction"; print OUTPUT "\n" ; print OUTPUT" ROUTE CubePositionInterp.value_changed TO Sphere.set_translation"; print OUTPUT "\n" ; close (OUTPUT); } sub gen_chart { @chart_lines=@_; my ($c_index)=0; while ($chart_line = pop @chart_lines) { @c_var = split(" ",$chart_line); @c_g[$c_index]=@c_var[0]; @c_x[$c_index]=@c_var[1]; @c_y[$c_index]=@c_var[2]; @c_z[$c_index]=@c_var[3]; @c_f[$c_index]=@c_var[4]; $c_index++; $c_gen++; } for ($x2=0;$x2<36;$x2++) { open(OUT,">GenBarChart$x2.wrl") ||die "Can't open GenBarChart.wrl\n"; print OUT "#VRML V2.0 utf8"; print OUT "\n"; print OUT "Background {"; print OUT "\n"; print OUT "skyAngle[1 , 1.55, 1.6]"; print OUT "\n"; print OUT "skyColor[1 1 1, .98 .98 1, .9 .9 1, .8 .8 1]"; print OUT "\n"; print OUT "}"; print OUT "\n" ; print OUT "Viewpoint { "; print OUT "\n" ; print OUT "position 30 8 80"; print OUT "\n"; print OUT" orientation 10 1 1 0"; print OUT "\n" ; print OUT" description \"faroff\" "; print OUT "\n" ; print OUT" }"; print OUT "\n" ; print OUT"Viewpoint {"; print OUT "\n" ; print OUT " position 10 0 20"; print OUT "\n" ; print OUT " orientation 10 1 1 0"; print OUT "\n" ; print OUT " description \"view1\" "; print OUT" }"; print OUT "\n" ; print OUT"Viewpoint {"; print OUT "\n" ; print OUT " position 15 0 20"; print OUT "\n" ; print OUT " orientation 10 1 1 0"; print OUT "\n" ; print OUT " description \"view2\" "; print OUT "\n" ; print OUT " }"; print OUT "\n" ; print OUT"Viewpoint {"; print OUT "\n" ; print OUT "position 20 0 20"; print OUT "\n" ; print OUT "orientation 10 1 1 0"; print OUT "\n" ; print OUT "description \"view3\" "; print OUT "\n" ; print OUT " }" ; print OUT "\n" ; print OUT " Transform{" ; print OUT "\n" ; print OUT " translation 38 -2 0 "; print OUT "\n" ; print OUT " children [ " ; print OUT "\n" ; print OUT " Shape { " ; print OUT "\n" ; print OUT " appearance Appearance{ " ; print OUT "\n" ; print OUT " material Material{emissiveColor 1 0 0 }}" ; print OUT "\n" ; print OUT " geometry Box{size 100 1 5 }"; print OUT "\n" ; print OUT " } " ; print OUT "\n" ; print OUT " ] " ; print OUT "\n" ; print OUT " } " ; print OUT "\n" ; print OUT "\n" ; print OUT " Transform{" ; print OUT "\n" ; print OUT " translation -12 17.5 0 "; print OUT "\n" ; print OUT " children [ " ; print OUT "\n" ; print OUT " Shape { " ; print OUT "\n" ; print OUT " appearance Appearance{ " ; print OUT "\n" ; print OUT " material Material{emissiveColor 1 0 0 }}" ; print OUT "\n" ; print OUT " geometry Box{size 1 40 5 }"; print OUT "\n" ; print OUT " } " ; print OUT "\n" ; print OUT " ] " ; print OUT "\n" ; print OUT " } " ; print OUT "\n" ; $color_x2 = 1; $color_y2 = 0; $color_z2 = 0; $plus2=1; $minus2=-1; my ($x_axis)=-8; for($y2=0;$y2<$c_gen;$y2++) { if($g[$y2] <= 10) { $color_x2 = $c_g[$y2]/10; $size2 =0.5; } if($c_g[$y2] >10 && $c_g[$y2] <=20) { $size2 = 0.5; $color_x2 = 0; $color_y2 = $c_g[$y2]/40; } if($c_g[$y2] >= 20 && $c_g[$y2] <30) { $size2 = 0.5; $color_x2 = 0; $color_y2 = 0; $color_z2 = $c_g[$y2]/60; } if($c_g[$y2] >= 30) { $size2 = 0.5; $color_x2 = 0; $color_y2= $c_g[$y2]/80; $color_z2 = $c_g[$y2]/40; } if(@c_g[$y2] eq $x2) { my ($y_axis)= -2+$c_f[$y2]/2; print OUT "\n" ; print OUT " Transform{" ; print OUT "\n" ; print OUT " translation $x_axis $y_axis 0 "; print OUT "\n" ; print OUT " children [ " ; print OUT "\n" ; print OUT " Shape { " ; print OUT "\n" ; print OUT " appearance Appearance{ " ; print OUT "\n" ; print OUT " material Material{emissiveColor $color_x2 $color_y2 $color_z2 }}" ; print OUT "\n" ; print OUT " geometry Cylinder{radius $size2"; print OUT "\n" ; print OUT " height $c_f[$y2]"; print OUT "\n" ; print OUT " side TRUE " ; print OUT "\n" ; print OUT " top TRUE " ; print OUT "\n" ; print OUT " bottom TRUE " ; print OUT "\n" ; print OUT " } " ; print OUT "\n" ; print OUT " } " ; print OUT "\n" ; print OUT " DEF ball_sensor$y2 TouchSensor {} "; print OUT "\n" ; print OUT " ] " ; print OUT "\n" ; print OUT " } " ; print OUT "\n" ; $x_axis=$x_axis+2; } } close (OUT); } } sub all_gen_bar_chart { my(@com1_chart_lines)=@_; my ($com1_c_index)=0; my ($com1_chart_line); my (@com1_ordered); my ($m); my ($n); my ($a0); my ($a1); my ($a2); my ($a3); my ($var1)=0; my ($var2)=0; my ($var3)=0; while ($com1_chart_line = pop @com1_chart_lines) { @com1_c_var = split(" ",$com1_chart_line); @com1_c_g[$com1_c_index]=@com1_c_var[0]; @com1_c_x[$com1_c_index]=@com1_c_var[1]; @com1_c_y[$com1_c_index]=@com1_c_var[2]; @com1_c_z[$com1_c_index]=@com1_c_var[3]; @com1_c_f[$com1_c_index]=@com1_c_var[4]; $com1_c_index++; $com1_c_gen++; } # print "@com1_c_g[5]"; open(OUT3,">AllGenBarChart.wrl") ||die "Can't open AllGenBarChart.wrl\n"; print OUT3 "#VRML V2.0 utf8"; print OUT3 "\n"; print OUT3 "Background {"; print OUT3 "\n"; print OUT3 "skyAngle[1 , 1.55, 1.6]"; print OUT3 "\n"; print OUT3 "skyColor[1 1 1, .98 .98 1, .9 .9 1, .8 .8 1]"; print OUT3 "\n"; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "Viewpoint { "; print OUT3 "\n" ; print OUT3 "position 30 80 250"; print OUT3 "\n"; print OUT3" orientation 1 0 0 -.5"; print OUT3 "\n" ; print OUT3" description \"faroff\" "; print OUT3 "\n" ; print OUT3" }"; print OUT3 "\n" ; print OUT3"Viewpoint {"; print OUT3 "\n" ; print OUT3 " position -150 0 -20"; print OUT3 "\n" ; print OUT3 " orientation 0 1 0 -1.8"; print OUT3 "\n" ; print OUT3 " description \"left\" "; print OUT3" }"; print OUT3 "\n" ; print OUT3"Viewpoint {"; print OUT3 "\n" ; print OUT3 " position 30 450 150"; print OUT3 "\n" ; print OUT3 " orientation 1 0 0 -1.5"; print OUT3 "\n" ; print OUT3 " description \"top\" "; print OUT3 "\n" ; print OUT3 " }"; print OUT3 "\n" ; print OUT3"Viewpoint {"; print OUT3 "\n" ; print OUT3 "position 180 0 -20"; print OUT3 "\n" ; print OUT3 "orientation 0 1 0 1.8"; print OUT3 "\n" ; print OUT3 "description \"right\" "; print OUT3 "\n" ; print OUT3 " }" ; # Show all generation button print OUT3 "Transform {"; print OUT3 "\n" ; print OUT3 "translation 140 -2 50"; print OUT3 "\n" ; print OUT3 "children ["; print OUT3 "\n" ; print OUT3 "DEF ShowAllGen TouchSensor{}"; print OUT3 "\n" ; print OUT3 "\n" ; print OUT3 "Shape {"; print OUT3 "\n" ; print OUT3 "appearance Appearance {"; print OUT3 "\n" ; print OUT3 "material Material {"; print OUT3 "\n" ; print OUT3 " diffuseColor 5 2 1"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "geometry Box {size 15 10 10}"; print OUT3 "\n" ; print OUT3 "appearance Appearance {"; print OUT3 "\n" ; print OUT3 "material Material {"; print OUT3 "\n" ; print OUT3 "diffuseColor 0 1 0 }"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "]"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; my($x_axis)=-8; my($var4)=0; my ($com1_z_axis)=-50; for ($x6=0;$x6<36;$x6++) { my($var)=0; my(@temp_f)=''; my ($com1_x_axis)=-40; for ($y6=0;$y6<$com1_c_index;$y6++) { if(@com1_c_g[$y6] eq $x6) { @temp_f[$var]=@com1_c_f[$y6]; $temp_g=$x6; $var++; } } if($temp_g <= 10) { #print "$com1_c_g[$y6]"; $com1_color_x2 = $temp_g/10; $com1_color_y2 = 0; $com1_color_z2 = 0; #print "@com1_color_x2[$y6]"; $com1_size2 =0.5; } if($temp_g >10 && $temp_g <=20) { $com1_size2 = 0.5; $com1_color_x2 = 0; $com1_color_y2 = $temp_g/40; $com1_color_z2 = 0; } if($temp_g >20 && $temp_g <=30) { $com1_size2 = 0.5; $com1_color_x2 = 0; $com1_color_y2 = 0; $com1_color_z2 = $temp_g/60; } if($temp_g > 30) { $com1_size2 = 0.5; $com1_color_x2 = 0; $com1_color_y2 = $temp_g/180; $com1_color_z2 = $temp_g/40; } $x_axis=$x_axis+$x6; print OUT3 "\n" ; print OUT3 "Group {"; print OUT3 "\n" ; print OUT3 "children ["; print OUT3 "\n" ; print OUT3 "Viewpoint { position 0 0 0"; print OUT3 "\n" ; #print OUT3 "description \"1\""; print OUT3 "\n" ; print OUT3 "orientation 1 0 0 0"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "DEF HudGroup Collision {"; print OUT3 "\n" ; print OUT3 "children ["; print OUT3 "\n" ; print OUT3 "\n" ; print OUT3 "DEF HudXform$x6 Transform {"; print OUT3 "\n" ; print OUT3 "children ["; print OUT3 "\n" ; print OUT3 "Transform {"; print OUT3 "\n" ; $temp_com1_z_axis=$com1_z_axis+.75; print OUT3 "translation 118 -2 $temp_com1_z_axis"; print OUT3 "\n" ; print OUT3 "children["; print OUT3 "\n" ; print OUT3 "Shape {"; print OUT3 "\n" ; print OUT3 "geometry Text {"; print OUT3 "\n" ; print OUT3 "string \"$x6\""; print OUT3 "\n" ; print OUT3 "fontStyle FontStyle {"; print OUT3 "\n" ; print OUT3 "size 4.5"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "]"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "Transform {"; print OUT3 "\n" ; print OUT3 "translation 120 -2 $com1_z_axis"; print OUT3 "\n" ; print OUT3 "children ["; print OUT3 "\n" ; my($l)=0; #for($l=0;$l<$var ;$l++) { $var4++; #print OUT3 "DEF ShowGen$var4 TouchSensor{}"; print OUT3 "DEF ShowGen$x6 TouchSensor{}"; print OUT3 "\n" ; } print OUT3 "\n" ; print OUT3 "Shape {"; print OUT3 "\n" ; print OUT3 "appearance Appearance {"; print OUT3 "\n" ; print OUT3 "material Material {"; print OUT3 "\n" ; print OUT3 " diffuseColor 5 2 1"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "geometry Box {size 4 5 1}"; print OUT3 "\n" ; print OUT3 "appearance Appearance {"; print OUT3 "\n" ; print OUT3 "material Material {"; print OUT3 "\n" ; print OUT3 "diffuseColor 1 0 0 }"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "]"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "]"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "]"; print OUT3 "\n" ; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "]"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "Transform {"; print OUT3 "\n" ; print OUT3 "translation 0 0 0"; print OUT3 "\n" ; print OUT3 "children ["; print OUT3 "\n" ; print OUT3 "DEF XT Transform {"; print OUT3 "\n" ; print OUT3 "children ["; print OUT3 "\n" ; print OUT3 "Shape{"; print OUT3 "\n" ; print OUT3 "appearance Appearance{"; print OUT3 "\n" ; print OUT3 "material Material {"; print OUT3 "\n" ; print OUT3 "diffuseColor 0 0 1"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "geometry DEF DEBUG_TEXT Text{"; print OUT3 "\n" ; print OUT3 "string [\" \"]"; print OUT3 "\n" ; print OUT3 "fontStyle FontStyle{"; print OUT3 "\n" ; print OUT3 "style \"BOLD\""; print OUT3 "\n" ; print OUT3 "size 2.0"; print OUT3 "\n" ; print OUT3 "spacing 1.5}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "]"; print OUT3 "\n" ; print OUT3 "translation -60 15 $com1_z_axis"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "DEF switchScript$x6 Script {"; print OUT3 "\n" ; print OUT3 "field SFBool mySwitchOn FALSE"; print OUT3 "\n" ; print OUT3 "field MFString offText [ \" \" ]"; print OUT3 "\n" ; print OUT3 "eventOut MFString changedText"; print OUT3 "\n" ; @com1_ordered=sort{$b <=> $a} @temp_f; for($a0=0;$a0<$var;$a0++) { $var0++; print OUT3 "field MFString onText$var0 [ \" Generation No: $x6\",\" Member value: @com1_ordered[$a0]\" ]"; print OUT3 "\n" ; print OUT3 "eventIn SFBool touchedSwitch$a0"; print OUT3 "\n" ; } print OUT3 "url [ \"javascript:"; print OUT3 "\n" ; for($a1=0;$a1<$var;$a1++) { $var1++; print OUT3 "function touchedSwitch$a1(ts) {"; print OUT3 "\n" ; print OUT3 "if (ts) {if (mySwitchOn) {"; print OUT3 "\n" ; print OUT3 "mySwitchOn = false;"; print OUT3 "\n" ; print OUT3 "changedText = offText;"; print OUT3 "\n" ; print OUT3 "} else {"; print OUT3 "\n" ; print OUT3 "mySwitchOn = true;"; print OUT3 "\n" ; print OUT3 "changedText = onText$var1;"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "} "; print OUT3 "\n" ; } print OUT3 " \"]"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; for($a2=0;$a2<$var;$a2++) { $var2++; ; my ($com1_y_axis)= -2+@com1_ordered[$a2]/2; print OUT3 "DEF switch$var2 Switch{"; print OUT3 "\n" ; print OUT3 "whichChoice 1"; print OUT3 "\n" ; print OUT3 "choice["; print OUT3 "\n" ; print OUT3 " Transform{" ; print OUT3 "\n" ; print OUT3 " translation $com1_x_axis $com1_y_axis $com1_z_axis "; print OUT3 "\n" ; print OUT3 " children [ " ; print OUT3 "\n" ; print OUT3 " Shape { " ; print OUT3 "\n" ; print OUT3" appearance Appearance{ " ; print OUT3 "\n" ; print OUT3 " material Material{emissiveColor $com1_color_x2 $com1_color_y2 $com1_color_z2 }}" ; print OUT3 "\n" ; print OUT3 " geometry Cylinder{radius 1.5"; print OUT3 "\n" ; print OUT3 " height @com1_ordered[$a2]"; print OUT3 "\n" ; print OUT3 " side TRUE " ; print OUT3 "\n" ; print OUT3 " top TRUE " ; print OUT3 "\n" ; print OUT3 " bottom TRUE " ; print OUT3 "\n" ; print OUT3 " } " ; print OUT3 "\n" ; print OUT3 " } " ; print OUT3 "\n" ; print OUT3 " DEF InfoSensor$var2 TouchSensor {} "; print OUT3 "\n" ; print OUT3 " ] " ; print OUT3 "\n" ; print OUT3 " } " ; print OUT3 "\n" ; print OUT3 " ] " ; print OUT3 "\n" ; print OUT3 " } " ; print OUT3 "\n" ; $com1_x_axis=$com1_x_axis+5; } #for $com1_z_axis=$com1_z_axis+6; print OUT3 "DEF myScript$x6 Script{"; print OUT3 "\n" ; print OUT3 "eventIn SFBool touched"; print OUT3 "\n" ; print OUT3 "field SFBool lastValue FALSE"; print OUT3 "\n" ; print OUT3 "eventOut SFInt32 choice"; print OUT3 "\n" ; print OUT3 "url [ \"javascript:"; print OUT3 "\n" ; print OUT3 "function touched(value) {"; print OUT3 "\n" ; print OUT3 "if (value){"; print OUT3 "\n" ; print OUT3 "lastValue=!lastValue;"; print OUT3 "\n" ; print OUT3 "if (lastValue)"; print OUT3 "\n" ; print OUT3 "choice=0;"; print OUT3 "\n" ; print OUT3 "else"; print OUT3 "\n" ; print OUT3 "choice=1;"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "\"]"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "]"; print OUT3 "\n" ; print OUT3 "}"; print OUT3 "\n" ; print OUT3 "ROUTE ShowGen$x6.isActive TO myScript$x6.touched"; print OUT3 "\n" ; print OUT3 "ROUTE ShowAllGen.isActive TO myScript$x6.touched"; for($a3=0;$a3<$var;$a3++) { $var3++ ; #print OUT3 "ROUTE ShowGen$var3.isActive TO myScript$x6.touched"; print OUT3 "\n" ; print OUT3 "ROUTE myScript$x6.choice TO switch$var3.set_whichChoice "; print OUT3 "\n" ; print OUT3 "ROUTE InfoSensor$var3.isOver TO switchScript$x6.touchedSwitch$a3"; print OUT3 "\n" ; } print OUT3 "ROUTE switchScript$x6.changedText TO DEBUG_TEXT.set_string"; print OUT3 "\n" ; } close(OUT3); } sub all_gen_sheet_chart { my(@com1_chart_lines)=@_; my ($com1_c_index)=0; my ($com1_chart_line); my (@com1_ordered); my ($m); my ($n); my ($a0); my ($a1); my ($a2); my ($a3); my ($var0)=0; my ($var1)=0; my ($var2)=0; my ($var3)=0; while ($com1_chart_line = pop @com1_chart_lines) { @com1_c_var = split(" ",$com1_chart_line); @com1_c_g[$com1_c_index]=@com1_c_var[0]; @com1_c_x[$com1_c_index]=@com1_c_var[1]; @com1_c_y[$com1_c_index]=@com1_c_var[2]; @com1_c_z[$com1_c_index]=@com1_c_var[3]; @com1_c_f[$com1_c_index]=@com1_c_var[4]; $com1_c_index++; $com1_c_gen++; } open(OUT4,">AllGenSheetChart.wrl") ||die "Can't open AllGenSheetChart.wrl\n"; print OUT4 "#VRML V2.0 utf8"; print OUT4 "\n"; print OUT4 "Background {"; print OUT4 "\n"; print OUT4 "skyAngle[1 , 1.55, 1.6]"; print OUT4 "\n"; print OUT4 "skyColor[1 1 1, .98 .98 1, .9 .9 1, .8 .8 1]"; print OUT4 "\n"; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "Viewpoint { "; print OUT4 "\n" ; print OUT4 "position 30 80 250"; print OUT4 "\n"; print OUT4" orientation 1 0 0 -.5"; print OUT4 "\n" ; print OUT4" description \"faroff\" "; print OUT4 "\n" ; print OUT4" }"; print OUT4 "\n" ; print OUT4"Viewpoint {"; print OUT4 "\n" ; print OUT4 " position -150 0 -20"; print OUT4 "\n" ; print OUT4 " orientation 0 1 0 -1.8"; print OUT4 "\n" ; print OUT4 " description \"left\" "; print OUT4" }"; print OUT4 "\n" ; print OUT4"Viewpoint {"; print OUT4 "\n" ; print OUT4 " position 30 450 150"; print OUT4 "\n" ; print OUT4 " orientation 1 0 0 -1.5"; print OUT4 "\n" ; print OUT4 " description \"top\" "; print OUT4 "\n" ; print OUT4 " }"; print OUT4 "\n" ; print OUT4"Viewpoint {"; print OUT4 "\n" ; print OUT4 "position 180 0 -20"; print OUT4 "\n" ; print OUT4 "orientation 0 1 0 1.8"; print OUT4 "\n" ; print OUT4 "description \"right\" "; print OUT4 "\n" ; print OUT4 " }" ; # Show all generation button print OUT4 "Transform {"; print OUT4 "\n" ; print OUT4 "translation 135 -2 50"; print OUT4 "\n" ; print OUT4 "children ["; print OUT4 "\n" ; print OUT4 "DEF ShowAllGen TouchSensor{}"; print OUT4 "\n" ; print OUT4 "\n" ; print OUT4 "Shape {"; print OUT4 "\n" ; print OUT4 "appearance Appearance {"; print OUT4 "\n" ; print OUT4 "material Material {"; print OUT4 "\n" ; print OUT4 " diffuseColor 5 2 1"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "geometry Box {size 15 10 10}"; print OUT4 "\n" ; print OUT4 "appearance Appearance {"; print OUT4 "\n" ; print OUT4 "material Material {"; print OUT4 "\n" ; print OUT4 "diffuseColor 0 1 0 }"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "]"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; my($x_axis)=-8; my($var4)=0; my ($com1_z_axis)=-50; for ($x6=0;$x6<36;$x6++) { my($var)=0; my(@temp_f)=''; my(@com1_ordered)=''; my ($com1_x_axis)=-8; for ($y6=0;$y6<$com1_c_index;$y6++) { if(@com1_c_g[$y6] eq $x6) { @temp_f[$var]=@com1_c_f[$y6]; $var++; } } $x_axis=$x_axis+$x6; print OUT4 "\n" ; print OUT4 "Group {"; print OUT4 "\n" ; print OUT4 "children ["; print OUT4 "\n" ; print OUT4 "Viewpoint { position 0 0 0"; print OUT4 "\n" ; print OUT4"\n" ; print OUT4 "orientation 1 0 0 0"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "DEF HudGroup Collision {"; print OUT4 "\n" ; print OUT4 "children ["; print OUT4 "\n" ; print OUT4 "DEF HudXform$x6 Transform {"; print OUT4 "\n" ; print OUT4 "children ["; print OUT4 "\n" ; print OUT4 "Transform {"; print OUT4 "\n" ; $temp_com2_z_axis=$com1_z_axis+.75; print OUT4 "translation 118 -2 $temp_com2_z_axis"; print OUT4 "\n" ; print OUT4 "children["; print OUT4 "\n" ; print OUT4 "Shape {"; print OUT4 "\n" ; print OUT4 "geometry Text {"; print OUT4 "\n" ; print OUT4 "string \"$x6\""; print OUT4 "\n" ; print OUT4 "fontStyle FontStyle {"; print OUT4 "\n" ; print OUT4 "size 4.5"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "]"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "Transform {"; print OUT4 "\n" ; print OUT4 "translation 120 -2 $com1_z_axis"; print OUT4 "\n" ; print OUT4 "children ["; print OUT4 "\n" ; my($l)=0; $var4++; print OUT4"DEF ShowGen$x6 TouchSensor{}"; print OUT4"\n" ; print OUT4 "\n" ; print OUT4 "Shape {"; print OUT4 "\n" ; print OUT4 "appearance Appearance {"; print OUT4 "\n" ; print OUT4 "material Material {"; print OUT4 "\n" ; print OUT4 " diffuseColor 5 2 1"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "geometry Box {size 4 5 1}"; print OUT4 "\n" ; print OUT4 "appearance Appearance {"; print OUT4 "\n" ; print OUT4 "material Material {"; print OUT4 "\n" ; print OUT4 "diffuseColor 1 0 0 }"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "]"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "]"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "]"; print OUT4 "\n" ; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "]"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; @com1_ordered=sort{$b <=> $a} @temp_f; my ($com1_y_axis)= -2+@com1_ordered[0]/2; print OUT4 "Transform {"; print OUT4 "\n" ; print OUT4 "translation 0 0 0"; print OUT4 "\n" ; print OUT4 "children ["; print OUT4 "\n" ; print OUT4 "DEF XT Transform {"; print OUT4 "\n" ; print OUT4 "children ["; print OUT4 "\n" ; print OUT4 "Shape{"; print OUT4 "\n" ; print OUT4 "appearance Appearance{"; print OUT4 "\n" ; print OUT4 "material Material {"; print OUT4 "\n" ; print OUT4 "diffuseColor 0 0 1"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "geometry DEF DEBUG_TEXT Text{"; print OUT4 "\n" ; print OUT4 "string [\" \"]"; print OUT4 "\n" ; print OUT4 "fontStyle FontStyle{"; print OUT4 "\n" ; print OUT4 "style \"BOLD\""; print OUT4 "\n" ; print OUT4 "size 2.0"; print OUT4 "\n" ; print OUT4 "spacing 1.5}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "]"; print OUT4 "\n" ; print OUT4 "translation -100 @com1_ordered[0] $com1_z_axis"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "DEF switchScript$x6 Script {"; print OUT4 "\n" ; print OUT4 "field SFBool mySwitchOn FALSE"; print OUT4 "\n" ; print OUT4 "field MFString offText [ \" \" ]"; print OUT4 "\n" ; print OUT4 "eventOut MFString changedText"; print OUT4 "\n" ; $var0++; print OUT4 "field MFString onText$x6 [ \" Generation No = $x6\",\" Generation Max = @com1_ordered[0]\",\" Generation Min = @com1_ordered[$var-1]\" ]"; print OUT4 "\n" ; print OUT4 "eventIn SFBool touchedSwitch"; print OUT4 "\n" ; print OUT4 "url [ \"javascript:"; print OUT4 "\n" ; $var1++; print OUT4 "function touchedSwitch(ts) {"; print OUT4 "\n" ; print OUT4 "if (ts) {if (mySwitchOn) {"; print OUT4 "\n" ; print OUT4 "mySwitchOn = false;"; print OUT4 "\n" ; print OUT4 "changedText = offText;"; print OUT4 "\n" ; print OUT4 "} else {"; print OUT4 "\n" ; print OUT4 "mySwitchOn = true;"; print OUT4 "\n" ; print OUT4 "changedText = onText$x6;"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "} "; print OUT4 "\n" ; print OUT4 " \"]"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "DEF switch$x6 Switch{"; print OUT4 "\n" ; print OUT4 "whichChoice 1"; print OUT4 "\n" ; print OUT4 "choice["; print OUT4 "\n" ; print OUT4 " Transform{" ; print OUT4 "\n" ; print OUT4 " translation -70 -1 $com1_z_axis "; print OUT4 "\n" ; print OUT4 " children [ " ; print OUT4 "\n" ; print OUT4 " Shape { " ; print OUT4 "\n" ; print OUT4" appearance Appearance{ " ; print OUT4 "\n" ; print OUT4 " material Material{emissiveColor $com1_color_x2 $com1_color_y2 $com1_color_z2 }}" ; print OUT4 "\n" ; print OUT4 " geometry ElevationGrid{"; print OUT4 "\n" ; print OUT4 "xDimension $var "; print OUT4 "\n" ; print OUT4 "zDimension 2 "; print OUT4 "\n" ; print OUT4 "xSpacing 5 "; print OUT4 "\n" ; print OUT4 "zSpacing 5 "; print OUT4 "\n" ; print OUT4 "height [ "; print OUT4 "\n" ; for($a=0;$a<$var;$a++) { print OUT4 "@com1_ordered[$a],"; } print OUT4 "\n" ; for($a=0;$a<$var-1;$a++) { print OUT4 "@com1_ordered[$a],"; } print OUT4 "@com1_ordered[$var-1]"; print OUT4 "\n" ; print OUT4 " ] "; print OUT4 "\n" ; print OUT4 "color Color { color [ "; print OUT4 "\n" ; for($a1=0;$a1<$var-1;$a1++) { print OUT4 "1 0 0, 0 0 0,"; $a1++; } print OUT4 "\n" ; for($a1=0;$a1<$var-2;$a1++) { print OUT4 "1 0 0, 0 0 0,"; $a1++; } print OUT4 "1 0 0, 0 0 0"; print OUT4 "\n" ; print OUT4 " ]"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "colorPerVertex FALSE"; print OUT4 "\n" ; print OUT4 " } " ; print OUT4 "\n" ; print OUT4 " } " ; print OUT4 "\n" ; print OUT4 " DEF InfoSensor$x6 TouchSensor {} "; print OUT4 "\n" ; print OUT4 " ] " ; print OUT4 "\n" ; print OUT4 " } " ; print OUT4 "\n" ; print OUT4 " ] " ; print OUT4 "\n" ; print OUT4 " } " ; print OUT4 "\n" ; $com1_x_axis=$com1_x_axis+2; $com1_z_axis=$com1_z_axis+5; print OUT4 "DEF myScript$x6 Script{"; print OUT4 "\n" ; print OUT4 "eventIn SFBool touched"; print OUT4 "\n" ; print OUT4 "field SFBool lastValue FALSE"; print OUT4 "\n" ; print OUT4 "eventOut SFInt32 choice"; print OUT4 "\n" ; print OUT4 "url [ \"javascript:"; print OUT4 "\n" ; print OUT4 "function touched(value) {"; print OUT4 "\n" ; print OUT4 "if (value){"; print OUT4 "\n" ; print OUT4 "lastValue=!lastValue;"; print OUT4 "\n" ; print OUT4 "if (lastValue)"; print OUT4 "\n" ; print OUT4 "choice=0;"; print OUT4 "\n" ; print OUT4 "else"; print OUT4 "\n" ; print OUT4 "choice=1;"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "\"]"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "]"; print OUT4 "\n" ; print OUT4 "}"; print OUT4 "\n" ; print OUT4 "ROUTE ShowGen$x6.isActive TO myScript$x6.touched"; print OUT4 "\n" ; print OUT4 "ROUTE ShowAllGen.isActive TO myScript$x6.touched"; print OUT4 "\n" ; print OUT4 "ROUTE myScript$x6.choice TO switch$x6.set_whichChoice "; $var3++ ; print OUT4 "\n" ; print OUT4 "ROUTE InfoSensor$x6.isOver TO switchScript$x6.touchedSwitch"; print OUT4 "\n" ; print OUT4 "ROUTE switchScript$x6.changedText TO DEBUG_TEXT.set_string"; print OUT4 "\n" ; } close(OUT4); } sub AllGenBarChart { my(@com5_chart_lines)=@_; my ($com5_c_index)=0; my ($com5_chart_line); my (@com5_ordered); my ($m); my ($n); my ($a0); my ($a1); my ($a2); my ($a3); my ($var1)=0; my ($var2)=0; my ($var3)=0; while ($com5_chart_line = pop @com5_chart_lines) { @com5_c_var = split(" ",$com5_chart_line); @com1_c_g[$com5_c_index]=@com5_c_var[0]; @com1_c_x[$com5_c_index]=@com5_c_var[1]; @com1_c_y[$com5_c_index]=@com5_c_var[2]; @com1_c_z[$com5_c_index]=@com5_c_var[3]; @com1_c_f[$com5_c_index]=@com5_c_var[4]; $com5_c_index++; $com1_c_gen++; } open(OUT5,">AllGenBarChartMovie.wrl") ||die "Can't open AllGenBarChartMovie.wrl\n"; print OUT5 "#VRML V2.0 utf8"; print OUT5 "\n"; print OUT5 "Background {"; print OUT5 "\n"; print OUT5 "skyAngle[1 , 1.55, 1.6]"; print OUT5 "\n"; print OUT5 "skyColor[1 1 1, .98 .98 1, .9 .9 1, .8 .8 1]"; print OUT5 "\n"; print OUT5 "}"; print OUT5 "\n" ; print OUT5 "Viewpoint { "; print OUT5 "\n" ; print OUT5 "position -400 0 200"; print OUT5 "\n"; print OUT5" orientation 0 0 0 0"; print OUT5 "\n" ; print OUT5" description \"faroff\" "; print OUT5 "\n" ; print OUT5" }"; print OUT5 "\n" ; print OUT5"Viewpoint {"; print OUT5 "\n" ; print OUT5 " position -150 0 -20"; print OUT5 "\n" ; print OUT5 " orientation 0 1 0 -1.8"; print OUT5 "\n" ; print OUT5 " description \"left\" "; print OUT5" }"; print OUT5 "\n" ; print OUT5"Viewpoint {"; print OUT5 "\n" ; print OUT5 " position 30 450 150"; print OUT5 "\n" ; print OUT5 " orientation 1 0 0 -1.5"; print OUT5 "\n" ; print OUT5 " description \"top\" "; print OUT5 "\n" ; print OUT5 " }"; print OUT5 "\n" ; print OUT5"Viewpoint {"; print OUT5 "\n" ; print OUT5 "position 180 0 -20"; print OUT5 "\n" ; print OUT5 "orientation 0 1 0 1.8"; print OUT5 "\n" ; print OUT5 "description \"right\" "; print OUT5 "\n" ; print OUT5 " }" ; my($x_axis)=-8; my($var4)=0; my ($com1_z_axis)=100; my ($gen_start_x)=-400; my ($com1_x_axis)=0; my ($temp_y) =-2; my ($temp_x) =-100; for ($x6=0;$x6<36;$x6++) { my($var)=0; my(@temp_f)=''; my($temp_g)=0; for ($y6=0;$y6<$com5_c_index;$y6++) { if(@com1_c_g[$y6] eq $x6) { @temp_f[$var]=@com1_c_f[$y6]; $temp_g=$x6; $var++; } } if($temp_g <= 10) { $com1_color_x2 = $temp_g/10; $com1_color_y2 = 0; $com1_color_z2 = 0; $com1_size2 =0.5; } if($temp_g >10 && $temp_g <=20) { $com1_size2 = 0.5; $com1_color_x2 = 0; $com1_color_y2 = $temp_g/40; $com1_color_z2 = 0; } if($temp_g >20 && $temp_g <=30) { $com1_size2 = 0.5; $com1_color_x2 = 0; $com1_color_y2 = 0; $com1_color_z2 = $temp_g/60; } if($temp_g > 30) { $com1_size2 = 0.5; $com1_color_x2 = 0; $com1_color_y2 = $temp_g/180; $com1_color_z2 = $temp_g/40; } @com5_ordered=sort{$b <=> $a} @temp_f; $x_axis=$x_axis+$x6; print OUT5 "\n" ; print OUT5 "Transform {"; print OUT5 "\n" ; print OUT5 "translation 0 0 0"; print OUT5 "\n" ; print OUT5 "children ["; print OUT5 "\n" ; $com1_x_axis=$gen_start_x; for($a2=0;$a2<$var;$a2++) { $var2++; ; my ($com1_y_axis)= $temp_y+@com5_ordered[$a2]/2; print OUT5 "\n" ; print OUT5 " Transform{" ; print OUT5 "\n" ; print OUT5 " translation $com1_x_axis $com1_y_axis $com1_z_axis "; print OUT5 "\n" ; print OUT5 " children [ " ; print OUT5 "\n" ; print OUT5 " Shape { " ; print OUT5 "\n" ; print OUT5" appearance Appearance{ " ; print OUT5 "\n" ; print OUT5 " material Material{emissiveColor $com1_color_x2 $com1_color_y2 $com1_color_z2 }}" ; print OUT5 "\n" ; print OUT5 " geometry Cylinder{radius 1.5"; print OUT5 "\n" ; print OUT5 " height @com5_ordered[$a2]"; print OUT5 "\n" ; print OUT5 " side TRUE " ; print OUT5 "\n" ; print OUT5 " top TRUE " ; print OUT5 "\n" ; print OUT5 " bottom TRUE " ; print OUT5 "\n" ; print OUT5 " } " ; print OUT5 "\n" ; print OUT5 " } " ; print OUT5 "\n" ; print OUT5 " ] " ; print OUT5 "\n" ; print OUT5 " } " ; print OUT5 "\n" ; $com1_x_axis=$com1_x_axis+5; } #for $text_x=$gen_start_x+10; $text_z=$com1_z_axis+10; $gen_start_x=$gen_start_x+300; $com1_z_axis=$com1_z_axis; $temp_y=$temp_y; $com1_x_axis=$com1_x_axis+50; print OUT5 "\n" ; print OUT5 "]"; print OUT5 "\n" ; print OUT5 "}"; print OUT5 "\n" ; print OUT5 "Transform{" ; print OUT5 " \n " ; print OUT5 "translation $text_x -3 $text_z" ; print OUT5 " \n " ; print OUT5 "children [" ; print OUT5 " \n " ; print OUT5 "Shape {" ; print OUT5 " \n " ; print OUT5 " appearance Appearance{ " ; print OUT5 "\n" ; print OUT5 " material Material{diffuseColor 1 0 0 }}" ; print OUT5 "\n" ; print OUT5 "geometry Text {" ; print OUT5 "\n" ; print OUT5 "string [\" Generation No: $x6 \"]" ; print OUT5 "\n" ; print OUT5 "fontStyle FontStyle{" ; print OUT5 "\n" ; print OUT5 "style \"BOLD\"" ; print OUT5 "\n" ; print OUT5 "size 5.8" ; print OUT5 "\n" ; print OUT5 "spacing 1.5}" ; print OUT5 "\n" ; print OUT5 "}" ; print OUT5 "\n" ; print OUT5 "}" ; print OUT5 "\n" ; print OUT5 "\n" ; print OUT5 "]" ; print OUT5 "\n" ; print OUT5 "}" ; print OUT5 "\n" ; } #SpaceShip Viewpoint print OUT5"Transform {"; print OUT5 "\n" ; print OUT5" children ["; print OUT5 "\n" ; print OUT5" Group {"; print OUT5 "\n" ; print OUT5" children ["; print OUT5 "\n" ; print OUT5" DEF bird_25 Group {"; print OUT5 "\n" ; print OUT5" children DEF Time_25 TimeSensor {"; print OUT5 "\n" ; print OUT5" cycleInterval 34"; print OUT5 "\n" ; print OUT5" loop FALSE"; print OUT5 "\n" ; print OUT5" startTime 0"; print OUT5 "\n" ; print OUT5" }"; print OUT5 "\n" ; print OUT5" }"; print OUT5 "\n" ; print OUT5" DEF VP25PositionInterp PositionInterpolator {"; print OUT5 "\n" ; print OUT5" key [ "; my($temp)=.04; print OUT5 ".02, "; for($p3=0;$p3<36;$p3++) { print OUT5"$temp ,$temp,"; $temp= $temp+1/36; } print OUT5"$temp "; print OUT5"]"; print OUT5 "\n" ; print OUT5" keyValue ["; my($temp_x1)=-350; my($temp_z1)= 135; my($temp_y1)=10; for($p4=0;$p4<36;$p4++) { print OUT5"$temp_x1 $temp_y1 $temp_z1, $temp_x1 $temp_y1 $temp_z1,"; $temp_x1=$temp_x1+300; } print OUT5"$temp_x1 $temp_y1 $temp_z1, $temp_x1 $temp_y1 $temp_z1 "; print OUT5 "]"; print OUT5 "\n" ; print OUT5" }"; print OUT5 "\n" ; print OUT5" ]"; print OUT5 "\n" ; print OUT5" }"; print OUT5 "\n" ; print OUT5" DEF VP25 Viewpoint {"; print OUT5 "\n" ; print OUT5" position 0 0 0"; print OUT5 "\n" ; print OUT5" orientation 0 0 0 0"; print OUT5 "\n" ; print OUT5" fieldOfView 1.57"; print OUT5 "\n" ; print OUT5" description \"SpaceShip1\""; print OUT5 "\n" ; print OUT5" }"; print OUT5 "\n" ; print OUT5" ]"; print OUT5 "\n" ; print OUT5"}"; print OUT5 "\n" ; print OUT5"ROUTE VP25.bindTime TO Time_25.set_startTime"; print OUT5 "\n" ; print OUT5"ROUTE Time_25.fraction_changed TO VP25PositionInterp.set_fraction"; print OUT5 "\n" ; print OUT5"ROUTE VP25PositionInterp.value_changed TO VP25.set_position"; close(OUT5); } sub cone { open(cone,">cone.wrl") ||die "Can't open cone.wrl\n"; print cone "#VRML V2.0 utf8"; print cone "\n "; print cone "Background {"; print cone "\n "; print cone "skyAngle[1 , 1.55, 1.6]"; print cone "\n "; print cone "skyColor[1 1 1, .98 .98 1, .9 .9 1, .8 .8 1]"; print cone "\n "; print cone "}"; print cone "\n "; print cone "Transform {"; print cone "\n "; print cone " translation 0 .5 0"; print cone "\n "; print cone "children ["; print cone "\n "; print cone "DEF cone Group {"; print cone "\n "; print cone " children ["; print cone "\n "; print cone " Shape {"; print cone "\n "; print cone " appearance Appearance{"; print cone "\n "; print cone " material Material{diffuseColor 1 0 0 shininess .1}}"; print cone "\n "; print cone " geometry Cone{"; print cone "\n "; print cone " bottomRadius .2"; print cone "\n "; print cone " height .5"; print cone "\n "; print cone " side TRUE"; print cone "\n "; print cone " bottom TRUE"; print cone "\n "; print cone " }"; print cone "\n "; print cone " }"; print cone "\n "; print cone " ]"; print cone "\n "; print cone " },"; print cone "\n "; print cone " Transform {"; print cone "\n "; print cone " children USE cone"; print cone "\n "; print cone " translation -.5 -.5 0"; print cone "\n "; print cone " rotation 0 0 1 1.57"; print cone "\n "; print cone " },"; print cone "\n "; print cone " Transform {"; print cone "\n "; print cone " children USE cone"; print cone "\n "; print cone " translation .5 -.5 0"; print cone "\n "; print cone " rotation 0 0 1 -1.57"; print cone "\n "; print cone " },"; print cone "\n "; print cone " Transform {"; print cone "\n "; print cone " children USE cone"; print cone "\n "; print cone " translation 0 -1 0"; print cone "\n "; print cone " rotation 1 0 0 3.1"; print cone "\n "; print cone " },"; print cone "\n "; print cone "]"; print cone "\n "; print cone "}"; print cone "\n "; close (button); } sub ga_index_html { open(ga_index,">ga_index.html") ||die "Can't open ga_index.html\n"; print ga_index " \n "; print ga_index "\n "; print ga_index "ga_index.html\n "; print ga_index "\n "; print ga_index "\n "; print ga_index "\n "; print ga_index "\n "; print ga_index "\n "; print ga_index "\n "; print ga_index "\n "; print ga_index "\n "; print ga_index "\n "; close (ga_index); } sub main_html { open(main,">main.html") ||die "Can't open main.html\n"; print main "\n "; print main "\n "; print main "main page\n "; print main "\n "; print main "\n "; print main "
\n "; print main "\n "; print main "
\n "; print main "\n "; print main " \n "; close (main); } sub message_html { open(message,">message.html") ||die "Can't open message.html\n"; print message"\n "; print message"\n "; print message"message.html\n "; print message"\n "; print message"\n "; print message" Start to explore the tool by clicking on the right side buttons.\n "; print message" \n "; print message"\n "; print message"\n "; close (message); } sub button_html { open(button_htm,">button.html") ||die "Can't open button.html\n"; print button_htm "\n "; print button_htm "\n "; print button_htm "button.html\n "; print button_htm "\n "; print button_htm "\n "; print button_htm "\n "; print button_htm "\n "; print button_htm "\n "; print button_htm "\n "; print button_htm "\n "; print button_htm "\n "; print button_htm "\n "; print button_htm "\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm " \n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "
\n "; print button_htm "\n "; print button_htm "\n "; close (button_htm); } sub text1_html { open(text1,">text1.html") ||die "Can't open text1.html\n"; print text1 "\n "; print text1 "\n "; print text1 "Generation Information\n "; print text1 "\n "; print text1 "\n "; print text1 "Information about this world \n "; print text1 "\n "; print text1 "\n "; print text1 "\n "; close (text1); } sub text2_html { open(text2,">text2.html") ||die "Can't open text2.html\n"; print text2 "\n "; print text2 "\n "; print text2 "Information of Min Generation\n "; print text2 "\n "; print text2 "\n "; print text2 "Information about min world \n "; print text2 "\n "; print text2 "\n "; print text2 "\n "; close (text2); } sub text3_html { open(text3,">text3.html") ||die "Can't open text3.html\n"; print text3 "\n "; print text3 "\n "; print text3 "text3.html\n "; print text3 "\n "; print text3 "\n "; print text3 "Information about this world\n "; print text3 "\n "; print text3 "
    \n "; print text3 "
  • This world shows all the generations at a time with the help of bar chart.\n "; print text3 "
  • To view all the generations, click on the green box.\n "; print text3 "
  • To on/off a particular generation, click on the red box corresponding to that generation.\n "; print text3 "
  • To show the information about that generation, move the mouse over the bar chart of that generation.\n "; print text3 "
  • To hide the information about that generation, again move the mouse over the bar chart of that generation.\n "; print text3 "
\n "; print text3 "
\n "; print text3 "\n "; print text3 "\n "; close (text3); } sub text4_html { open(text4,">text4.html") ||die "Can't open text4.html\n"; print text4 "\n "; print text4 "\n "; print text4 "text4.html\n "; print text4 "\n "; print text4 "\n "; print text4 "Information about this world\n "; print text4 "\n "; print text4 "
    \n "; print text4 "
  • This world shows all the generations at a time with the help of sheet chart.\n "; print text4 "
  • To view all the generations, click on the green box.\n "; print text4 "
  • To on/off a particular generation, click on the red box corresponding to that generation.\n "; print text4 "
  • To show the information about that generation, move the mouse over the sheet chart of that generation.\n "; print text4 "
  • To hide the information about that generation, again move the mouse over the sheet chart of that generation.\n "; print text4 "
\n "; print text4 "
\n "; print text4 "\n "; print text4 "\n "; close (text4); }