Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(object): enhance MeshObjectUtility with new methods and type hints #1171

Merged
merged 3 commits into from
Dec 16, 2024

Conversation

hummat
Copy link
Member

@hummat hummat commented Dec 12, 2024

  • Introduce methods to get all modifiers and one specific modifier, similar to get_materials
  • Update existing methods to return modifiers to facilitate subsequent changes to the modifier
  • Add type hints for better clarity and type checking
  • Improve comments
  • Refactor add_auto_smooth_modifier to use new methods

- Added type hints for better clarity and type checking.
- Introduced methods to get modifiers and a specific modifier.
- Updated existing methods to return modifiers.
- Improved comments for better understanding.
- Refined logic for adding geometry nodes and auto smooth modifiers.
@cla-bot cla-bot bot added the cla-signed label Dec 12, 2024
- Added return type hints to several methods for clarity.
- Improved docstrings to include return descriptions.
- Reformatted method signatures for consistency.
- Updated primitive creation method to include UV_SPHERE.
@cornerfarmer
Copy link
Member

cornerfarmer commented Dec 12, 2024

BlenderProcHelper result for run 639:

Done with: [amass_human_poses_python 29s, auto_shading_python 9s, basic_python 12s, blenderkit_python 20s, bop_object_on_surface_sampling_python 84s, bop_object_physics_positioning_python 114s, bop_object_pose_sampling_python 38s, bop_scene_replication_python 171s, camera_depth_of_field_python 19s, camera_object_pose_python 10s, camera_random_trajectories_python 60s, camera_sampling_python 20s, coco_annotations_python 13s, diffuse_color_image_python 20s, dust_python 20s, entity_displacement_modifier_python 15s, entity_manipulation_python 10s, front_3d_object_sampling_python 88s, front_3d_python 91s, front_3d_with_improved_mat_python 108s, git_log 1s, haven_python 24s, ikea_python 18s, kinect_azure_noise_python 13s, lens_distortion_python 16s, lens_distortion_python 12s, light_sampling_python 14s, material_manipulation_python 10s, material_randomizer_python 12s, matterport3d_python 66s, motion_blur_rolling_shutter_python 29s, motion_blur_rolling_shutter_python 26s, multi_render_python 222s, nocs_python 20s, object_pose_sampling_python 10s, on_surface_object_sampling_python 10s, optical_flow_python 27s, physics_convex_decomposition_python 130s, physics_positioning_python 24s, pix3d_python 17s, point_clouds_python 17s, random_backgrounds_python 20s, random_room_constructor_python 76s, replica_python 217s, scenenet_python 49s, scenenet_with_cctextures_python 63s, semantic_segmentation_python 12s, shapenet_python 19s, shapenet_with_scenenet_python 57s, shapenet_with_suncg_python 56s, spotlight_python 20s, stereo_matching_python 48s, stereo_matching_with_projector_python 147s, suncg_basic_python 35s, suncg_with_cam_sampling_python 56s, suncg_with_improved_mat_python 68s, suncg_with_object_replacer_python 59s, tests_python 29s, urdf_loading_and_manipulation_python 51s]
Done with 59 of 59 tests.
There were errors:
Unit tests output:

................
----------------------------------------------------------------------
Ran 16 tests in 24.071s

OK

urdf_loading_and_manipulation (main_python)

The output of urdf_loading_and_manipulation:main_python:000000_scene_gt_info_json has changed:

Expand
+ root['0'][2]['bbox_visib'][3]: 25
- root['0'][2]['bbox_visib'][3]: 23
+ root['2'][2]['bbox_visib'][0]: 309
- root['2'][2]['bbox_visib'][0]: 308
+ root['2'][2]['bbox_visib'][2]: 25
- root['2'][2]['bbox_visib'][2]: 26
+ root['9'][2]['bbox_visib'][3]: 14
- root['9'][2]['bbox_visib'][3]: 13

stereo_matching (main_python)

The output of stereo_matching:main_python:disparity has changed: Diff: 0.0400, Pixel diff: 0.0048



Compare image Newly generated image

stereo_matching_with_projector (main_python)

The output of stereo_matching_with_projector:main_python:disparity has changed: Diff: 0.0112, Pixel diff: 0.0043



Compare image Newly generated image

Pylint output

Expand

Messages

Module blenderproc (blenderproc/__init__.py)

Line Col. Type Symbol ID Obj Message
12 44 convention trailing-whitespace C0303
Trailing whitespace

Module blenderproc.python.camera.CameraProjection (blenderproc/python/camera/CameraProjection.py)

