diff options
author | epoch <epoch@hacking.allowed.org> | 2019-02-05 21:48:29 -0600 |
---|---|---|
committer | epoch <epoch@hacking.allowed.org> | 2019-02-05 21:48:29 -0600 |
commit | 420eeee620a287ac5bf133f8a17329a7182d5bbf (patch) | |
tree | 407cd59748e0e5ef4f88b15305dd303aa64cf8da /bin/obj2hackvr.pl | |
parent | 848a823b1287d8804e8d6170c3ca30ccf7689784 (diff) | |
download | hackvr-420eeee620a287ac5bf133f8a17329a7182d5bbf.tar.gz hackvr-420eeee620a287ac5bf133f8a17329a7182d5bbf.zip |
forgot to add bin dir that contains a LOT of the handy stuff
Diffstat (limited to 'bin/obj2hackvr.pl')
-rwxr-xr-x | bin/obj2hackvr.pl | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/bin/obj2hackvr.pl b/bin/obj2hackvr.pl new file mode 100755 index 0000000..3639750 --- /dev/null +++ b/bin/obj2hackvr.pl @@ -0,0 +1,64 @@ +#!/usr/bin/perl + +use strict; + +die "usage: obj2hackvr.pl name file\n" unless $ARGV[0]; + +my $i; +my $j; +my $com; +my @vertices; +my @faces; +my @linepart; +my @parts; +my @points; +my @tmp; +my $tmp; +open(FILE,$ARGV[1]) if $ARGV[1]; +while(<FILE>) { + $_ =~ s/[\n\r]//g; + @linepart=split(/ /,$_,2); + $com=$linepart[0]; + if($com eq "v") { + push(@vertices,$linepart[1]); + } + if($com eq "f") { + push(@faces,$linepart[1]); + } +} +#foreach $tmp (@vertices) { +# foreach(@$tmp) { +# print $tmp . "\n"; +# } +#} + +#foreach $tmp (@faces) { +# @points=split(/ /,$tmp); +# @points = map { $_ =~ s/\/.+$//g; $_; } @points; +## print @points; +# print $ARGV[0]; +# print " addshape "; +# print @points+0; +# for($i=0;$i<(@points+0);$i++) { +# print " "; +# print $vertices[$points[$i]]; +# } +# print "\n"; +#} + +#convert to triangles +foreach $tmp (@faces) { + @points=split(/ /,$tmp); + @points = map { $_ =~ s/\/.+$//g; $_; } @points; +# print @points; + for($i=2;$i<(@points);$i++) { + print $ARGV[0]; + print " addshape 2 3 "; + print $vertices[$points[0]-1]; + print " "; + print $vertices[$points[$i-1]-1]; + print " "; + print $vertices[$points[$i]-1]; + print "\n"; + } +} |