chiark / gitweb /
set threads_started
[moebius2.git] / library.pl
1 sub run ($) {
2     print "    $_[0]\n";
3     $!=0; system($_[0]); die "$! $?" if $! or $?;
4 }
5
6 sub initdata_process_prime() {
7     my ($i,$fmt);
8     open P, "$prime" or die $!;
9     $!=0; $_= <P>; m/^(\d+) (\d+) .*/ or die "$_ ? $!";
10     ($dim,$nvertices)= ($1,$2);
11     $!=0; $_= <P>; m/^(\%.*)\n/ or die "$_ ? $!";
12     $fmt= $1;
13     for ($i=0; $i<$nvertices; $i++) {
14         $!=0; defined($_=<P>) or die "$prime $!";
15         m/^\s*(\S+)\s*(\S+)\s*(.*)/ or die "$_ ?";
16         initdata_prime_point_callback($1,$2,$3,$fmt);
17     }
18 }
19
20 sub make_initdata () {
21     open I, "$initdata" or die "$initdata $!";
22     open B, ">$output.new" or die "$output.new $!";
23
24     for ($i=0; $i<$nvertices; $i++) {
25         for ($k=0; $k<3; $k++) {
26             for (;;) {
27                 $!=0; defined($_= <I>) or die "$initdata $!";
28                 last if m/\S/;
29             }
30             $vertex[$k]= $_;
31         }
32         initdata_return_vertex_transform();
33         print B pack "d3", @vertex or die $!;
34     }
35
36     close B or die $!;
37     rename "$output.new",$output or die $!;
38
39     print "    wrote $output\n";
40 }
41
42 1;