Line Col. Type Symbol ID Obj Message
4 0 warning unused-import W0611
Unused create_primitive imported from blenderproc.python.types.MeshObjectUtility
10 0 convention ungrouped-imports C0412
Imports from package blenderproc are not grouped
29 31 convention trailing-whitespace C0303
Trailing whitespace
35 0 convention trailing-whitespace C0303
Trailing whitespace
41 0 convention line-too-long C0301
Line too long (147/120)
85 8 refactor no-else-return R1705 depth_at_points_via_raytracing
Unnecessary "else" after "return", remove the "else" and de-indent the code inside it
89 0 convention trailing-whitespace C0303
Trailing whitespace
90 0 convention line-too-long C0301
Line too long (134/120)
141 0 convention trailing-whitespace C0303
Trailing whitespace
159 7 convention trailing-whitespace C0303
Trailing whitespace
161 33 convention trailing-whitespace C0303
Trailing whitespace
165 0 convention line-too-long C0301
Line too long (132/120)
167 0 convention trailing-newlines C0305
Trailing newlines

Module blenderproc.python.loader.BlendLoader (blenderproc/python/loader/BlendLoader.py)

Line Col. Type Symbol ID Obj Message
27 0 convention line-too-long C0301
Line too long (130/120)
100 0 convention trailing-whitespace C0303
Trailing whitespace

Module blenderproc.python.loader.BopLoader (blenderproc/python/loader/BopLoader.py)

Line Col. Type Symbol ID Obj Message
353 0 convention trailing-whitespace C0303
Trailing whitespace

Module blenderproc.python.loader.CCMaterialLoader (blenderproc/python/loader/CCMaterialLoader.py)

Line Col. Type Symbol ID Obj Message
73 0 convention line-too-long C0301
Line too long (152/120)

Module blenderproc.python.postprocessing.PostProcessingUtility (blenderproc/python/postprocessing/PostProcessingUtility.py)

Line Col. Type Symbol ID Obj Message
15 0 convention line-too-long C0301
Line too long (137/120)

Module blenderproc.python.renderer.RendererUtility (blenderproc/python/renderer/RendererUtility.py)

Line Col. Type Symbol ID Obj Message
246 0 convention trailing-whitespace C0303
Trailing whitespace
314 0 convention trailing-whitespace C0303
Trailing whitespace
504 0 convention trailing-whitespace C0303
Trailing whitespace

Module blenderproc.python.types.EntityUtility (blenderproc/python/types/EntityUtility.py)

Line Col. Type Symbol ID Obj Message
170 11 convention unidiomatic-typecheck C0123 Entity.duplicate
Use isinstance() rather than type() for a typecheck.

Module blenderproc.python.types.LightUtility (blenderproc/python/types/LightUtility.py)

Line Col. Type Symbol ID Obj Message
125 12 refactor consider-using-augmented-assign R6104 Light.setup_as_projector
Use '/=' to do an augmented assign directly
216 0 convention trailing-whitespace C0303
Trailing whitespace

Module blenderproc.python.types.MeshObjectUtility (blenderproc/python/types/MeshObjectUtility.py)

Line Col. Type Symbol ID Obj Message
3 0 error no-name-in-module E0611
No name 'Literal' in module 'typing'
513 31 error unsupported-binary-operation E1131 MeshObject.get_modifiers
unsupported operand type(s) for |
549 87 convention trailing-whitespace C0303
Trailing whitespace
555 0 convention line-too-long C0301
Line too long (122/120)
558 0 convention trailing-whitespace C0303
Trailing whitespace
564 68 warning unused-variable W0612 MeshObject.add_auto_smooth_modifier
Unused variable 'data_from'
572 16 warning self-assigning-variable W0127 MeshObject.add_auto_smooth_modifier
Assigning the same variable 'modifier' to itself
574 0 convention trailing-whitespace C0303
Trailing whitespace
585 0 warning bad-indentation W0311
Bad indentation. Found 9 spaces, expected 8
589 0 convention trailing-whitespace C0303
Trailing whitespace
591 0 warning bad-indentation W0311
Bad indentation. Found 9 spaces, expected 8
592 0 convention trailing-whitespace C0303
Trailing whitespace
594 0 warning bad-indentation W0311
Bad indentation. Found 9 spaces, expected 8
596 0 warning bad-indentation W0311
Bad indentation. Found 13 spaces, expected 12
597 0 warning bad-indentation W0311
Bad indentation. Found 13 spaces, expected 12
598 0 warning bad-indentation W0311
Bad indentation. Found 13 spaces, expected 12
599 90 convention trailing-whitespace C0303
Trailing whitespace
599 0 warning bad-indentation W0311
Bad indentation. Found 13 spaces, expected 12
600 0 warning bad-indentation W0311
Bad indentation. Found 13 spaces, expected 12
601 0 warning bad-indentation W0311
Bad indentation. Found 13 spaces, expected 12
602 0 convention trailing-whitespace C0303
Trailing whitespace
603 23 convention trailing-whitespace C0303
Trailing whitespace
604 0 warning bad-indentation W0311
Bad indentation. Found 9 spaces, expected 8
606 0 warning bad-indentation W0311
Bad indentation. Found 9 spaces, expected 8
607 20 convention trailing-whitespace C0303
Trailing whitespace
608 0 warning bad-indentation W0311
Bad indentation. Found 9 spaces, expected 8
609 0 convention trailing-whitespace C0303
Trailing whitespace
610 0 warning bad-indentation W0311
Bad indentation. Found 9 spaces, expected 8
761 28 convention trailing-whitespace C0303
Trailing whitespace

