From 08c24124d376357482dcea4350214b8d6f58d2b6 Mon Sep 17 00:00:00 2001 From: div0 Date: Fri, 9 Jan 2009 20:14:28 +0000 Subject: [PATCH] new toy: polycount.pl git-svn-id: svn://svn.icculus.org/nexuiz/trunk@5477 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- misc/polycount.pl | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 misc/polycount.pl diff --git a/misc/polycount.pl b/misc/polycount.pl new file mode 100644 index 000000000..67f463039 --- /dev/null +++ b/misc/polycount.pl @@ -0,0 +1,45 @@ +#!/usr/bin/perl + +for(@ARGV) +{ + my $data = do { + open my $fh, "<", $_; + undef local $/; + <$fh>; + }; + + my $vertex = undef; + my $poly = undef; + my $type = undef; + + if("IDP3" eq substr $data, 0, 4) + { + # MD3 model + my $num_meshes = unpack "V", substr $data, 4+4+64+4+4+4, 4; + my $ofs_meshes = unpack "V", substr $data, 4+4+64+4+4+4+4+4+4+4, 4; + $vertex = $poly = 0; + for(1..$num_meshes) + { + $vertex += unpack "V", substr $data, $ofs_meshes+4+64+4+4+4, 4; + $poly += unpack "V", substr $data, $ofs_meshes+4+64+4+4+4+4, 4; + $ofs_meshes += unpack "V", substr $data, $ofs_meshes+4+64+4+4+4+4+4+4+4+4+4, 4; + } + $type = "md3"; + } + elsif("ZYMOTICMODEL" eq substr $data, 0, 12) + { + # ZYM model + $vertex = unpack "N", substr $data, 12+4+4+4*3+4*3+4, 4; + $poly = unpack "N", substr $data, 12+4+4+4*3+4*3+4+4, 4; + $type = "zym"; + } + + if(defined $type) + { + printf "%8d %8d %-3s %s\n", $vertex, $poly, $type, $_; + } + else + { + printf "%8s %8s %-3s %s\n", "-", "-", "-", $_; + } +} -- 2.39.2