annotate old/tmp/outer.pl @ 625:60aa3f241b10

64bit mode worked on Mac OS X.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 16 Nov 2009 10:59:55 +0900
parents a64e729a8072
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
598
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
1 #!/usr/bin/perl
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
2
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
3 # fix Cerium xml normal vector
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
4
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
5 my $i = -1;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
6 my (@x,@y,@z);
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
7 my @cord;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
8 my $fix = 1;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
9
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
10 sub v {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
11 print "$x[0] $y[0] $z[0]\n";
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
12 print "$x[1] $y[1] $z[1]\n";
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
13 print "$x[2] $y[2] $z[2]\n";
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
14 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
15
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
16 sub outer {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
17 my ($ax,$ay,$az) = (
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
18 $x[1]-$x[0],
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
19 $y[1]-$y[0],
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
20 $z[1]-$z[0],
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
21 );
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
22 my ($bx,$by,$bz) = (
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
23 $x[2]-$x[0],
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
24 $y[2]-$y[0],
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
25 $z[2]-$z[0],
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
26 );
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
27 my ($ox,$oy,$oz) = (
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
28 $ay*$bz - $az*$by,
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
29 -$ax*$bz + $az*$bx,
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
30 $ax*$by - $ay*$bx,
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
31 );
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
32 my($r) = sqrt($ox*$ox+$oy*$oy+$oz*$oz);
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
33 ($ox,$oy,$oz) = ($ox/$r,$oy/$r,$oz/$r);
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
34 push(@cord, [$ox,$oy,$oz]);
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
35 # print " $ox $oy $oz\n";
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
36 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
37
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
38 while(<>) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
39 if (! $fix) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
40 if (/<sur/) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
41 print;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
42 next;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
43 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
44 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
45 if (/<normal/) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
46 $i= -2;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
47 print if ($fix);
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
48 next;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
49 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
50 if (/<\/normal/) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
51 $i = -1;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
52 print if ($fix);
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
53 next;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
54 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
55 if ( $i < -1) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
56 if ($i== -4) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
57 my $cord = shift(@cord);
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
58 if ($fix) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
59 print " $cord->[0] $cord->[1] $cord->[2] \n";
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
60 print " $cord->[0] $cord->[1] $cord->[2] \n";
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
61 print " $cord->[0] $cord->[1] $cord->[2] \n";
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
62 } else {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
63 print "outer $i $cord->[0] $cord->[1] $cord->[2] \n";
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
64 print ;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
65 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
66 $i = -2;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
67 } else {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
68 $i--;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
69 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
70 next;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
71 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
72 print if ($fix);
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
73 if (/<\/coord/) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
74 $i = -1;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
75 next;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
76 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
77 if (/<coord/) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
78 @cord = ();
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
79 $i=0;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
80 next;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
81 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
82 if ($i<0) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
83 next;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
84 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
85 if (/([-]*[.\d]+)\s+([-]*[.\d]+)\s+([-]*[.\d]+)/) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
86 ($x[$i],$y[$i],$z[$i]) = ($1,$2,$3);
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
87 # print "$i $_";
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
88 if ($i==2) {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
89 &outer;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
90 $i = 0;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
91 next;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
92 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
93 $i++;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
94 } else {
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
95 $i = -1;
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
96 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
97 }
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
98
a64e729a8072 normal vector fix script
e065725@kinjyo.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
99 # end