Diff of /app/resources/b3d/b3d.py [000000] .. [4de1c7]

Switch to unified view

a b/app/resources/b3d/b3d.py
1
import bvh_reader
2
import c3d_convertor
3
4
import sys, os
5
6
7
def main():
8
    if len(sys.argv) < 2:
9
        print 'error: input not specified'
10
        usage()
11
        return
12
13
    if len(sys.argv) > 2:
14
        output_folder = sys.argv[2]
15
    else:
16
        output_folder = '.'
17
18
    if not os.path.exists(output_folder):
19
        try:
20
            os.makedirs(output_folder)
21
        except OSError:
22
            print 'error: failed to create output folder', output_folder
23
            return
24
25
    if os.path.isfile(output_folder) or not os.path.isdir(output_folder):
26
        print 'error: output folder is not valid'
27
        usage()
28
        return
29
30
    if os.path.isfile(sys.argv[1]) and not os.path.isdir(sys.argv[1]):
31
        gen(os.path.abspath(sys.argv[1]), os.path.abspath(output_folder))
32
    elif not os.path.isfile(sys.argv[1]) and os.path.isdir(sys.argv[1]):
33
        batch(os.path.abspath(sys.argv[1]), os.path.abspath(output_folder))
34
    else:
35
        print 'error: input not valid'
36
        usage()
37
38
39
def gen(input_file, output_folder):
40
    print 'gen', '"' + input_file + '"'
41
42
    bvh = bvh_reader.BVH()
43
    if not bvh.load_from_file(input_file):
44
        print 'error: failed to load bvh file', input_file
45
        return
46
    
47
    output_name = os.path.splitext(os.path.basename(input_file))[0]
48
    output_file = os.path.join(output_folder, output_name + '.c3d')
49
50
    conv = c3d_convertor.Convertor()
51
    conv.convert(bvh, output_file)
52
53
    print '"' + output_file + '" generated'
54
55
56
def batch(input_folder, output_folder):
57
    print 'batch', '"' + input_folder + '"', '===>', output_folder
58
    for root, dirs, files in os.walk(input_folder):
59
        for f in files:
60
            gen(os.path.abspath(os.path.join(root, f)), output_folder)
61
62
63
def usage():
64
    print 'usage: python b3d.py input_file|input_folder [output_folder]'
65
66
67
if __name__ == '__main__':
68
    main()