summaryrefslogtreecommitdiff
path: root/bin/obj2hackvr.pl
diff options
context:
space:
mode:
authorepoch <epoch@hacking.allowed.org>2019-02-05 21:48:29 -0600
committerepoch <epoch@hacking.allowed.org>2019-02-05 21:48:29 -0600
commit420eeee620a287ac5bf133f8a17329a7182d5bbf (patch)
tree407cd59748e0e5ef4f88b15305dd303aa64cf8da /bin/obj2hackvr.pl
parent848a823b1287d8804e8d6170c3ca30ccf7689784 (diff)
downloadhackvr-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-xbin/obj2hackvr.pl64
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";
+ }
+}