#!/usr/bin/perl open(OBJF,"../lib/big.obj") || die "$!\n"; while(<OBJF>){ chop; if(substr($_,0,1) eq '#'){ $newobj = 1; printf "#%d\n",int(substr($_,1)); } elsif($_ eq "A"){ $affect = 1; print "A\n"; } elsif(/^(\d+) +(\d+) +(\d+)$/){ $w = $1; $x = $2; $y = $3; if($newobj){ $type = $w; $newobj = 0; printf "%s\n", $_; } else { $z/=2; $y = int(sqrt($y)); printf "%d %d %d\n", $w, $x, $y; } } elsif(/^(\d+) +(\d+) +(\d+) +(\d+)$/){ $w = $1; $x = $2; $y = $3; $z = $4; if($type == 9){ $w = (1 + $w)/2; } elsif($type==5){ $x = (1 + $x)/2; $y = (1 + $y)/2; } printf "%d %d %d %d\n", $w, $x, $y, $z; } elsif(/^(\d+) +(\d+)$/){ $w = $1; $x = $2; if($affect){ $affect = 0; $x = 1 + int(sqrt($x)); printf "%d %d\n",$w,$x; } else { printf "%s\n", $); } } elsif(/^(\d+) +\-(\d+)$/){ $w = $1; $x = $2; if($affect){ $affect = 0; $x = -1 - int(sqrt($x)); printf "%d %d\n",$w,$x; } else { printf "%s\n", $); } } else { printf "%s\n", $_; } }