annotate old/tmp/revers.pl @ 612:b0fb0272191c

add revers.pl
author yutaka@henri.cr.ie.u-ryukyu.ac.jp
date Thu, 12 Nov 2009 17:00:08 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
612
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
1 #!/usr/bin/perl
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
2
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
3 # fix Cerium xml normal vector
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
4
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
5 my $i = -1;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
6 my (@x,@y,@z);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
7 my @cord;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
8 my $flag = 0;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
9 my $fix = 1;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
10
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
11 sub v {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
12 print "$x[0] $y[0] $z[0]\n";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
13 print "$x[1] $y[1] $z[1]\n";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
14 print "$x[2] $y[2] $z[2]\n";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
15 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
16
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
17 sub outer {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
18 my ($ax,$ay,$az) = (
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
19 $x[1]-$x[0],
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
20 $y[1]-$y[0],
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
21 $z[1]-$z[0],
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
22 );
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
23 my ($bx,$by,$bz) = (
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
24 $x[2]-$x[0],
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
25 $y[2]-$y[0],
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
26 $z[2]-$z[0],
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
27 );
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
28 my ($ox,$oy,$oz) = (
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
29 $ay*$bz - $az*$by,
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
30 -$ax*$bz + $az*$bx,
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
31 $ax*$by - $ay*$bx,
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
32 );
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
33 my($r) = sqrt($ox*$ox+$oy*$oy+$oz*$oz);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
34 ($ox,$oy,$oz) = ($ox/$r,$oy/$r,$oz/$r);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
35 push(@cord, [$ox,$oy,$oz]);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
36 # print " $ox $oy $oz\n";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
37 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
38
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
39 if (@ARGV != 2) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
40 die "Usage : objectname filename\n";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
41 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
42
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
43 my ($object, $file) = @ARGV;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
44 open(IN, $file);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
45
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
46 while(<IN>) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
47 if (! $fix) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
48 if (/<sur/) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
49 print;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
50 next;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
51 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
52 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
53 if (/<normal/) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
54 $i= -2;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
55 print if ($fix);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
56 next;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
57 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
58 if (/<\/normal/) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
59 $i = -1;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
60 print if ($fix);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
61 next;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
62 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
63
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
64 if (/$object/) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
65 $flag = 1;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
66 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
67
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
68 if (/\/$object/) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
69 $flag = 0;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
70 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
71
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
72 if ( $i < -1) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
73 if ($i== -4) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
74 my $cord = shift(@cord);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
75 if ($fix) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
76
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
77 if ($flag == 1) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
78 $cord->[0] = -$cord->[0];
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
79 $cord->[1] = -$cord->[1];
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
80 $cord->[2] = -$cord->[2];
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
81 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
82
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
83 print " $cord->[0] $cord->[1] $cord->[2] \n";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
84 print " $cord->[0] $cord->[1] $cord->[2] \n";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
85 print " $cord->[0] $cord->[1] $cord->[2] \n";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
86
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
87 } else {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
88 print "outer $i $cord->[0] $cord->[1] $cord->[2] \n";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
89 print ;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
90 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
91 $i = -2;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
92 } else {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
93 $i--;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
94 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
95 next;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
96 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
97 print if ($fix);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
98 if (/<\/coord/) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
99 $i = -1;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
100 next;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
101 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
102 if (/<coord/) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
103 @cord = ();
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
104 $i=0;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
105 next;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
106 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
107 if ($i<0) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
108 next;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
109 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
110 if (/([-]*[.\d]+)\s+([-]*[.\d]+)\s+([-]*[.\d]+)/) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
111 ($x[$i],$y[$i],$z[$i]) = ($1,$2,$3);
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
112 # print "$i $_";
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
113 if ($i==2) {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
114 &outer;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
115 $i = 0;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
116 next;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
117 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
118 $i++;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
119 } else {
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
120 $i = -1;
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
121 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
122 }
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
123
b0fb0272191c add revers.pl
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
124 # end