Module blenderproc.python.utility.Initializer (blenderproc/python/utility/Initializer.py)

Line Col. Type Symbol ID Obj Message
80 0 convention trailing-whitespace C0303
Trailing whitespace

Module blenderproc.python.utility.InstallUtility (blenderproc/python/utility/InstallUtility.py)

Line Col. Type Symbol ID Obj Message
129 0 convention trailing-whitespace C0303
Trailing whitespace

Module blenderproc.python.writer.BopWriterUtility (blenderproc/python/writer/BopWriterUtility.py)

Line Col. Type Symbol ID Obj Message
9 0 convention wrong-import-order C0411
standard import "from typing import List, Optional, Dict, Tuple" should be placed before "import trimesh"
10 0 convention wrong-import-order C0411
standard import "import warnings" should be placed before "import trimesh"
11 0 convention wrong-import-order C0411
standard import "import datetime" should be placed before "import trimesh"
18 0 convention wrong-import-order C0411
standard import "import sys" should be placed before "import trimesh"
62 0 convention line-too-long C0301
Line too long (131/120)
80 8 warning redefined-outer-name W0621 write_bop
Redefining name 'dataset_objects' from outer scope (line 544)
175 12 warning protected-access W0212 write_bop
Access to a protected member _pyrender_init of a client class
177 0 convention line-too-long C0301
Line too long (124/120)
177 48 warning protected-access W0212 write_bop
Access to a protected member _pyrender_init of a client class
177 19 refactor consider-using-with R1732 write_bop
Consider using 'with' for resource-allocating operations
181 0 convention trailing-whitespace C0303
Trailing whitespace
187 0 convention trailing-whitespace C0303
Trailing whitespace
193 12 warning protected-access W0212 write_bop
Access to a protected member _pyrender_cleanup of a client class
313 21 warning redefined-outer-name W0621 _BopWriterUtility.get_frame_gt
Redefining name 'dataset_objects' from outer scope (line 544)
400 38 warning redefined-outer-name W0621 _BopWriterUtility.write_frames
Redefining name 'dataset_objects' from outer scope (line 544)
526 0 convention trailing-whitespace C0303
Trailing whitespace
538 78 convention trailing-whitespace C0303
Trailing whitespace
542 8 warning global-variable-undefined W0601 _BopWriterUtility._pyrender_init
Global variable 'renderer' undefined at the module level
542 8 warning global-variable-undefined W0601 _BopWriterUtility._pyrender_init
Global variable 'renderer_large' undefined at the module level
542 8 warning global-variable-undefined W0601 _BopWriterUtility._pyrender_init
Global variable 'dataset_objects' undefined at the module level
564 8 warning global-variable-undefined W0601 _BopWriterUtility._pyrender_cleanup
Global variable 'renderer' undefined at the module level
564 8 warning global-variable-undefined W0601 _BopWriterUtility._pyrender_cleanup
Global variable 'renderer_large' undefined at the module level
564 8 warning global-variable-undefined W0601 _BopWriterUtility._pyrender_cleanup
Global variable 'dataset_objects' undefined at the module level
570 0 convention line-too-long C0301
Line too long (173/120)
585 78 convention trailing-whitespace C0303
Trailing whitespace
591 8 warning global-variable-not-assigned W0602 _BopWriterUtility._calc_gt_masks_iteration
Using global for 'renderer' but no assignment is done
591 8 warning global-variable-not-assigned W0602 _BopWriterUtility._calc_gt_masks_iteration
Using global for 'dataset_objects' but no assignment is done
598 0 convention trailing-whitespace C0303
Trailing whitespace
689 0 convention line-too-long C0301
Line too long (165/120)
690 0 convention trailing-whitespace C0303
Trailing whitespace
693 0 convention line-too-long C0301
Line too long (196/120)
706 11 convention trailing-whitespace C0303
Trailing whitespace
708 78 convention trailing-whitespace C0303
Trailing whitespace
714 8 warning global-variable-not-assigned W0602 _BopWriterUtility._calc_gt_info_iteration
Using global for 'renderer_large' but no assignment is done
714 8 warning global-variable-not-assigned W0602 _BopWriterUtility._calc_gt_info_iteration
Using global for 'dataset_objects' but no assignment is done
714 8 warning global-variable-not-assigned W0602 _BopWriterUtility._calc_gt_info_iteration
Using global for 'renderer' but no assignment is done
718 11 warning protected-access W0212 _BopWriterUtility._calc_gt_info_iteration
Access to a protected member _renderer of a client class
719 12 warning protected-access W0212 _BopWriterUtility._calc_gt_info_iteration
Access to a protected member _renderer of a client class
720 12 warning protected-access W0212 _BopWriterUtility._calc_gt_info_iteration
Access to a protected member _renderer of a client class
727 0 convention trailing-whitespace C0303
Trailing whitespace
856 0 convention line-too-long C0301
Line too long (207/120)
857 0 convention trailing-whitespace C0303
Trailing whitespace
865 44 warning redefined-outer-name W0621 _BopWriterUtility.calc_gt_coco
Redefining name 'dataset_objects' from outer scope (line 544)

