City

(perl script)

#!/usr/local/bin/perl
#
# generate a city
#

if ($#ARGV != 7) {
    print "usage: city.pl xnum znum xsize zsize xspace zspace ymin ymax\n";
    exit;
}

$xnum = $ARGV[0];
$znum = $ARGV[1];
$xsize = $ARGV[2];
$zsize = $ARGV[3];
$xspace = $ARGV[4];
$zspace = $ARGV[5];
$ymin = $ARGV[6];
$ymax = $ARGV[7];

print <<EOF
#VRML V2.0 utf8

PROTO Building [ 
		field SFVec3f s 1 1 1
		field SFVec3f t 0 0 0
		]
{
  Transform {
    translation IS t
    scale IS s
    children Shape {
      appearance Appearance { material Material {} }
      geometry Box {}
    }
  }
}
EOF
;

for ($i=0; $i<$xnum; $i++) {
    for ($j=0; $j<$znum; $j++) {

	$ysize = rand() * ($ymax - $ymin) + $ymin;
	$ysize = int($ysize * 100) / 100;  # trim to a few decimal places

	$x = $i * $xspace;
	$y = $ysize;
	$z = $j * $zspace;
	
	print "Building { t $x $y $z  s $xsize $ysize $zsize }\n";
    }
}


mrl