#!/usr/local/bin/perl
#
#add the space ship viewpoint in the AllGenBarChart.wrl
#Modified output2 for movie.
#if ($#ARGV !=1)
# {
# die "Usage: $0 inputfile outputfile\n";
# }
# ($infile,$outfile)=@ARGV;
# open(INPUT,"<$infile")|| die" Can't open $infile $!";
# open(OUTPUT,">$outfile")|| die" Can't output $outfile $!";
open(INPUT,"output1.wrl") || die "Can't open output.wrl\n";
@lines= reverse;
@lines1=@lines;
#print OUTPUT "@lines[0]";
$i=0;
$j=0;
while ($line =pop @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;
#max_result(@lines1);
#gen_chart(@lines1);
#com_gen_chart(@lines1);
#com_gen_chart1(@lines1);
#test(@lines1);
#test1(@lines1);
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" ;
# String Color=" 0 ";
$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" ;
max_result(@lines1);
gen_chart(@lines1);
com_gen_chart(@lines1);
com_gen_chart1(@lines1);
test(@lines1);
test1(@lines1);
AllGenBarChart(@lines1);
close (INPUT);
close (OUTPUT);
sub max_result {
open(OUTPUT1,">output2.wrl") || die "Can't open output.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[$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 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 " }, " ;
print OUTPUT1 "\n" ;
#print OUTPUT1 "description \"Chart World$m2\"" ;
#print OUTPUT1 "\n" ;
#print OUTPUT1 "parameter [\"\"]" ;
#print OUTPUT1 "\n" ;
#print OUTPUT1 "url [\"chart$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";
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 [\"chart$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 [\"AllGenBarChart.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 { emissiveColor 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";
}
sub button_min_world
{
open(button,">button_min_world.wrl") ||die "Can't open chart.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{emissiveColor .5 .5 .5 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" ;
# 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[$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 [\"\"]" ;
print OUTPUT "\n" ;
print OUTPUT "url [\"index.html\"]" ;
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 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 { emissiveColor 0 1 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" ;
}
sub gen_chart {
#open(OUTPUT1,">output2.wrl") || die "Can't open output.wrl\n";
@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,">chart$x2.wrl") ||die "Can't open chart.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 com_gen_chart
{
#open(OUTPUT1,">output2.wrl") || die "Can't open output.wrl\n";
@com_chart_lines=@_;
my ($com_c_index)=0;
while ($com_chart_line = pop @com_chart_lines)
{
@com_c_var = split(" ",$com_chart_line);
@com_c_g[$com_c_index]=@com_c_var[0];
@com_c_x[$com_c_index]=@com_c_var[1];
@com_c_y[$com_c_index]=@com_c_var[2];
@com_c_z[$com_c_index]=@com_c_var[3];
@com_c_f[$com_c_index]=@com_c_var[4];
$com_c_index++;
$com_c_gen++;
}
open(OUT1,">com_chart.wrl") ||die "Can't open chart.wrl\n";
# for ($x2=0;$x2<36;$x2++)
# {
print OUT1 "#VRML V2.0 utf8";
print OUT1 "\n";
print OUT1 "Background {";
print OUT1 "\n";
print OUT1 "skyAngle[1 , 1.55, 1.6]";
print OUT1 "\n";
print OUT1 "skyColor[1 1 1, .98 .98 1, .9 .9 1, .8 .8 1]";
print OUT1 "\n";
print OUT1 "}";
print OUT1 "\n" ;
print OUT1 "Viewpoint { ";
print OUT1 "\n" ;
print OUT1 "position 30 8 80";
print OUT1 "\n";
print OUT1" orientation 10 1 1 0";
print OUT1 "\n" ;
print OUT1" description \"faroff\" ";
print OUT1 "\n" ;
print OUT1" }";
print OUT1 "\n" ;
print OUT1"Viewpoint {";
print OUT1 "\n" ;
print OUT1 " position 10 0 20";
print OUT1 "\n" ;
print OUT1 " orientation 10 1 1 0";
print OUT1 "\n" ;
print OUT1 " description \"view1\" ";
print OUT1" }";
print OUT1 "\n" ;
print OUT1"Viewpoint {";
print OUT1 "\n" ;
print OUT1 " position 15 0 20";
print OUT1 "\n" ;
print OUT1 " orientation 10 1 1 0";
print OUT1 "\n" ;
print OUT1 " description \"view2\" ";
print OUT1 "\n" ;
print OUT1 " }";
print OUT1 "\n" ;
print OUT1"Viewpoint {";
print OUT1 "\n" ;
print OUT1 "position 20 0 20";
print OUT1 "\n" ;
print OUT1 "orientation 10 1 1 0";
print OUT1 "\n" ;
print OUT1 "description \"view3\" ";
print OUT1 "\n" ;
print OUT1 " }" ;
print OUT1 "\n" ;
print OUT1 " Transform{" ;
print OUT1 "\n" ;
print OUT1 " translation 38 -2 0 ";
print OUT1 "\n" ;
print OUT1 " children [ " ;
print OUT1 "\n" ;
print OUT1 " Shape { " ;
print OUT1 "\n" ;
print OUT1 " appearance Appearance{ " ;
print OUT1 "\n" ;
print OUT1 " material Material{emissiveColor 1 0 0 }}" ;
print OUT1 "\n" ;
print OUT1 " geometry Box{size 100 1 5 }";
print OUT1 "\n" ;
print OUT1 " } " ;
print OUT1 "\n" ;
print OUT1 " ] " ;
print OUT1 "\n" ;
print OUT1 " } " ;
print OUT1 "\n" ;
print OUT1 "\n" ;
print OUT1 " Transform{" ;
print OUT1 "\n" ;
print OUT1 " translation -12 17.5 0 ";
print OUT1 "\n" ;
print OUT1 " children [ " ;
print OUT1 "\n" ;
print OUT1 " Shape { " ;
print OUT1 "\n" ;
print OUT1 " appearance Appearance{ " ;
print OUT1 "\n" ;
print OUT1 " material Material{emissiveColor 1 0 0 }}" ;
print OUT1 "\n" ;
print OUT1 " geometry Box{size 1 40 5 }";
print OUT1 "\n" ;
print OUT1 " } " ;
print OUT1 "\n" ;
print OUT1 " ] " ;
print OUT1 "\n" ;
print OUT1 " } " ;
print OUT1 "\n" ;
$com_color_x2 = 1;
$com_color_y2 = 0;
$com_color_z2 = 0;
$com_plus2=1;
$com_minus2=-1;
my ($com_x_axis)=-8;
for ($x3=0;$x3<36;$x3++)
{
for($y3=0;$y3<$com_c_gen;$y3++)
{
if($g[$y3] <= 10)
{
$com_color_x2 = $com_c_g[$y3]/10;
$com_size2 =0.5;
}
if($com_c_g[$y3] >10 && $com_c_g[$y3] <=20)
{
$com_size2 = 0.5;
$com_color_x2 = 0;
$com_color_y2 = $com_c_g[$y3]/40;
}
if($com_c_g[$y3] >= 20 && $com_c_g[$y3] <30)
{
$com_size2 = 0.5;
$com_color_x2 = 0;
$com_color_y2 = 0;
$com_color_z2 = $com_c_g[$y3]/60;
}
if($com_c_g[$y3] >= 30)
{
$com_size2 = 0.5;
$com_color_x2 = 0;
$com_color_y2= $com_c_g[$y3]/80;
$com_color_z2 = $com_c_g[$y3]/40;
}
if(@com_c_g[$y3] eq $x3)
{
my ($com_y_axis)= -2+$com_c_f[$y3]/2;
print OUT1 "\n" ;
print OUT1 " Transform{" ;
print OUT1 "\n" ;
print OUT1 " translation $com_x_axis $com_y_axis 0 ";
print OUT1 "\n" ;
print OUT1 " children [ " ;
print OUT1 "\n" ;
print OUT1 " Shape { " ;
print OUT1 "\n" ;
print OUT1 " appearance Appearance{ " ;
print OUT1 "\n" ;
print OUT1 " material Material{emissiveColor $com_color_x2 $com_color_y2 $com_color_z2 }}" ;
print OUT1 "\n" ;
print OUT1 " geometry Cylinder{radius $size2";
print OUT1 "\n" ;
print OUT1 " height $com_c_f[$y3]";
print OUT1 "\n" ;
print OUT1 " side TRUE " ;
print OUT1 "\n" ;
print OUT1 " top TRUE " ;
print OUT1 "\n" ;
print OUT1 " bottom TRUE " ;
print OUT1 "\n" ;
print OUT1 " } " ;
print OUT1 "\n" ;
print OUT1 " } " ;
print OUT1 "\n" ;
print OUT1 " DEF ball_sensor$y3 TouchSensor {} ";
print OUT1 "\n" ;
print OUT1 " ] " ;
print OUT1 "\n" ;
print OUT1 " } " ;
print OUT1 "\n" ;
$com_x_axis=$com_x_axis+2;
} #if
} #for
} #for
close (OUT1);
} #sub com_gen_chart
sub com_gen_chart1
{
#open(OUTPUT1,">output2.wrl") || die "Can't open output.wrl\n";
@com1_chart_lines=@_;
my ($com1_c_index)=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(OUT2,">com1_chart.wrl") ||die "Can't open chart.wrl\n";
print OUT2 "#VRML V2.0 utf8";
print OUT2 "\n";
print OUT2 "Background {";
print OUT2 "\n";
print OUT2 "skyAngle[1 , 1.55, 1.6]";
print OUT2 "\n";
print OUT2 "skyColor[1 1 1, .98 .98 1, .9 .9 1, .8 .8 1]";
print OUT2 "\n";
print OUT2 "}";
print OUT2 "\n" ;
print OUT2 "Viewpoint { ";
print OUT2 "\n" ;
print OUT2 "position 30 80 250";
print OUT2 "\n";
print OUT2" orientation 1 0 0 -.5";
print OUT2 "\n" ;
print OUT2" description \"faroff\" ";
print OUT2 "\n" ;
print OUT2" }";
print OUT2 "\n" ;
print OUT2"Viewpoint {";
print OUT2 "\n" ;
print OUT2 " position -150 0 -20";
print OUT2 "\n" ;
print OUT2 " orientation 0 1 0 -1.8";
print OUT2 "\n" ;
print OUT2 " description \"left\" ";
print OUT2" }";
print OUT2 "\n" ;
print OUT2"Viewpoint {";
print OUT2 "\n" ;
print OUT2 " position 30 450 150";
print OUT2 "\n" ;
print OUT2 " orientation 1 0 0 -1.5";
print OUT2 "\n" ;
print OUT2 " description \"top\" ";
print OUT2 "\n" ;
print OUT2 " }";
print OUT2 "\n" ;
print OUT2"Viewpoint {";
print OUT2 "\n" ;
print OUT2 "position 180 0 -20";
print OUT2 "\n" ;
print OUT2 "orientation 0 1 0 1.8";
print OUT2 "\n" ;
print OUT2 "description \"right\" ";
print OUT2 "\n" ;
print OUT2 " }" ;
my($z_axis_bar)=-50;
for($m5=0;$m5<36;$m5++)
{
print OUT2 "\n" ;
print OUT2 " Transform{" ;
print OUT2 "\n" ;
print OUT2 " translation 38 -2 $z_axis_bar ";
print OUT2 "\n" ;
print OUT2 " children [ " ;
print OUT2 "\n" ;
print OUT2 " Shape { " ;
print OUT2 "\n" ;
print OUT2 " appearance Appearance{ " ;
print OUT2 "\n" ;
print OUT2 " material Material{emissiveColor 1 0 0 }}" ;
print OUT2 "\n" ;
print OUT2 " geometry Box{size 100 1 2.5 }";
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
print OUT2 " ] " ;
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
print OUT2 "\n" ;
print OUT2 " Transform{" ;
print OUT2 "\n" ;
print OUT2 " translation -12 17.5 $z_axis_bar ";
print OUT2 "\n" ;
print OUT2 " children [ " ;
print OUT2 "\n" ;
print OUT2 " Shape { " ;
print OUT2 "\n" ;
print OUT2 " appearance Appearance{ " ;
print OUT2 "\n" ;
print OUT2 " material Material{emissiveColor 1 0 0 }}" ;
print OUT2 "\n" ;
print OUT2 " geometry Box{size 1 40 2.5 }";
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
print OUT2 " ] " ;
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
$z_axis_bar=$z_axis_bar+5;
}
print OUT2 "\n";
print OUT2 " DEF ball_Script Script {";
print OUT2 "\n";
for ( $n4=0;$n4<36;$n4++)
{
print OUT2 " eventIn SFTime message_on$n4 ";
print OUT2 "\n" ;
}
print OUT2 " eventOut SFInt32 whichChoice";
print OUT2 "\n";
print OUT2 " url [\"vrmlscript:";
print OUT2 "\n";
for ( $k4=0;$k4<36;$k4++)
{
print OUT2 " function message_on$k4() {" ;
print OUT2 "\n" ;
print OUT2" whichChoice = $k4;}" ;
print OUT2 "\n" ;
}
print OUT2 " \", " ;
print OUT2 "\n" ;
print OUT2 " \"javascript:" ;
print OUT2 "\n" ;
for ( $l4=0;$l4<36;$l4++)
{
print OUT2 " function message_on$l4 () {" ;
print OUT2 "\n" ;
print OUT2 " whichChoice = $l4 ;}" ;
print OUT2 "\n" ;
}
print OUT2 " \"] " ;
print OUT2 "\n" ;
print OUT2 " }" ;
print OUT2 "\n" ;
print OUT2 " Transform {" ;
print OUT2 "\n" ;
print OUT2 " translation 0 0 0" ;
print OUT2 "\n" ;
print OUT2 "children [ " ;
print OUT2 "\n" ;
my($com11_z_axis)=-50;
for($m4=0;$m4<36;$m4++)
{
print OUT2 "\n" ;
print OUT2 " Transform{" ;
print OUT2 "\n" ;
print OUT2 " translation 100 -2 $com11_z_axis ";
print OUT2 "\n" ;
print OUT2 " children [ " ;
print OUT2 "\n" ;
print OUT2 " Shape { " ;
print OUT2 "\n" ;
print OUT2 " appearance Appearance{ " ;
print OUT2 "\n" ;
print OUT2 " material Material{emissiveColor $color_x1 $color_y1 $color_z1 }}" ;
print OUT2 "\n" ;
print OUT2 " geometry Box{size 2 2 1 } " ;
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
print OUT2 " DEF ball_sensor$m4 TouchSensor {} ";
print OUT2 "\n" ;
print OUT2 " ] " ;
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
$com11_z_axis=$com11_z_axis+5
}
print OUT2 "DEF message_Switch Switch {";
print OUT2 " \n ";
print OUT2 "choice [";
print OUT2 " \n ";
$com1_color_x2 = 1;
$com1_color_y2 = 0;
$com1_color_z2 = 0;
$com1_plus2=1;
$com1_minus2=-1;
my ($com1_z_axis)=-50;
for ($x4=0;$x4<36;$x4++)
{
my($var)=0;
my(@temp_f)='';
my ($com1_x_axis)=-8;
print OUT2 "\n" ;
print OUT2 " Transform{" ;
print OUT2 "\n" ;
print OUT2 " children [ " ;
print OUT2 "\n" ;
for($y4=0;$y4<$com1_c_gen;$y4++)
{
if($com1_c_g[$y4] <= 10)
{
$com1_color_x2 = $com1_c_g[$y4]/10;
$com1_size2 =0.5;
}
if($com1_c_g[$y4] >10 && $com1_c_g[$y4] <=20)
{
$com1_size2 = 0.5;
$com1_color_x2 = 0;
$com1_color_y2 = $com1_c_g[$y4]/40;
}
if($com1_c_g[$y4] >= 20 && $com1_c_g[$y4] <30)
{
$com1_size2 = 0.5;
$com1_color_x2 = 0;
$com1_color_y2 = 0;
$com1_color_z2 = $com1_c_g[$y4]/60;
}
if($com1_c_g[$y4] >= 30)
{
$com1_size2 = 0.5;
$com1_color_x2 = 0;
$com1_color_y2= $com1_c_g[$y4]/80;
$com1_color_z2 = $com1_c_g[$y4]/40;
}
if(@com1_c_g[$y4] eq $x4)
{
@temp_f[$var]=@com1_c_f[$y4];
$var++;
}
}
@com1_ordered=sort{$b <=> $a} @temp_f;
for($a=0;$a<$var;$a++)
{
my ($com1_y_axis)= -2+@com1_ordered[$a]/2;
print OUT2 "\n" ;
print OUT2 " Transform{" ;
print OUT2 "\n" ;
print OUT2 " translation $com1_x_axis $com1_y_axis $com1_z_axis ";
print OUT2 "\n" ;
print OUT2 " children [ " ;
print OUT2 "\n" ;
print OUT2 " Shape { " ;
print OUT2 "\n" ;
print OUT2" appearance Appearance{ " ;
print OUT2 "\n" ;
print OUT2 " material Material{emissiveColor $com1_color_x2 $com1_color_y2 $com1_color_z2 }}" ;
print OUT2 "\n" ;
print OUT2 " geometry Cylinder{radius $com1_size2";
print OUT2 "\n" ;
print OUT2 " height @com1_ordered[$a]";
print OUT2 "\n" ;
print OUT2 " side TRUE " ;
print OUT2 "\n" ;
print OUT2 " top TRUE " ;
print OUT2 "\n" ;
print OUT2 " bottom TRUE " ;
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
print OUT2 " DEF cyl_sensor$a TouchSensor {} ";
print OUT2 "\n" ;
print OUT2 " ] " ;
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
$com1_x_axis=$com1_x_axis+2;
} #for
# } #for
$com1_z_axis=$com1_z_axis+5;
print OUT2 " ] " ;
print OUT2 "\n" ;
print OUT2 " } " ;
print OUT2 "\n" ;
} #for
print OUT2 "]" ;
print OUT2 "\n" ;
print OUT2 "}" ;
print OUT2 "\n" ;
print OUT2 "]" ;
print OUT2 "\n" ;
print OUT2 "}" ;
print OUT2 "\n" ;
for( $y5=0 ;$y5<36;$y5++)
{
print OUT2 "ROUTE ball_sensor$y5.touchTime TO ball_Script.message_on$y5" ;
print OUT2 "\n" ;
}
print OUT2 "ROUTE ball_Script.whichChoice TO message_Switch.whichChoice";
print OUT2 "\n" ;
close (OUT2);
} #sub com_gen_chart1
sub test
{
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++;
}
open(OUT3,">test.wrl") ||die "Can't open chart.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 110 -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];
$var++;
}
}
$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 "DEF HudProx$x6 ProximitySensor {";
# print OUT3 "\n" ;
# print OUT3 "center 0 1.8 30";
# print OUT3 "\n" ;
# print OUT3 "size 200 200 200";
# print OUT3 "\n" ;
# print OUT3 " }";
print OUT3 "\n" ;
print OUT3 "DEF HudXform$x6 Transform {";
print OUT3 "\n" ;
print OUT3 "children [";
print OUT3 "\n" ;
print OUT3 "Transform {";
print OUT3 "\n" ;
print OUT3 "translation 90 0 $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 1.8";
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 90 -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 "ROUTE HudProx$x6.position_changed TO HudProx$x6.center";
#print OUT3 "\n" ;
#print OUT3 "ROUTE HudProx$x6.orientation_changed TO HudXform$x6.rotation";
#print OUT3 "\n" ;
#print OUT3 "ROUTE HudProx$x6.position_changed TO HudXform$x6.translation";
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 "@temp_f[$a] ";
#print OUT3 "@com1_ordered[$a0]\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" ;
#print OUT3 "loop\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 test1
{
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,">test1.wrl") ||die "Can't open chart.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 110 -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 "description \"1\"";
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 HudProx$x6 ProximitySensor {";
# print OUT4 "\n" ;
# print OUT4 "center 0 1.8 30";
# print OUT4 "\n" ;
# print OUT4 "size 200 200 200";
# print OUT4 "\n" ;
# print OUT4 " }";
print OUT4 "\n" ;
print OUT4 "DEF HudXform$x6 Transform {";
print OUT4 "\n" ;
print OUT4 "children [";
print OUT4 "\n" ;
print OUT4 "Transform {";
print OUT4 "\n" ;
print OUT4 "translation 38 -2 $com1_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 0.8";
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 100 -2 $com1_z_axis";
print OUT4 "\n" ;
print OUT4 "children [";
print OUT4 "\n" ;
my($l)=0;
#for($l=0;$l<$var ;$l++)
{
$var4++;
#print OUT4 "DEF ShowGen$var4 TouchSensor{}";
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 "ROUTE HudProx$x6.position_changed TO HudProx$x6.center";
#print OUT4 "\n" ;
#print OUT4 "ROUTE HudProx$x6.orientation_changed TO HudXform$x6.rotation";
#print OUT4 "\n" ;
#print OUT4 "ROUTE HudProx$x6.position_changed TO HudXform$x6.translation";
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" ;
#for($a0=0;$a0<$var;$a0++)
{
$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 "@temp_f[$a] ";
#print OUT4 "@com1_ordered[$a0]\n";
}
print OUT4 "url [ \"javascript:";
print OUT4 "\n" ;
#for($a1=0;$a1<$var;$a1++)
{
$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 "loop\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 ";
#for($a3=0;$a3<$var;$a3++)
{
$var3++ ;
#print OUT4 "ROUTE ShowGen$var3.isActive TO myScript$x6.touched";
print OUT4 "\n" ;
#print OUT4 "ROUTE myScript$x6.choice TO switch$var3.set_whichChoice ";
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;
# print OUT5 "@_";
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,">AllGenBarChart.wrl") ||die "Can't open AllGenBarChart.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)='';
for ($y6=0;$y6<$com5_c_index;$y6++)
{
if(@com1_c_g[$y6] eq $x6)
{
@temp_f[$var]=@com1_c_f[$y6];
$var++;
}
}
@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 2.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<35;$p3++)
{
print OUT5"$temp ,$temp,";
$temp= $temp+1/35;
}
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<35;$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);
}