source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/vrippack-0.31/src/plytools/plysetlevel @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

  • Property svn:executable set to *
File size: 2.1 KB
Line 
1#!/usr/bin/perl
2#
3# This program takes one or more .set files, and chooses the nth
4# resolution listed as the default resolution.  Resolutions above
5# that are not preloaded.
6
7if ($#ARGV < 1 || substr($ARGV[0], 0, 1) eq "-") {
8    print STDERR "\n";
9    print STDERR "Usage: plysetlevel n 1.set 2.set 3.set ...\n";
10    print STDERR "\n";
11    print STDERR "       where n is an integer, usually from 1 to 4,\n";
12    print STDERR "       and is the desired level.  So it will set the\n";
13    print STDERR "       nth mesh in each .set file to be the default,\n";
14    print STDERR "       and all higher-res meshes will not be preloaded.\n";
15    print STDERR "       e.g:\n";
16    print STDERR "             plysetlevel 2 *.set\n";
17    print STDERR "       will tell every set to load in meshes 2..4,\n";
18    print STDERR "       and make mesh 2 the default.\n";
19    exit(-1);
20}
21
22# Default level
23$level = int($ARGV[0]);
24($level > 0) || die "Error: level must be greater than 0\n";
25
26# Process the files one by one
27for ($i=1; $i <= $#ARGV; $i++) {
28    $set = $ARGV[$i];
29    (substr($set, -4, 4) eq ".set") || die 
30        "Err: $set does not have .set extension.  Aborting...\n";
31    open(IN, $set);
32
33    # Read 'NumMeshes = 4'
34    $line = <IN>;
35    @words = split(' ', $line);
36    $nummeshes = $words[2];
37    # Sanity check
38    ($level > 0 && $nummeshes >= $level) || die 
39        "Error: $set doesn't have $level levels!\n";
40   
41    # Skip 'DefaultRes = 650006'
42    $line = <IN>;
43
44    # Read each of the meshes
45    for ($m=1; $m <= $nummeshes; $m++) {
46        $line = <IN>;
47        @words = split(' ', $line);
48        # Save mesh size, name
49        $meshsize[$m] = $words[1];
50        $meshname[$m] = $words[2];
51    }
52   
53    # Close file, open again for writing
54    close(IN);
55    open(OUT, ">".$set);
56   
57    # Write out new file
58    print OUT "NumMeshes = $nummeshes\n";
59    print OUT "DefaultRes = $meshsize[$level]\n";
60    # Write each mesh, noloading meshes higher than new default size
61    for ($m=1; $m <= $nummeshes; $m++) {
62        if ($m < $level) { 
63            print OUT "noload  $meshsize[$m] $meshname[$m]\n";
64        } else {
65            print OUT "preload $meshsize[$m] $meshname[$m]\n";
66        }
67    }
68    close(OUT);
69}
70               
71           
72               
Note: See TracBrowser for help on using the repository browser.