1 | #!/usr/bin/env python2.7 |
||
2 | """Apply transformation to pointcloud. |
||
3 | |||
4 | The transformations (if given) are applied in the following order: |
||
5 | 1. rotation |
||
6 | 2. scaling |
||
7 | 3. offset |
||
8 | |||
9 | Usage: |
||
10 | transform.py [-o <origin>] [-r <rot>] [-t <translate>] [-s <scaling>] <source> <target> |
||
0 ignored issues
–
show
|
|||
11 | |||
12 | Positional arguments: |
||
13 | source Source pointcloud file |
||
14 | target Target pointcloud file |
||
15 | |||
16 | Options: |
||
17 | -r <rot> CSV file of a 4x4 transformation matrix, assumed to be |
||
18 | normalized. |
||
19 | -o <rot_origin> CSV file with a 3d point of the origin for the |
||
20 | rotation and scaling |
||
21 | -s <scaling> CSV file with a single scaling multiplication factor. |
||
22 | -t <translate> CSV file with a 3d vector to translate the pointcloud with. |
||
23 | """ |
||
24 | |||
25 | from __future__ import print_function |
||
26 | from docopt import docopt |
||
27 | |||
28 | import numpy as np |
||
29 | from patty.utils import load, save |
||
30 | |||
31 | |||
32 | def csv_read(path): |
||
33 | return np.genfromtxt(path, dtype=float, delimiter=',') |
||
34 | |||
35 | |||
36 | if __name__ == '__main__': |
||
37 | args = docopt(__doc__) |
||
0 ignored issues
–
show
The name
args does not conform to the constant naming conventions ((([A-Z_][A-Z0-9_]*)|(__.*__))$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
38 | |||
39 | pc = load(args['<source>']) |
||
0 ignored issues
–
show
The name
pc does not conform to the constant naming conventions ((([A-Z_][A-Z0-9_]*)|(__.*__))$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
40 | |||
41 | try: |
||
42 | offset = csv_read(args['-o']) |
||
0 ignored issues
–
show
The name
offset does not conform to the constant naming conventions ((([A-Z_][A-Z0-9_]*)|(__.*__))$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
43 | except: |
||
44 | offset = None |
||
0 ignored issues
–
show
The name
offset does not conform to the constant naming conventions ((([A-Z_][A-Z0-9_]*)|(__.*__))$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
45 | |||
46 | try: |
||
47 | matrix = csv_read(args['-r']) |
||
0 ignored issues
–
show
The name
matrix does not conform to the constant naming conventions ((([A-Z_][A-Z0-9_]*)|(__.*__))$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
48 | pc.rotate(matrix, origin=offset) |
||
49 | except Exception as e: |
||
0 ignored issues
–
show
The name
e does not conform to the variable naming conventions ([a-z_][a-z0-9_]{1,30}$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
50 | print('Problem with rotate: ', e) |
||
51 | |||
52 | try: |
||
53 | factor = csv_read(args['-s']) |
||
0 ignored issues
–
show
The name
factor does not conform to the constant naming conventions ((([A-Z_][A-Z0-9_]*)|(__.*__))$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
54 | pc.scale(factor, origin=offset) |
||
55 | except Exception as e: |
||
0 ignored issues
–
show
The name
e does not conform to the variable naming conventions ([a-z_][a-z0-9_]{1,30}$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
56 | print('Problem with scale: ', e) |
||
57 | |||
58 | try: |
||
59 | vector = csv_read(args['-t']) |
||
0 ignored issues
–
show
The name
vector does not conform to the constant naming conventions ((([A-Z_][A-Z0-9_]*)|(__.*__))$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
60 | pc.translate(vector) |
||
61 | except Exception as e: |
||
0 ignored issues
–
show
The name
e does not conform to the variable naming conventions ([a-z_][a-z0-9_]{1,30}$ ).
This check looks for invalid names for a range of different identifiers. You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements. If your project includes a Pylint configuration file, the settings contained in that file take precedence. To find out more about Pylint, please refer to their site. ![]() |
|||
62 | print('Problem with translate: ', e) |
||
63 | |||
64 | save(pc, args['<target>']) |
||
65 |
This check looks for lines that are too long. You can specify the maximum line length.