annotate old/tmp/outer.pl @ 896:f3530a4100bf draft

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