Module blenderproc.python.writer.GifWriterUtility (blenderproc/python/writer/GifWriterUtility.py)

Line Col. Type Symbol ID Obj Message
13 0 convention wrong-import-position C0413
Import "from blenderproc.scripts.visHdf5Files import vis_data" should be placed at the top of the module
14 0 convention wrong-import-position C0413
Import "from blenderproc.python.utility.Utility import Utility" should be placed at the top of the module

Module blenderproc.scripts.quickstart (blenderproc/scripts/quickstart.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
11 -1 warning pointless-string-statement W0105
String statement has no effect
13 0 convention wrong-import-position C0413
Import "import numpy as np" should be placed at the top of the module

Metrics

Count per types

Name Count
convention 61
refactor 3
warning 38
error 2

Count per messages

Name Count
trailing-whitespace 37
line-too-long 13
trailing-newlines 1
no-else-return 1
ungrouped-imports 1
unused-import 1
unidiomatic-typecheck 1
consider-using-augmented-assign 1
bad-indentation 13
no-name-in-module 1
unsupported-binary-operation 1
self-assigning-variable 1
unused-variable 1
wrong-import-position 3
redefined-outer-name 4
protected-access 6
consider-using-with 1
global-variable-undefined 6
global-variable-not-assigned 5
wrong-import-order 4
missing-module-docstring 1
pointless-string-statement 1

Count per modules

Name Count
blenderproc 1
blenderproc.python.camera.CameraProjection 13
blenderproc.python.loader.CCMaterialLoader 1
blenderproc.python.loader.BopLoader 1
blenderproc.python.loader.BlendLoader 2
blenderproc.python.postprocessing.PostProcessingUtility 1
blenderproc.python.renderer.RendererUtility 3
blenderproc.python.types.EntityUtility 1
blenderproc.python.types.LightUtility 2
blenderproc.python.types.MeshObjectUtility 29
blenderproc.python.utility.Initializer 1
blenderproc.python.utility.InstallUtility 1
blenderproc.python.writer.GifWriterUtility 2
blenderproc.python.writer.BopWriterUtility 43
blenderproc.scripts.quickstart 3

Count per path

Name Count
blenderproc/__init__.py 1
blenderproc/python/camera/CameraProjection.py 13
blenderproc/python/loader/CCMaterialLoader.py 1
blenderproc/python/loader/BopLoader.py 1
blenderproc/python/loader/BlendLoader.py 2
blenderproc/python/postprocessing/PostProcessingUtility.py 1
blenderproc/python/renderer/RendererUtility.py 3
blenderproc/python/types/EntityUtility.py 1
blenderproc/python/types/LightUtility.py 2
blenderproc/python/types/MeshObjectUtility.py 29
blenderproc/python/utility/Initializer.py 1
blenderproc/python/utility/InstallUtility.py 1
blenderproc/python/writer/GifWriterUtility.py 2
blenderproc/python/writer/BopWriterUtility.py 43
blenderproc/scripts/quickstart.py 3
***The tests are done.*** Check the log:

Last update: 12/12/2024, 16:01:44

Copy link
Member

@cornerfarmer cornerfarmer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good now, thank you!

@cornerfarmer cornerfarmer merged commit 2d38bd1 into DLR-RM:main Dec 16, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants