fake-bpy-module 20240516__py3-none-any.whl → 20240518__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fake-bpy-module might be problematic. Click here for more details.
- _bpy_internal/freedesktop/__init__.pyi +17 -84
- addon_utils/__init__.pyi +44 -38
- animsys_refactor/__init__.pyi +7 -27
- aud/__init__.pyi +8 -11
- bgl/__init__.pyi +121 -1812
- bl_app_override/__init__.pyi +8 -19
- bl_app_override/helpers/__init__.pyi +5 -23
- bl_app_template_utils/__init__.pyi +5 -17
- bl_console_utils/autocomplete/complete_calltip/__init__.pyi +48 -10
- bl_console_utils/autocomplete/complete_import/__init__.pyi +27 -6
- bl_console_utils/autocomplete/complete_namespace/__init__.pyi +40 -8
- bl_console_utils/autocomplete/intellisense/__init__.pyi +31 -4
- bl_i18n_utils/bl_extract_messages/__init__.pyi +16 -67
- bl_i18n_utils/merge_po/__init__.pyi +1 -4
- bl_i18n_utils/settings/__init__.pyi +6 -24
- bl_i18n_utils/utils/__init__.pyi +93 -122
- bl_i18n_utils/utils_cli/__init__.pyi +6 -29
- bl_i18n_utils/utils_languages_menu/__init__.pyi +1 -4
- bl_i18n_utils/utils_rtl/__init__.pyi +8 -2
- bl_keymap_utils/io/__init__.pyi +9 -40
- bl_keymap_utils/keymap_from_toolbar/__init__.pyi +2 -2
- bl_keymap_utils/keymap_hierarchy/__init__.pyi +1 -4
- bl_keymap_utils/platform_helpers/__init__.pyi +2 -6
- bl_keymap_utils/versioning/__init__.pyi +1 -4
- bl_operators/__init__.pyi +2 -9
- bl_operators/add_mesh_torus/__init__.pyi +128 -59
- bl_operators/anim/__init__.pyi +1001 -398
- bl_operators/assets/__init__.pyi +376 -152
- bl_operators/bmesh/find_adjacent/__init__.pyi +10 -37
- bl_operators/clip/__init__.pyi +1264 -532
- bl_operators/console/__init__.pyi +626 -242
- bl_operators/constraint/__init__.pyi +502 -201
- bl_operators/file/__init__.pyi +376 -150
- bl_operators/freestyle/__init__.pyi +501 -200
- bl_operators/geometry_nodes/__init__.pyi +514 -266
- bl_operators/image/__init__.pyi +621 -251
- bl_operators/mesh/__init__.pyi +376 -150
- bl_operators/node/__init__.pyi +1253 -516
- bl_operators/object/__init__.pyi +1879 -755
- bl_operators/object_align/__init__.pyi +129 -64
- bl_operators/object_quick_effects/__init__.pyi +504 -213
- bl_operators/object_randomize_transform/__init__.pyi +129 -54
- bl_operators/presets/__init__.pyi +3072 -1403
- bl_operators/rigidbody/__init__.pyi +376 -150
- bl_operators/screen_play_rendered_anim/__init__.pyi +127 -54
- bl_operators/sequencer/__init__.pyi +1010 -434
- bl_operators/spreadsheet/__init__.pyi +126 -50
- bl_operators/userpref/__init__.pyi +3253 -1267
- bl_operators/uvcalc_follow_active/__init__.pyi +128 -59
- bl_operators/uvcalc_lightmap/__init__.pyi +139 -80
- bl_operators/uvcalc_transform/__init__.pyi +297 -159
- bl_operators/vertexpaint_dirt/__init__.pyi +128 -59
- bl_operators/view3d/__init__.pyi +868 -342
- bl_operators/wm/__init__.pyi +5795 -2388
- bl_operators/world/__init__.pyi +126 -50
- bl_previews_utils/bl_previews_render/__init__.pyi +7 -34
- bl_rna_utils/data_path/__init__.pyi +8 -4
- bl_text_utils/external_editor/__init__.pyi +1 -4
- bl_ui/__init__.pyi +366 -269
- bl_ui/anim/__init__.pyi +164 -74
- bl_ui/asset_shelf/__init__.pyi +129 -56
- bl_ui/generic_ui_list/__init__.pyi +412 -163
- bl_ui/node_add_menu/__init__.pyi +171 -94
- bl_ui/node_add_menu_compositor/__init__.pyi +2918 -1353
- bl_ui/node_add_menu_geometry/__init__.pyi +7789 -3616
- bl_ui/node_add_menu_shader/__init__.pyi +1630 -790
- bl_ui/node_add_menu_texture/__init__.pyi +1459 -675
- bl_ui/properties_animviz/__init__.pyi +2 -16
- bl_ui/properties_collection/__init__.pyi +807 -379
- bl_ui/properties_constraint/__init__.pyi +10292 -4941
- bl_ui/properties_data_armature/__init__.pyi +1615 -753
- bl_ui/properties_data_bone/__init__.pyi +1284 -608
- bl_ui/properties_data_camera/__init__.pyi +1854 -927
- bl_ui/properties_data_curve/__init__.pyi +1927 -937
- bl_ui/properties_data_curves/__init__.pyi +806 -375
- bl_ui/properties_data_empty/__init__.pyi +257 -125
- bl_ui/properties_data_gpencil/__init__.pyi +2376 -1130
- bl_ui/properties_data_grease_pencil/__init__.pyi +1898 -894
- bl_ui/properties_data_lattice/__init__.pyi +388 -188
- bl_ui/properties_data_light/__init__.pyi +1540 -756
- bl_ui/properties_data_lightprobe/__init__.pyi +1666 -810
- bl_ui/properties_data_mesh/__init__.pyi +2707 -1235
- bl_ui/properties_data_metaball/__init__.pyi +644 -308
- bl_ui/properties_data_modifier/__init__.pyi +1353 -671
- bl_ui/properties_data_pointcloud/__init__.pyi +679 -316
- bl_ui/properties_data_shaderfx/__init__.pyi +129 -67
- bl_ui/properties_data_speaker/__init__.pyi +644 -316
- bl_ui/properties_data_volume/__init__.pyi +1028 -484
- bl_ui/properties_freestyle/__init__.pyi +3112 -1619
- bl_ui/properties_grease_pencil_common/__init__.pyi +2454 -1123
- bl_ui/properties_mask_common/__init__.pyi +1102 -523
- bl_ui/properties_material/__init__.pyi +2089 -1009
- bl_ui/properties_material_gpencil/__init__.pyi +1348 -635
- bl_ui/properties_object/__init__.pyi +1832 -873
- bl_ui/properties_output/__init__.pyi +2405 -1173
- bl_ui/properties_paint_common/__init__.pyi +416 -386
- bl_ui/properties_particle/__init__.pyi +6740 -3346
- bl_ui/properties_physics_cloth/__init__.pyi +1822 -907
- bl_ui/properties_physics_common/__init__.pyi +135 -98
- bl_ui/properties_physics_dynamicpaint/__init__.pyi +2817 -1391
- bl_ui/properties_physics_field/__init__.pyi +1282 -627
- bl_ui/properties_physics_fluid/__init__.pyi +3614 -1794
- bl_ui/properties_physics_geometry_nodes/__init__.pyi +129 -60
- bl_ui/properties_physics_rigidbody/__init__.pyi +1026 -515
- bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +1665 -811
- bl_ui/properties_physics_softbody/__init__.pyi +1922 -967
- bl_ui/properties_render/__init__.pyi +6843 -3367
- bl_ui/properties_scene/__init__.pyi +1924 -913
- bl_ui/properties_texture/__init__.pyi +3371 -1667
- bl_ui/properties_view_layer/__init__.pyi +2344 -1107
- bl_ui/properties_workspace/__init__.pyi +516 -244
- bl_ui/properties_world/__init__.pyi +1284 -630
- bl_ui/space_clip/__init__.pyi +10172 -4695
- bl_ui/space_console/__init__.pyi +940 -423
- bl_ui/space_dopesheet/__init__.pyi +4325 -2013
- bl_ui/space_filebrowser/__init__.pyi +4172 -1903
- bl_ui/space_graph/__init__.pyi +3107 -1394
- bl_ui/space_image/__init__.pyi +9764 -4614
- bl_ui/space_info/__init__.pyi +939 -421
- bl_ui/space_nla/__init__.pyi +2623 -1183
- bl_ui/space_node/__init__.pyi +3995 -1840
- bl_ui/space_outliner/__init__.pyi +2203 -991
- bl_ui/space_properties/__init__.pyi +386 -165
- bl_ui/space_sequencer/__init__.pyi +10809 -4978
- bl_ui/space_spreadsheet/__init__.pyi +130 -53
- bl_ui/space_statusbar/__init__.pyi +129 -52
- bl_ui/space_text/__init__.pyi +2457 -1100
- bl_ui/space_time/__init__.pyi +1034 -481
- bl_ui/space_toolsystem_common/__init__.pyi +56 -211
- bl_ui/space_toolsystem_toolbar/__init__.pyi +153 -882
- bl_ui/space_topbar/__init__.pyi +3982 -1805
- bl_ui/space_userpref/__init__.pyi +11383 -5290
- bl_ui/space_view3d/__init__.pyi +40873 -18532
- bl_ui/space_view3d_toolbar/__init__.pyi +12570 -6502
- bl_ui/temp_anim_layers/__init__.pyi +130 -62
- bl_ui/utils/__init__.pyi +28 -27
- bl_ui_utils/bug_report_url/__init__.pyi +1 -4
- bl_ui_utils/layout/__init__.pyi +1 -1
- blend_render_info/__init__.pyi +3 -10
- blf/__init__.pyi +4 -4
- bmesh/geometry/__init__.pyi +2 -3
- bmesh/ops/__init__.pyi +372 -419
- bmesh/types/__init__.pyi +39 -56
- bmesh/utils/__init__.pyi +10 -13
- bpy/app/__init__.pyi +4 -4
- bpy/app/handlers/__init__.pyi +36 -36
- bpy/app/icons/__init__.pyi +8 -8
- bpy/app/timers/__init__.pyi +10 -10
- bpy/app/translations/__init__.pyi +20 -22
- bpy/msgbus/__init__.pyi +2 -4
- bpy/ops/action/__init__.pyi +316 -394
- bpy/ops/anim/__init__.pyi +442 -548
- bpy/ops/armature/__init__.pyi +374 -470
- bpy/ops/asset/__init__.pyi +152 -184
- bpy/ops/bl_pkg/__init__.pyi +221 -272
- bpy/ops/boid/__init__.pyi +50 -66
- bpy/ops/brush/__init__.pyi +72 -90
- bpy/ops/buttons/__init__.pyi +132 -144
- bpy/ops/cachefile/__init__.pyi +128 -138
- bpy/ops/camera/__init__.pyi +26 -30
- bpy/ops/clip/__init__.pyi +777 -964
- bpy/ops/cloth/__init__.pyi +12 -14
- bpy/ops/collection/__init__.pyi +68 -86
- bpy/ops/console/__init__.pyi +158 -200
- bpy/ops/constraint/__init__.pyi +178 -214
- bpy/ops/curve/__init__.pyi +473 -576
- bpy/ops/curves/__init__.pyi +247 -302
- bpy/ops/cycles/__init__.pyi +28 -34
- bpy/ops/dpaint/__init__.pyi +34 -44
- bpy/ops/ed/__init__.pyi +126 -150
- bpy/ops/export_anim/__init__.pyi +22 -24
- bpy/ops/export_scene/__init__.pyi +302 -336
- bpy/ops/file/__init__.pyi +352 -432
- bpy/ops/fluid/__init__.pyi +90 -118
- bpy/ops/font/__init__.pyi +258 -304
- bpy/ops/geometry/__init__.pyi +100 -120
- bpy/ops/gizmogroup/__init__.pyi +22 -26
- bpy/ops/gpencil/__init__.pyi +1469 -1778
- bpy/ops/graph/__init__.pyi +644 -776
- bpy/ops/grease_pencil/__init__.pyi +597 -748
- bpy/ops/image/__init__.pyi +648 -744
- bpy/ops/import_anim/__init__.pyi +30 -32
- bpy/ops/import_curve/__init__.pyi +10 -12
- bpy/ops/import_scene/__init__.pyi +88 -96
- bpy/ops/info/__init__.pyi +60 -74
- bpy/ops/lattice/__init__.pyi +64 -80
- bpy/ops/marker/__init__.pyi +108 -130
- bpy/ops/mask/__init__.pyi +322 -402
- bpy/ops/material/__init__.pyi +18 -24
- bpy/ops/mball/__init__.pyi +70 -86
- bpy/ops/mesh/__init__.pyi +1986 -2322
- bpy/ops/nla/__init__.pyi +333 -411
- bpy/ops/node/__init__.pyi +886 -1100
- bpy/ops/object/__init__.pyi +2585 -3078
- bpy/ops/outliner/__init__.pyi +498 -636
- bpy/ops/paint/__init__.pyi +565 -680
- bpy/ops/paintcurve/__init__.pyi +64 -80
- bpy/ops/palette/__init__.pyi +50 -64
- bpy/ops/particle/__init__.pyi +267 -340
- bpy/ops/pose/__init__.pyi +336 -414
- bpy/ops/poselib/__init__.pyi +72 -90
- bpy/ops/preferences/__init__.pyi +386 -463
- bpy/ops/ptcache/__init__.pyi +46 -60
- bpy/ops/render/__init__.pyi +130 -154
- bpy/ops/rigidbody/__init__.pyi +102 -128
- bpy/ops/scene/__init__.pyi +280 -358
- bpy/ops/screen/__init__.pyi +382 -460
- bpy/ops/script/__init__.pyi +24 -30
- bpy/ops/sculpt/__init__.pyi +458 -532
- bpy/ops/sculpt_curves/__init__.pyi +41 -50
- bpy/ops/sequencer/__init__.pyi +1066 -1244
- bpy/ops/sound/__init__.pyi +216 -230
- bpy/ops/spreadsheet/__init__.pyi +30 -38
- bpy/ops/surface/__init__.pyi +108 -120
- bpy/ops/text/__init__.pyi +390 -476
- bpy/ops/text_editor/__init__.pyi +12 -14
- bpy/ops/texture/__init__.pyi +26 -34
- bpy/ops/transform/__init__.pyi +792 -878
- bpy/ops/ui/__init__.pyi +228 -294
- bpy/ops/uilist/__init__.pyi +32 -38
- bpy/ops/uv/__init__.pyi +602 -704
- bpy/ops/view2d/__init__.pyi +156 -184
- bpy/ops/view3d/__init__.pyi +582 -718
- bpy/ops/wm/__init__.pyi +2683 -2928
- bpy/ops/workspace/__init__.pyi +46 -60
- bpy/ops/world/__init__.pyi +12 -16
- bpy/path/__init__.pyi +179 -75
- bpy/props/__init__.pyi +261 -263
- bpy/types/__init__.pyi +17058 -26311
- bpy/utils/__init__.pyi +247 -179
- bpy/utils/previews/__init__.pyi +58 -28
- bpy/utils/units/__init__.pyi +20 -20
- bpy_extras/anim_utils/__init__.pyi +68 -29
- bpy_extras/asset_utils/__init__.pyi +0 -10
- bpy_extras/bmesh_utils/__init__.pyi +9 -6
- bpy_extras/extensions/junction_module/__init__.pyi +6 -8
- bpy_extras/id_map_utils/__init__.pyi +3 -3
- bpy_extras/image_utils/__init__.pyi +44 -11
- bpy_extras/io_utils/__init__.pyi +116 -41
- bpy_extras/keyconfig_utils/__init__.pyi +4 -11
- bpy_extras/mesh_utils/__init__.pyi +71 -19
- bpy_extras/node_shader_utils/__init__.pyi +52 -288
- bpy_extras/node_utils/__init__.pyi +10 -10
- bpy_extras/object_utils/__init__.pyi +71 -14
- bpy_extras/view3d_utils/__init__.pyi +80 -10
- bpy_extras/wm_utils/progress_report/__init__.pyi +15 -38
- bpy_restrict_state/__init__.pyi +1 -14
- bpy_types/__init__.pyi +4203 -1605
- console_python/__init__.pyi +12 -37
- console_shell/__init__.pyi +5 -24
- {fake_bpy_module-20240516.dist-info → fake_bpy_module-20240518.dist-info}/METADATA +1 -1
- fake_bpy_module-20240518.dist-info/RECORD +353 -0
- freestyle/chainingiterators/__init__.pyi +14 -44
- freestyle/functions/__init__.pyi +7 -33
- freestyle/predicates/__init__.pyi +44 -217
- freestyle/shaders/__init__.pyi +2 -12
- freestyle/types/__init__.pyi +84 -96
- freestyle/utils/ContextFunctions/__init__.pyi +2 -2
- freestyle/utils/__init__.pyi +6 -18
- gpu/matrix/__init__.pyi +6 -8
- gpu/state/__init__.pyi +2 -2
- gpu/types/__init__.pyi +12 -12
- gpu_extras/presets/__init__.pyi +2 -5
- graphviz_export/__init__.pyi +4 -9
- idprop/types/__init__.pyi +8 -35
- imbuf/__init__.pyi +4 -4
- imbuf/types/__init__.pyi +0 -2
- keyingsets_builtins/__init__.pyi +2692 -997
- keyingsets_utils/__init__.pyi +14 -69
- mathutils/__init__.pyi +194 -238
- mathutils/bvhtree/__init__.pyi +4 -6
- mathutils/geometry/__init__.pyi +153 -155
- mathutils/kdtree/__init__.pyi +8 -12
- mathutils/noise/__init__.pyi +26 -26
- nodeitems_builtins/__init__.pyi +5 -30
- nodeitems_utils/__init__.pyi +8 -45
- rna_info/__init__.pyi +39 -215
- rna_keymap_ui/__init__.pyi +6 -29
- rna_prop_ui/__init__.pyi +24 -62
- rna_xml/__init__.pyi +16 -39
- sys_info/__init__.pyi +1 -4
- _bpy_internal/freedesktop/py.typed +0 -0
- bl_app_override/helpers/py.typed +0 -0
- bl_console_utils/autocomplete/complete_calltip/py.typed +0 -0
- bl_console_utils/autocomplete/complete_import/py.typed +0 -0
- bl_console_utils/autocomplete/complete_namespace/py.typed +0 -0
- bl_console_utils/autocomplete/intellisense/py.typed +0 -0
- bl_console_utils/autocomplete/py.typed +0 -0
- bl_i18n_utils/bl_extract_messages/py.typed +0 -0
- bl_i18n_utils/merge_po/py.typed +0 -0
- bl_i18n_utils/settings/py.typed +0 -0
- bl_i18n_utils/utils/py.typed +0 -0
- bl_i18n_utils/utils_cli/py.typed +0 -0
- bl_i18n_utils/utils_languages_menu/py.typed +0 -0
- bl_i18n_utils/utils_rtl/py.typed +0 -0
- bl_keymap_utils/io/py.typed +0 -0
- bl_keymap_utils/keymap_from_toolbar/py.typed +0 -0
- bl_keymap_utils/keymap_hierarchy/py.typed +0 -0
- bl_keymap_utils/platform_helpers/py.typed +0 -0
- bl_keymap_utils/versioning/py.typed +0 -0
- bl_operators/add_mesh_torus/py.typed +0 -0
- bl_operators/anim/py.typed +0 -0
- bl_operators/assets/py.typed +0 -0
- bl_operators/bmesh/find_adjacent/py.typed +0 -0
- bl_operators/bmesh/py.typed +0 -0
- bl_operators/clip/py.typed +0 -0
- bl_operators/console/py.typed +0 -0
- bl_operators/constraint/py.typed +0 -0
- bl_operators/file/py.typed +0 -0
- bl_operators/freestyle/py.typed +0 -0
- bl_operators/geometry_nodes/py.typed +0 -0
- bl_operators/image/py.typed +0 -0
- bl_operators/mesh/py.typed +0 -0
- bl_operators/node/py.typed +0 -0
- bl_operators/object/py.typed +0 -0
- bl_operators/object_align/py.typed +0 -0
- bl_operators/object_quick_effects/py.typed +0 -0
- bl_operators/object_randomize_transform/py.typed +0 -0
- bl_operators/presets/py.typed +0 -0
- bl_operators/rigidbody/py.typed +0 -0
- bl_operators/screen_play_rendered_anim/py.typed +0 -0
- bl_operators/sequencer/py.typed +0 -0
- bl_operators/spreadsheet/py.typed +0 -0
- bl_operators/userpref/py.typed +0 -0
- bl_operators/uvcalc_follow_active/py.typed +0 -0
- bl_operators/uvcalc_lightmap/py.typed +0 -0
- bl_operators/uvcalc_transform/py.typed +0 -0
- bl_operators/vertexpaint_dirt/py.typed +0 -0
- bl_operators/view3d/py.typed +0 -0
- bl_operators/wm/py.typed +0 -0
- bl_operators/world/py.typed +0 -0
- bl_previews_utils/bl_previews_render/py.typed +0 -0
- bl_rna_utils/data_path/py.typed +0 -0
- bl_text_utils/external_editor/py.typed +0 -0
- bl_ui/anim/py.typed +0 -0
- bl_ui/asset_shelf/py.typed +0 -0
- bl_ui/generic_ui_list/py.typed +0 -0
- bl_ui/node_add_menu/py.typed +0 -0
- bl_ui/node_add_menu_compositor/py.typed +0 -0
- bl_ui/node_add_menu_geometry/py.typed +0 -0
- bl_ui/node_add_menu_shader/py.typed +0 -0
- bl_ui/node_add_menu_texture/py.typed +0 -0
- bl_ui/properties_animviz/py.typed +0 -0
- bl_ui/properties_collection/py.typed +0 -0
- bl_ui/properties_constraint/py.typed +0 -0
- bl_ui/properties_data_armature/py.typed +0 -0
- bl_ui/properties_data_bone/py.typed +0 -0
- bl_ui/properties_data_camera/py.typed +0 -0
- bl_ui/properties_data_curve/py.typed +0 -0
- bl_ui/properties_data_curves/py.typed +0 -0
- bl_ui/properties_data_empty/py.typed +0 -0
- bl_ui/properties_data_gpencil/py.typed +0 -0
- bl_ui/properties_data_grease_pencil/py.typed +0 -0
- bl_ui/properties_data_lattice/py.typed +0 -0
- bl_ui/properties_data_light/py.typed +0 -0
- bl_ui/properties_data_lightprobe/py.typed +0 -0
- bl_ui/properties_data_mesh/py.typed +0 -0
- bl_ui/properties_data_metaball/py.typed +0 -0
- bl_ui/properties_data_modifier/py.typed +0 -0
- bl_ui/properties_data_pointcloud/py.typed +0 -0
- bl_ui/properties_data_shaderfx/py.typed +0 -0
- bl_ui/properties_data_speaker/py.typed +0 -0
- bl_ui/properties_data_volume/py.typed +0 -0
- bl_ui/properties_freestyle/py.typed +0 -0
- bl_ui/properties_grease_pencil_common/py.typed +0 -0
- bl_ui/properties_mask_common/py.typed +0 -0
- bl_ui/properties_material/py.typed +0 -0
- bl_ui/properties_material_gpencil/py.typed +0 -0
- bl_ui/properties_object/py.typed +0 -0
- bl_ui/properties_output/py.typed +0 -0
- bl_ui/properties_paint_common/py.typed +0 -0
- bl_ui/properties_particle/py.typed +0 -0
- bl_ui/properties_physics_cloth/py.typed +0 -0
- bl_ui/properties_physics_common/py.typed +0 -0
- bl_ui/properties_physics_dynamicpaint/py.typed +0 -0
- bl_ui/properties_physics_field/py.typed +0 -0
- bl_ui/properties_physics_fluid/py.typed +0 -0
- bl_ui/properties_physics_geometry_nodes/py.typed +0 -0
- bl_ui/properties_physics_rigidbody/py.typed +0 -0
- bl_ui/properties_physics_rigidbody_constraint/py.typed +0 -0
- bl_ui/properties_physics_softbody/py.typed +0 -0
- bl_ui/properties_render/py.typed +0 -0
- bl_ui/properties_scene/py.typed +0 -0
- bl_ui/properties_texture/py.typed +0 -0
- bl_ui/properties_view_layer/py.typed +0 -0
- bl_ui/properties_workspace/py.typed +0 -0
- bl_ui/properties_world/py.typed +0 -0
- bl_ui/space_clip/py.typed +0 -0
- bl_ui/space_console/py.typed +0 -0
- bl_ui/space_dopesheet/py.typed +0 -0
- bl_ui/space_filebrowser/py.typed +0 -0
- bl_ui/space_graph/py.typed +0 -0
- bl_ui/space_image/py.typed +0 -0
- bl_ui/space_info/py.typed +0 -0
- bl_ui/space_nla/py.typed +0 -0
- bl_ui/space_node/py.typed +0 -0
- bl_ui/space_outliner/py.typed +0 -0
- bl_ui/space_properties/py.typed +0 -0
- bl_ui/space_sequencer/py.typed +0 -0
- bl_ui/space_spreadsheet/py.typed +0 -0
- bl_ui/space_statusbar/py.typed +0 -0
- bl_ui/space_text/py.typed +0 -0
- bl_ui/space_time/py.typed +0 -0
- bl_ui/space_toolsystem_common/py.typed +0 -0
- bl_ui/space_toolsystem_toolbar/py.typed +0 -0
- bl_ui/space_topbar/py.typed +0 -0
- bl_ui/space_userpref/py.typed +0 -0
- bl_ui/space_view3d/py.typed +0 -0
- bl_ui/space_view3d_toolbar/py.typed +0 -0
- bl_ui/temp_anim_layers/py.typed +0 -0
- bl_ui/utils/py.typed +0 -0
- bl_ui_utils/bug_report_url/py.typed +0 -0
- bl_ui_utils/layout/py.typed +0 -0
- bmesh/geometry/py.typed +0 -0
- bmesh/ops/py.typed +0 -0
- bmesh/types/py.typed +0 -0
- bmesh/utils/py.typed +0 -0
- bpy/app/handlers/py.typed +0 -0
- bpy/app/icons/py.typed +0 -0
- bpy/app/py.typed +0 -0
- bpy/app/timers/py.typed +0 -0
- bpy/app/translations/py.typed +0 -0
- bpy/msgbus/py.typed +0 -0
- bpy/ops/action/py.typed +0 -0
- bpy/ops/anim/py.typed +0 -0
- bpy/ops/armature/py.typed +0 -0
- bpy/ops/asset/py.typed +0 -0
- bpy/ops/bl_pkg/py.typed +0 -0
- bpy/ops/boid/py.typed +0 -0
- bpy/ops/brush/py.typed +0 -0
- bpy/ops/buttons/py.typed +0 -0
- bpy/ops/cachefile/py.typed +0 -0
- bpy/ops/camera/py.typed +0 -0
- bpy/ops/clip/py.typed +0 -0
- bpy/ops/cloth/py.typed +0 -0
- bpy/ops/collection/py.typed +0 -0
- bpy/ops/console/py.typed +0 -0
- bpy/ops/constraint/py.typed +0 -0
- bpy/ops/curve/py.typed +0 -0
- bpy/ops/curves/py.typed +0 -0
- bpy/ops/cycles/py.typed +0 -0
- bpy/ops/dpaint/py.typed +0 -0
- bpy/ops/ed/py.typed +0 -0
- bpy/ops/export_anim/py.typed +0 -0
- bpy/ops/export_scene/py.typed +0 -0
- bpy/ops/file/py.typed +0 -0
- bpy/ops/fluid/py.typed +0 -0
- bpy/ops/font/py.typed +0 -0
- bpy/ops/geometry/py.typed +0 -0
- bpy/ops/gizmogroup/py.typed +0 -0
- bpy/ops/gpencil/py.typed +0 -0
- bpy/ops/graph/py.typed +0 -0
- bpy/ops/grease_pencil/py.typed +0 -0
- bpy/ops/image/py.typed +0 -0
- bpy/ops/import_anim/py.typed +0 -0
- bpy/ops/import_curve/py.typed +0 -0
- bpy/ops/import_scene/py.typed +0 -0
- bpy/ops/info/py.typed +0 -0
- bpy/ops/lattice/py.typed +0 -0
- bpy/ops/marker/py.typed +0 -0
- bpy/ops/mask/py.typed +0 -0
- bpy/ops/material/py.typed +0 -0
- bpy/ops/mball/py.typed +0 -0
- bpy/ops/mesh/py.typed +0 -0
- bpy/ops/nla/py.typed +0 -0
- bpy/ops/node/py.typed +0 -0
- bpy/ops/object/py.typed +0 -0
- bpy/ops/outliner/py.typed +0 -0
- bpy/ops/paint/py.typed +0 -0
- bpy/ops/paintcurve/py.typed +0 -0
- bpy/ops/palette/py.typed +0 -0
- bpy/ops/particle/py.typed +0 -0
- bpy/ops/pose/py.typed +0 -0
- bpy/ops/poselib/py.typed +0 -0
- bpy/ops/preferences/py.typed +0 -0
- bpy/ops/ptcache/py.typed +0 -0
- bpy/ops/py.typed +0 -0
- bpy/ops/render/py.typed +0 -0
- bpy/ops/rigidbody/py.typed +0 -0
- bpy/ops/scene/py.typed +0 -0
- bpy/ops/screen/py.typed +0 -0
- bpy/ops/script/py.typed +0 -0
- bpy/ops/sculpt/py.typed +0 -0
- bpy/ops/sculpt_curves/py.typed +0 -0
- bpy/ops/sequencer/py.typed +0 -0
- bpy/ops/sound/py.typed +0 -0
- bpy/ops/spreadsheet/py.typed +0 -0
- bpy/ops/surface/py.typed +0 -0
- bpy/ops/text/py.typed +0 -0
- bpy/ops/text_editor/py.typed +0 -0
- bpy/ops/texture/py.typed +0 -0
- bpy/ops/transform/py.typed +0 -0
- bpy/ops/ui/py.typed +0 -0
- bpy/ops/uilist/py.typed +0 -0
- bpy/ops/uv/py.typed +0 -0
- bpy/ops/view2d/py.typed +0 -0
- bpy/ops/view3d/py.typed +0 -0
- bpy/ops/wm/py.typed +0 -0
- bpy/ops/workspace/py.typed +0 -0
- bpy/ops/world/py.typed +0 -0
- bpy/path/py.typed +0 -0
- bpy/props/py.typed +0 -0
- bpy/types/py.typed +0 -0
- bpy/utils/previews/py.typed +0 -0
- bpy/utils/py.typed +0 -0
- bpy/utils/units/py.typed +0 -0
- bpy_extras/anim_utils/py.typed +0 -0
- bpy_extras/asset_utils/py.typed +0 -0
- bpy_extras/bmesh_utils/py.typed +0 -0
- bpy_extras/extensions/junction_module/py.typed +0 -0
- bpy_extras/extensions/py.typed +0 -0
- bpy_extras/id_map_utils/py.typed +0 -0
- bpy_extras/image_utils/py.typed +0 -0
- bpy_extras/io_utils/py.typed +0 -0
- bpy_extras/keyconfig_utils/py.typed +0 -0
- bpy_extras/mesh_utils/py.typed +0 -0
- bpy_extras/node_shader_utils/py.typed +0 -0
- bpy_extras/node_utils/py.typed +0 -0
- bpy_extras/object_utils/py.typed +0 -0
- bpy_extras/view3d_utils/py.typed +0 -0
- bpy_extras/wm_utils/progress_report/py.typed +0 -0
- bpy_extras/wm_utils/py.typed +0 -0
- fake_bpy_module-20240516.dist-info/RECORD +0 -618
- freestyle/chainingiterators/py.typed +0 -0
- freestyle/functions/py.typed +0 -0
- freestyle/predicates/py.typed +0 -0
- freestyle/shaders/py.typed +0 -0
- freestyle/types/py.typed +0 -0
- freestyle/utils/ContextFunctions/py.typed +0 -0
- freestyle/utils/py.typed +0 -0
- gpu/capabilities/py.typed +0 -0
- gpu/matrix/py.typed +0 -0
- gpu/platform/py.typed +0 -0
- gpu/select/py.typed +0 -0
- gpu/shader/py.typed +0 -0
- gpu/state/py.typed +0 -0
- gpu/texture/py.typed +0 -0
- gpu/types/py.typed +0 -0
- gpu_extras/batch/py.typed +0 -0
- gpu_extras/presets/py.typed +0 -0
- idprop/types/py.typed +0 -0
- imbuf/types/py.typed +0 -0
- mathutils/bvhtree/py.typed +0 -0
- mathutils/geometry/py.typed +0 -0
- mathutils/interpolate/py.typed +0 -0
- mathutils/kdtree/py.typed +0 -0
- mathutils/noise/py.typed +0 -0
- {fake_bpy_module-20240516.dist-info → fake_bpy_module-20240518.dist-info}/WHEEL +0 -0
- {fake_bpy_module-20240516.dist-info → fake_bpy_module-20240518.dist-info}/top_level.txt +0 -0
bmesh/ops/__init__.pyi
CHANGED
|
@@ -20,9 +20,7 @@ import mathutils
|
|
|
20
20
|
|
|
21
21
|
GenericType = typing.TypeVar("GenericType")
|
|
22
22
|
|
|
23
|
-
def average_vert_facedata(
|
|
24
|
-
bm: bmesh.types.BMesh, verts: typing.List[bmesh.types.BMVert] = []
|
|
25
|
-
):
|
|
23
|
+
def average_vert_facedata(bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = []):
|
|
26
24
|
"""Average Vertices Face-vert Data.Merge uv/vcols associated with the input vertices at
|
|
27
25
|
the bounding box center. (I know, it's not averaging but
|
|
28
26
|
the vert_snap_to_bb_center is just too long).
|
|
@@ -30,82 +28,80 @@ def average_vert_facedata(
|
|
|
30
28
|
:param bm: The bmesh to operate on.
|
|
31
29
|
:type bm: bmesh.types.BMesh
|
|
32
30
|
:param verts: input vertices
|
|
33
|
-
:type verts:
|
|
31
|
+
:type verts: list[bmesh.types.BMVert]
|
|
34
32
|
"""
|
|
35
33
|
|
|
36
34
|
...
|
|
37
35
|
|
|
38
36
|
def beautify_fill(
|
|
39
37
|
bm: bmesh.types.BMesh,
|
|
40
|
-
faces:
|
|
41
|
-
edges:
|
|
38
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
39
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
42
40
|
use_restrict_tag: bool = False,
|
|
43
|
-
method:
|
|
44
|
-
) ->
|
|
41
|
+
method: str | int = "AREA",
|
|
42
|
+
) -> dict[str, typing.Any]:
|
|
45
43
|
"""Beautify Fill.Rotate edges to create more evenly spaced triangles.
|
|
46
44
|
|
|
47
45
|
:param bm: The bmesh to operate on.
|
|
48
46
|
:type bm: bmesh.types.BMesh
|
|
49
47
|
:param faces: input faces
|
|
50
|
-
:type faces:
|
|
48
|
+
:type faces: list[bmesh.types.BMFace]
|
|
51
49
|
:param edges: edges that can be flipped
|
|
52
|
-
:type edges:
|
|
50
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
53
51
|
:param use_restrict_tag: restrict edge rotation to mixed tagged vertices
|
|
54
52
|
:type use_restrict_tag: bool
|
|
55
53
|
:param method: method to define what is beautiful
|
|
56
|
-
:type method:
|
|
54
|
+
:type method: str | int
|
|
57
55
|
:return: geom: new flipped faces and edges
|
|
58
56
|
|
|
59
57
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
60
|
-
:rtype:
|
|
58
|
+
:rtype: dict[str, typing.Any]
|
|
61
59
|
"""
|
|
62
60
|
|
|
63
61
|
...
|
|
64
62
|
|
|
65
63
|
def bevel(
|
|
66
64
|
bm: bmesh.types.BMesh,
|
|
67
|
-
geom:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
typing.List[bmesh.types.BMFace],
|
|
71
|
-
] = [],
|
|
65
|
+
geom: list[bmesh.types.BMVert]
|
|
66
|
+
| list[bmesh.types.BMEdge]
|
|
67
|
+
| list[bmesh.types.BMFace] = [],
|
|
72
68
|
offset: float = 0,
|
|
73
|
-
offset_type:
|
|
74
|
-
profile_type:
|
|
69
|
+
offset_type: str | int = "OFFSET",
|
|
70
|
+
profile_type: str | int = "SUPERELLIPSE",
|
|
75
71
|
segments: int = 0,
|
|
76
72
|
profile: float = 0,
|
|
77
|
-
affect:
|
|
73
|
+
affect: str | int = "VERTICES",
|
|
78
74
|
clamp_overlap: bool = False,
|
|
79
75
|
material: int = 0,
|
|
80
76
|
loop_slide: bool = False,
|
|
81
77
|
mark_seam: bool = False,
|
|
82
78
|
mark_sharp: bool = False,
|
|
83
79
|
harden_normals: bool = False,
|
|
84
|
-
face_strength_mode:
|
|
85
|
-
miter_outer:
|
|
86
|
-
miter_inner:
|
|
80
|
+
face_strength_mode: str | int = "NONE",
|
|
81
|
+
miter_outer: str | int = "SHARP",
|
|
82
|
+
miter_inner: str | int = "SHARP",
|
|
87
83
|
spread: float = 0,
|
|
88
84
|
custom_profile: bpy.types.bpy_struct = None,
|
|
89
|
-
vmesh_method:
|
|
90
|
-
) ->
|
|
85
|
+
vmesh_method: str | int = "ADJ",
|
|
86
|
+
) -> dict[str, typing.Any]:
|
|
91
87
|
"""Bevel.Bevels edges and vertices
|
|
92
88
|
|
|
93
89
|
:param bm: The bmesh to operate on.
|
|
94
90
|
:type bm: bmesh.types.BMesh
|
|
95
91
|
:param geom: input edges and vertices
|
|
96
|
-
:type geom:
|
|
92
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
97
93
|
:param offset: amount to offset beveled edge
|
|
98
94
|
:type offset: float
|
|
99
95
|
:param offset_type: how to measure the offset
|
|
100
|
-
:type offset_type:
|
|
96
|
+
:type offset_type: str | int
|
|
101
97
|
:param profile_type: The profile type to use for bevel.
|
|
102
|
-
:type profile_type:
|
|
98
|
+
:type profile_type: str | int
|
|
103
99
|
:param segments: number of segments in bevel
|
|
104
100
|
:type segments: int
|
|
105
101
|
:param profile: profile shape, 0->1 (.5=>round)
|
|
106
102
|
:type profile: float
|
|
107
103
|
:param affect: Whether to bevel vertices or edges.
|
|
108
|
-
:type affect:
|
|
104
|
+
:type affect: str | int
|
|
109
105
|
:param clamp_overlap: do not allow beveled edges/vertices to overlap each other
|
|
110
106
|
:type clamp_overlap: bool
|
|
111
107
|
:param material: material for bevel faces, -1 means get from adjacent faces
|
|
@@ -119,17 +115,17 @@ def bevel(
|
|
|
119
115
|
:param harden_normals: harden normals
|
|
120
116
|
:type harden_normals: bool
|
|
121
117
|
:param face_strength_mode: whether to set face strength, and which faces to set if so
|
|
122
|
-
:type face_strength_mode:
|
|
118
|
+
:type face_strength_mode: str | int
|
|
123
119
|
:param miter_outer: outer miter kind
|
|
124
|
-
:type miter_outer:
|
|
120
|
+
:type miter_outer: str | int
|
|
125
121
|
:param miter_inner: outer miter kind
|
|
126
|
-
:type miter_inner:
|
|
122
|
+
:type miter_inner: str | int
|
|
127
123
|
:param spread: amount to offset beveled edge
|
|
128
124
|
:type spread: float
|
|
129
125
|
:param custom_profile: CurveProfile, if None ignored
|
|
130
126
|
:type custom_profile: bpy.types.bpy_struct
|
|
131
127
|
:param vmesh_method: The method to use to create meshes at intersections.
|
|
132
|
-
:type vmesh_method:
|
|
128
|
+
:type vmesh_method: str | int
|
|
133
129
|
:return: faces: output faces
|
|
134
130
|
|
|
135
131
|
type list of (`bmesh.types.BMFace`)
|
|
@@ -141,61 +137,59 @@ def bevel(
|
|
|
141
137
|
verts: output verts
|
|
142
138
|
|
|
143
139
|
type list of (`bmesh.types.BMVert`)
|
|
144
|
-
:rtype:
|
|
140
|
+
:rtype: dict[str, typing.Any]
|
|
145
141
|
"""
|
|
146
142
|
|
|
147
143
|
...
|
|
148
144
|
|
|
149
145
|
def bisect_edges(
|
|
150
146
|
bm: bmesh.types.BMesh,
|
|
151
|
-
edges:
|
|
147
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
152
148
|
cuts: int = 0,
|
|
153
149
|
edge_percents={},
|
|
154
|
-
) ->
|
|
150
|
+
) -> dict[str, typing.Any]:
|
|
155
151
|
"""Edge Bisect.Splits input edges (but doesn't do anything else).
|
|
156
152
|
This creates a 2-valence vert.
|
|
157
153
|
|
|
158
154
|
:param bm: The bmesh to operate on.
|
|
159
155
|
:type bm: bmesh.types.BMesh
|
|
160
156
|
:param edges: input edges
|
|
161
|
-
:type edges:
|
|
157
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
162
158
|
:param cuts: number of cuts
|
|
163
159
|
:type cuts: int
|
|
164
160
|
:param edge_percents: Undocumented.
|
|
165
161
|
:return: geom_split: newly created vertices and edges
|
|
166
162
|
|
|
167
163
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
168
|
-
:rtype:
|
|
164
|
+
:rtype: dict[str, typing.Any]
|
|
169
165
|
"""
|
|
170
166
|
|
|
171
167
|
...
|
|
172
168
|
|
|
173
169
|
def bisect_plane(
|
|
174
170
|
bm: bmesh.types.BMesh,
|
|
175
|
-
geom:
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
typing.List[bmesh.types.BMFace],
|
|
179
|
-
] = [],
|
|
171
|
+
geom: list[bmesh.types.BMVert]
|
|
172
|
+
| list[bmesh.types.BMEdge]
|
|
173
|
+
| list[bmesh.types.BMFace] = [],
|
|
180
174
|
dist: float = 0,
|
|
181
|
-
plane_co: typing.
|
|
182
|
-
plane_no: typing.
|
|
175
|
+
plane_co: typing.Sequence[float] | mathutils.Vector = None(),
|
|
176
|
+
plane_no: typing.Sequence[float] | mathutils.Vector = None(),
|
|
183
177
|
use_snap_center: bool = False,
|
|
184
178
|
clear_outer: bool = False,
|
|
185
179
|
clear_inner: bool = False,
|
|
186
|
-
) ->
|
|
180
|
+
) -> dict[str, typing.Any]:
|
|
187
181
|
"""Bisect Plane.Bisects the mesh by a plane (cut the mesh in half).
|
|
188
182
|
|
|
189
183
|
:param bm: The bmesh to operate on.
|
|
190
184
|
:type bm: bmesh.types.BMesh
|
|
191
185
|
:param geom: input geometry
|
|
192
|
-
:type geom:
|
|
186
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
193
187
|
:param dist: minimum distance when testing if a vert is exactly on the plane
|
|
194
188
|
:type dist: float
|
|
195
189
|
:param plane_co: point on the plane
|
|
196
|
-
:type plane_co: typing.
|
|
190
|
+
:type plane_co: typing.Sequence[float] | mathutils.Vector
|
|
197
191
|
:param plane_no: direction of the plane
|
|
198
|
-
:type plane_no: typing.
|
|
192
|
+
:type plane_no: typing.Sequence[float] | mathutils.Vector
|
|
199
193
|
:param use_snap_center: snap axis aligned verts to the center
|
|
200
194
|
:type use_snap_center: bool
|
|
201
195
|
:param clear_outer: when enabled. remove all geometry on the positive side of the plane
|
|
@@ -209,7 +203,7 @@ def bisect_plane(
|
|
|
209
203
|
geom: input and output geometry (result of cut).
|
|
210
204
|
|
|
211
205
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
212
|
-
:rtype:
|
|
206
|
+
:rtype: dict[str, typing.Any]
|
|
213
207
|
"""
|
|
214
208
|
|
|
215
209
|
...
|
|
@@ -231,19 +225,19 @@ def bmesh_to_mesh(
|
|
|
231
225
|
|
|
232
226
|
def bridge_loops(
|
|
233
227
|
bm: bmesh.types.BMesh,
|
|
234
|
-
edges:
|
|
228
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
235
229
|
use_pairs: bool = False,
|
|
236
230
|
use_cyclic: bool = False,
|
|
237
231
|
use_merge: bool = False,
|
|
238
232
|
merge_factor: float = 0,
|
|
239
233
|
twist_offset: int = 0,
|
|
240
|
-
) ->
|
|
234
|
+
) -> dict[str, typing.Any]:
|
|
241
235
|
"""Bridge edge loops with faces.
|
|
242
236
|
|
|
243
237
|
:param bm: The bmesh to operate on.
|
|
244
238
|
:type bm: bmesh.types.BMesh
|
|
245
239
|
:param edges: input edges
|
|
246
|
-
:type edges:
|
|
240
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
247
241
|
:param use_pairs: Undocumented.
|
|
248
242
|
:type use_pairs: bool
|
|
249
243
|
:param use_cyclic: Undocumented.
|
|
@@ -261,96 +255,94 @@ def bridge_loops(
|
|
|
261
255
|
edges: new edges
|
|
262
256
|
|
|
263
257
|
type list of (`bmesh.types.BMEdge`)
|
|
264
|
-
:rtype:
|
|
258
|
+
:rtype: dict[str, typing.Any]
|
|
265
259
|
"""
|
|
266
260
|
|
|
267
261
|
...
|
|
268
262
|
|
|
269
263
|
def collapse(
|
|
270
|
-
bm: bmesh.types.BMesh,
|
|
271
|
-
edges: typing.List[bmesh.types.BMEdge] = [],
|
|
272
|
-
uvs: bool = False,
|
|
264
|
+
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], uvs: bool = False
|
|
273
265
|
):
|
|
274
266
|
"""Collapse Connected.Collapses connected vertices
|
|
275
267
|
|
|
276
268
|
:param bm: The bmesh to operate on.
|
|
277
269
|
:type bm: bmesh.types.BMesh
|
|
278
270
|
:param edges: input edges
|
|
279
|
-
:type edges:
|
|
271
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
280
272
|
:param uvs: also collapse UVs and such
|
|
281
273
|
:type uvs: bool
|
|
282
274
|
"""
|
|
283
275
|
|
|
284
276
|
...
|
|
285
277
|
|
|
286
|
-
def collapse_uvs(bm: bmesh.types.BMesh, edges:
|
|
278
|
+
def collapse_uvs(bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []):
|
|
287
279
|
"""Collapse Connected UVs.Collapses connected UV vertices.
|
|
288
280
|
|
|
289
281
|
:param bm: The bmesh to operate on.
|
|
290
282
|
:type bm: bmesh.types.BMesh
|
|
291
283
|
:param edges: input edges
|
|
292
|
-
:type edges:
|
|
284
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
293
285
|
"""
|
|
294
286
|
|
|
295
287
|
...
|
|
296
288
|
|
|
297
289
|
def connect_vert_pair(
|
|
298
290
|
bm: bmesh.types.BMesh,
|
|
299
|
-
verts:
|
|
300
|
-
verts_exclude:
|
|
301
|
-
faces_exclude:
|
|
302
|
-
) ->
|
|
291
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
292
|
+
verts_exclude: list[bmesh.types.BMVert] = [],
|
|
293
|
+
faces_exclude: list[bmesh.types.BMFace] = [],
|
|
294
|
+
) -> dict[str, typing.Any]:
|
|
303
295
|
"""Connect Verts.Split faces by adding edges that connect verts.
|
|
304
296
|
|
|
305
297
|
:param bm: The bmesh to operate on.
|
|
306
298
|
:type bm: bmesh.types.BMesh
|
|
307
299
|
:param verts: input vertices
|
|
308
|
-
:type verts:
|
|
300
|
+
:type verts: list[bmesh.types.BMVert]
|
|
309
301
|
:param verts_exclude: input vertices to explicitly exclude from connecting
|
|
310
|
-
:type verts_exclude:
|
|
302
|
+
:type verts_exclude: list[bmesh.types.BMVert]
|
|
311
303
|
:param faces_exclude: input faces to explicitly exclude from connecting
|
|
312
|
-
:type faces_exclude:
|
|
304
|
+
:type faces_exclude: list[bmesh.types.BMFace]
|
|
313
305
|
:return: edges:
|
|
314
306
|
|
|
315
307
|
type list of (`bmesh.types.BMEdge`)
|
|
316
|
-
:rtype:
|
|
308
|
+
:rtype: dict[str, typing.Any]
|
|
317
309
|
"""
|
|
318
310
|
|
|
319
311
|
...
|
|
320
312
|
|
|
321
313
|
def connect_verts(
|
|
322
314
|
bm: bmesh.types.BMesh,
|
|
323
|
-
verts:
|
|
324
|
-
faces_exclude:
|
|
315
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
316
|
+
faces_exclude: list[bmesh.types.BMFace] = [],
|
|
325
317
|
check_degenerate: bool = False,
|
|
326
|
-
) ->
|
|
318
|
+
) -> dict[str, typing.Any]:
|
|
327
319
|
"""Connect Verts.Split faces by adding edges that connect verts.
|
|
328
320
|
|
|
329
321
|
:param bm: The bmesh to operate on.
|
|
330
322
|
:type bm: bmesh.types.BMesh
|
|
331
323
|
:param verts: input vertices
|
|
332
|
-
:type verts:
|
|
324
|
+
:type verts: list[bmesh.types.BMVert]
|
|
333
325
|
:param faces_exclude: input faces to explicitly exclude from connecting
|
|
334
|
-
:type faces_exclude:
|
|
326
|
+
:type faces_exclude: list[bmesh.types.BMFace]
|
|
335
327
|
:param check_degenerate: prevent splits with overlaps & intersections
|
|
336
328
|
:type check_degenerate: bool
|
|
337
329
|
:return: edges:
|
|
338
330
|
|
|
339
331
|
type list of (`bmesh.types.BMEdge`)
|
|
340
|
-
:rtype:
|
|
332
|
+
:rtype: dict[str, typing.Any]
|
|
341
333
|
"""
|
|
342
334
|
|
|
343
335
|
...
|
|
344
336
|
|
|
345
337
|
def connect_verts_concave(
|
|
346
|
-
bm: bmesh.types.BMesh, faces:
|
|
347
|
-
) ->
|
|
338
|
+
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []
|
|
339
|
+
) -> dict[str, typing.Any]:
|
|
348
340
|
"""Connect Verts to form Convex Faces.Ensures all faces are convex faces.
|
|
349
341
|
|
|
350
342
|
:param bm: The bmesh to operate on.
|
|
351
343
|
:type bm: bmesh.types.BMesh
|
|
352
344
|
:param faces: input faces
|
|
353
|
-
:type faces:
|
|
345
|
+
:type faces: list[bmesh.types.BMFace]
|
|
354
346
|
:return: edges:
|
|
355
347
|
|
|
356
348
|
type list of (`bmesh.types.BMEdge`)
|
|
@@ -358,16 +350,14 @@ def connect_verts_concave(
|
|
|
358
350
|
faces:
|
|
359
351
|
|
|
360
352
|
type list of (`bmesh.types.BMFace`)
|
|
361
|
-
:rtype:
|
|
353
|
+
:rtype: dict[str, typing.Any]
|
|
362
354
|
"""
|
|
363
355
|
|
|
364
356
|
...
|
|
365
357
|
|
|
366
358
|
def connect_verts_nonplanar(
|
|
367
|
-
bm: bmesh.types.BMesh,
|
|
368
|
-
|
|
369
|
-
faces: typing.List[bmesh.types.BMFace] = [],
|
|
370
|
-
) -> typing.Dict[str, typing.Any]:
|
|
359
|
+
bm: bmesh.types.BMesh, angle_limit: float = 0, faces: list[bmesh.types.BMFace] = []
|
|
360
|
+
) -> dict[str, typing.Any]:
|
|
371
361
|
"""Connect Verts Across non Planer Faces.Split faces by connecting edges along non planer faces.
|
|
372
362
|
|
|
373
363
|
:param bm: The bmesh to operate on.
|
|
@@ -375,7 +365,7 @@ def connect_verts_nonplanar(
|
|
|
375
365
|
:param angle_limit: total rotation angle (radians)
|
|
376
366
|
:type angle_limit: float
|
|
377
367
|
:param faces: input faces
|
|
378
|
-
:type faces:
|
|
368
|
+
:type faces: list[bmesh.types.BMFace]
|
|
379
369
|
:return: edges:
|
|
380
370
|
|
|
381
371
|
type list of (`bmesh.types.BMEdge`)
|
|
@@ -383,21 +373,19 @@ def connect_verts_nonplanar(
|
|
|
383
373
|
faces:
|
|
384
374
|
|
|
385
375
|
type list of (`bmesh.types.BMFace`)
|
|
386
|
-
:rtype:
|
|
376
|
+
:rtype: dict[str, typing.Any]
|
|
387
377
|
"""
|
|
388
378
|
|
|
389
379
|
...
|
|
390
380
|
|
|
391
381
|
def contextual_create(
|
|
392
382
|
bm: bmesh.types.BMesh,
|
|
393
|
-
geom:
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
typing.List[bmesh.types.BMFace],
|
|
397
|
-
] = [],
|
|
383
|
+
geom: list[bmesh.types.BMVert]
|
|
384
|
+
| list[bmesh.types.BMEdge]
|
|
385
|
+
| list[bmesh.types.BMFace] = [],
|
|
398
386
|
mat_nr: int = 0,
|
|
399
387
|
use_smooth: bool = False,
|
|
400
|
-
) ->
|
|
388
|
+
) -> dict[str, typing.Any]:
|
|
401
389
|
"""Contextual Create.This is basically F-key, it creates
|
|
402
390
|
new faces from vertices, makes stuff from edge nets,
|
|
403
391
|
makes wire edges, etc. It also dissolves faces.Three verts become a triangle, four become a quad. Two
|
|
@@ -406,7 +394,7 @@ def contextual_create(
|
|
|
406
394
|
:param bm: The bmesh to operate on.
|
|
407
395
|
:type bm: bmesh.types.BMesh
|
|
408
396
|
:param geom: input geometry.
|
|
409
|
-
:type geom:
|
|
397
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
410
398
|
:param mat_nr: material to use
|
|
411
399
|
:type mat_nr: int
|
|
412
400
|
:param use_smooth: smooth to use
|
|
@@ -418,20 +406,18 @@ def contextual_create(
|
|
|
418
406
|
edges: newly-made edge(s)
|
|
419
407
|
|
|
420
408
|
type list of (`bmesh.types.BMEdge`)
|
|
421
|
-
:rtype:
|
|
409
|
+
:rtype: dict[str, typing.Any]
|
|
422
410
|
"""
|
|
423
411
|
|
|
424
412
|
...
|
|
425
413
|
|
|
426
414
|
def convex_hull(
|
|
427
415
|
bm: bmesh.types.BMesh,
|
|
428
|
-
input:
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
typing.List[bmesh.types.BMFace],
|
|
432
|
-
] = [],
|
|
416
|
+
input: list[bmesh.types.BMVert]
|
|
417
|
+
| list[bmesh.types.BMEdge]
|
|
418
|
+
| list[bmesh.types.BMFace] = [],
|
|
433
419
|
use_existing_faces: bool = False,
|
|
434
|
-
) ->
|
|
420
|
+
) -> dict[str, typing.Any]:
|
|
435
421
|
"""Convex HullBuilds a convex hull from the vertices in 'input'.If 'use_existing_faces' is true, the hull will not output triangles
|
|
436
422
|
that are covered by a pre-existing face.All hull vertices, faces, and edges are added to 'geom.out'. Any
|
|
437
423
|
input elements that end up inside the hull (i.e. are not used by an
|
|
@@ -443,7 +429,7 @@ def convex_hull(
|
|
|
443
429
|
:param bm: The bmesh to operate on.
|
|
444
430
|
:type bm: bmesh.types.BMesh
|
|
445
431
|
:param input: input geometry
|
|
446
|
-
:type input:
|
|
432
|
+
:type input: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
447
433
|
:param use_existing_faces: skip hull triangles that are covered by a pre-existing face
|
|
448
434
|
:type use_existing_faces: bool
|
|
449
435
|
:return: geom:
|
|
@@ -461,7 +447,7 @@ def convex_hull(
|
|
|
461
447
|
geom_holes:
|
|
462
448
|
|
|
463
449
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
464
|
-
:rtype:
|
|
450
|
+
:rtype: dict[str, typing.Any]
|
|
465
451
|
"""
|
|
466
452
|
|
|
467
453
|
...
|
|
@@ -472,9 +458,9 @@ def create_circle(
|
|
|
472
458
|
cap_tris: bool = False,
|
|
473
459
|
segments: int = 0,
|
|
474
460
|
radius: float = 0,
|
|
475
|
-
matrix: typing.
|
|
461
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
476
462
|
calc_uvs: bool = False,
|
|
477
|
-
) ->
|
|
463
|
+
) -> dict[str, typing.Any]:
|
|
478
464
|
"""Creates a Circle.
|
|
479
465
|
|
|
480
466
|
:param bm: The bmesh to operate on.
|
|
@@ -488,13 +474,13 @@ def create_circle(
|
|
|
488
474
|
:param radius: Radius of the circle.
|
|
489
475
|
:type radius: float
|
|
490
476
|
:param matrix: matrix to multiply the new geometry with
|
|
491
|
-
:type matrix: typing.
|
|
477
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
492
478
|
:param calc_uvs: calculate default UVs
|
|
493
479
|
:type calc_uvs: bool
|
|
494
480
|
:return: verts: output verts
|
|
495
481
|
|
|
496
482
|
type list of (`bmesh.types.BMVert`)
|
|
497
|
-
:rtype:
|
|
483
|
+
:rtype: dict[str, typing.Any]
|
|
498
484
|
"""
|
|
499
485
|
|
|
500
486
|
...
|
|
@@ -507,9 +493,9 @@ def create_cone(
|
|
|
507
493
|
radius1: float = 0,
|
|
508
494
|
radius2: float = 0,
|
|
509
495
|
depth: float = 0,
|
|
510
|
-
matrix: typing.
|
|
496
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
511
497
|
calc_uvs: bool = False,
|
|
512
|
-
) ->
|
|
498
|
+
) -> dict[str, typing.Any]:
|
|
513
499
|
"""Create Cone.Creates a cone with variable depth at both ends
|
|
514
500
|
|
|
515
501
|
:param bm: The bmesh to operate on.
|
|
@@ -527,13 +513,13 @@ def create_cone(
|
|
|
527
513
|
:param depth: distance between ends
|
|
528
514
|
:type depth: float
|
|
529
515
|
:param matrix: matrix to multiply the new geometry with
|
|
530
|
-
:type matrix: typing.
|
|
516
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
531
517
|
:param calc_uvs: calculate default UVs
|
|
532
518
|
:type calc_uvs: bool
|
|
533
519
|
:return: verts: output verts
|
|
534
520
|
|
|
535
521
|
type list of (`bmesh.types.BMVert`)
|
|
536
|
-
:rtype:
|
|
522
|
+
:rtype: dict[str, typing.Any]
|
|
537
523
|
"""
|
|
538
524
|
|
|
539
525
|
...
|
|
@@ -541,9 +527,9 @@ def create_cone(
|
|
|
541
527
|
def create_cube(
|
|
542
528
|
bm: bmesh.types.BMesh,
|
|
543
529
|
size: float = 0,
|
|
544
|
-
matrix: typing.
|
|
530
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
545
531
|
calc_uvs: bool = False,
|
|
546
|
-
) ->
|
|
532
|
+
) -> dict[str, typing.Any]:
|
|
547
533
|
"""Create CubeCreates a cube.
|
|
548
534
|
|
|
549
535
|
:param bm: The bmesh to operate on.
|
|
@@ -551,13 +537,13 @@ def create_cube(
|
|
|
551
537
|
:param size: size of the cube
|
|
552
538
|
:type size: float
|
|
553
539
|
:param matrix: matrix to multiply the new geometry with
|
|
554
|
-
:type matrix: typing.
|
|
540
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
555
541
|
:param calc_uvs: calculate default UVs
|
|
556
542
|
:type calc_uvs: bool
|
|
557
543
|
:return: verts: output verts
|
|
558
544
|
|
|
559
545
|
type list of (`bmesh.types.BMVert`)
|
|
560
|
-
:rtype:
|
|
546
|
+
:rtype: dict[str, typing.Any]
|
|
561
547
|
"""
|
|
562
548
|
|
|
563
549
|
...
|
|
@@ -567,9 +553,9 @@ def create_grid(
|
|
|
567
553
|
x_segments: int = 0,
|
|
568
554
|
y_segments: int = 0,
|
|
569
555
|
size: float = 0,
|
|
570
|
-
matrix: typing.
|
|
556
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
571
557
|
calc_uvs: bool = False,
|
|
572
|
-
) ->
|
|
558
|
+
) -> dict[str, typing.Any]:
|
|
573
559
|
"""Create Grid.Creates a grid with a variable number of subdivisions
|
|
574
560
|
|
|
575
561
|
:param bm: The bmesh to operate on.
|
|
@@ -581,13 +567,13 @@ def create_grid(
|
|
|
581
567
|
:param size: size of the grid
|
|
582
568
|
:type size: float
|
|
583
569
|
:param matrix: matrix to multiply the new geometry with
|
|
584
|
-
:type matrix: typing.
|
|
570
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
585
571
|
:param calc_uvs: calculate default UVs
|
|
586
572
|
:type calc_uvs: bool
|
|
587
573
|
:return: verts: output verts
|
|
588
574
|
|
|
589
575
|
type list of (`bmesh.types.BMVert`)
|
|
590
|
-
:rtype:
|
|
576
|
+
:rtype: dict[str, typing.Any]
|
|
591
577
|
"""
|
|
592
578
|
|
|
593
579
|
...
|
|
@@ -596,9 +582,9 @@ def create_icosphere(
|
|
|
596
582
|
bm: bmesh.types.BMesh,
|
|
597
583
|
subdivisions: int = 0,
|
|
598
584
|
radius: float = 0,
|
|
599
|
-
matrix: typing.
|
|
585
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
600
586
|
calc_uvs: bool = False,
|
|
601
|
-
) ->
|
|
587
|
+
) -> dict[str, typing.Any]:
|
|
602
588
|
"""Create Ico-Sphere.Creates a grid with a variable number of subdivisions
|
|
603
589
|
|
|
604
590
|
:param bm: The bmesh to operate on.
|
|
@@ -608,34 +594,34 @@ def create_icosphere(
|
|
|
608
594
|
:param radius: radius
|
|
609
595
|
:type radius: float
|
|
610
596
|
:param matrix: matrix to multiply the new geometry with
|
|
611
|
-
:type matrix: typing.
|
|
597
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
612
598
|
:param calc_uvs: calculate default UVs
|
|
613
599
|
:type calc_uvs: bool
|
|
614
600
|
:return: verts: output verts
|
|
615
601
|
|
|
616
602
|
type list of (`bmesh.types.BMVert`)
|
|
617
|
-
:rtype:
|
|
603
|
+
:rtype: dict[str, typing.Any]
|
|
618
604
|
"""
|
|
619
605
|
|
|
620
606
|
...
|
|
621
607
|
|
|
622
608
|
def create_monkey(
|
|
623
609
|
bm: bmesh.types.BMesh,
|
|
624
|
-
matrix: typing.
|
|
610
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
625
611
|
calc_uvs: bool = False,
|
|
626
|
-
) ->
|
|
612
|
+
) -> dict[str, typing.Any]:
|
|
627
613
|
"""Create Suzanne.Creates a monkey (standard blender primitive).
|
|
628
614
|
|
|
629
615
|
:param bm: The bmesh to operate on.
|
|
630
616
|
:type bm: bmesh.types.BMesh
|
|
631
617
|
:param matrix: matrix to multiply the new geometry with
|
|
632
|
-
:type matrix: typing.
|
|
618
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
633
619
|
:param calc_uvs: calculate default UVs
|
|
634
620
|
:type calc_uvs: bool
|
|
635
621
|
:return: verts: output verts
|
|
636
622
|
|
|
637
623
|
type list of (`bmesh.types.BMVert`)
|
|
638
|
-
:rtype:
|
|
624
|
+
:rtype: dict[str, typing.Any]
|
|
639
625
|
"""
|
|
640
626
|
|
|
641
627
|
...
|
|
@@ -645,9 +631,9 @@ def create_uvsphere(
|
|
|
645
631
|
u_segments: int = 0,
|
|
646
632
|
v_segments: int = 0,
|
|
647
633
|
radius: float = 0,
|
|
648
|
-
matrix: typing.
|
|
634
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
649
635
|
calc_uvs: bool = False,
|
|
650
|
-
) ->
|
|
636
|
+
) -> dict[str, typing.Any]:
|
|
651
637
|
"""Create UV Sphere.Creates a grid with a variable number of subdivisions
|
|
652
638
|
|
|
653
639
|
:param bm: The bmesh to operate on.
|
|
@@ -659,59 +645,56 @@ def create_uvsphere(
|
|
|
659
645
|
:param radius: radius
|
|
660
646
|
:type radius: float
|
|
661
647
|
:param matrix: matrix to multiply the new geometry with
|
|
662
|
-
:type matrix: typing.
|
|
648
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
663
649
|
:param calc_uvs: calculate default UVs
|
|
664
650
|
:type calc_uvs: bool
|
|
665
651
|
:return: verts: output verts
|
|
666
652
|
|
|
667
653
|
type list of (`bmesh.types.BMVert`)
|
|
668
|
-
:rtype:
|
|
654
|
+
:rtype: dict[str, typing.Any]
|
|
669
655
|
"""
|
|
670
656
|
|
|
671
657
|
...
|
|
672
658
|
|
|
673
659
|
def create_vert(
|
|
674
|
-
bm: bmesh.types.BMesh,
|
|
675
|
-
|
|
676
|
-
) -> typing.Dict[str, typing.Any]:
|
|
660
|
+
bm: bmesh.types.BMesh, co: typing.Sequence[float] | mathutils.Vector = None()
|
|
661
|
+
) -> dict[str, typing.Any]:
|
|
677
662
|
"""Make Vertex.Creates a single vertex; this BMOP was necessary
|
|
678
663
|
for click-create-vertex.
|
|
679
664
|
|
|
680
665
|
:param bm: The bmesh to operate on.
|
|
681
666
|
:type bm: bmesh.types.BMesh
|
|
682
667
|
:param co: the coordinate of the new vert
|
|
683
|
-
:type co: typing.
|
|
668
|
+
:type co: typing.Sequence[float] | mathutils.Vector
|
|
684
669
|
:return: vert: the new vert
|
|
685
670
|
|
|
686
671
|
type list of (`bmesh.types.BMVert`)
|
|
687
|
-
:rtype:
|
|
672
|
+
:rtype: dict[str, typing.Any]
|
|
688
673
|
"""
|
|
689
674
|
|
|
690
675
|
...
|
|
691
676
|
|
|
692
677
|
def delete(
|
|
693
678
|
bm: bmesh.types.BMesh,
|
|
694
|
-
geom:
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
] = [],
|
|
699
|
-
context: typing.Union[str, int] = "VERTS",
|
|
679
|
+
geom: list[bmesh.types.BMVert]
|
|
680
|
+
| list[bmesh.types.BMEdge]
|
|
681
|
+
| list[bmesh.types.BMFace] = [],
|
|
682
|
+
context: str | int = "VERTS",
|
|
700
683
|
):
|
|
701
684
|
"""Delete Geometry.Utility operator to delete geometry.
|
|
702
685
|
|
|
703
686
|
:param bm: The bmesh to operate on.
|
|
704
687
|
:type bm: bmesh.types.BMesh
|
|
705
688
|
:param geom: input geometry
|
|
706
|
-
:type geom:
|
|
689
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
707
690
|
:param context: geometry types to delete
|
|
708
|
-
:type context:
|
|
691
|
+
:type context: str | int
|
|
709
692
|
"""
|
|
710
693
|
|
|
711
694
|
...
|
|
712
695
|
|
|
713
696
|
def dissolve_degenerate(
|
|
714
|
-
bm: bmesh.types.BMesh, dist: float = 0, edges:
|
|
697
|
+
bm: bmesh.types.BMesh, dist: float = 0, edges: list[bmesh.types.BMEdge] = []
|
|
715
698
|
):
|
|
716
699
|
"""Degenerate Dissolve.Dissolve edges with no length, faces with no area.
|
|
717
700
|
|
|
@@ -720,23 +703,23 @@ def dissolve_degenerate(
|
|
|
720
703
|
:param dist: maximum distance to consider degenerate
|
|
721
704
|
:type dist: float
|
|
722
705
|
:param edges: input edges
|
|
723
|
-
:type edges:
|
|
706
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
724
707
|
"""
|
|
725
708
|
|
|
726
709
|
...
|
|
727
710
|
|
|
728
711
|
def dissolve_edges(
|
|
729
712
|
bm: bmesh.types.BMesh,
|
|
730
|
-
edges:
|
|
713
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
731
714
|
use_verts: bool = False,
|
|
732
715
|
use_face_split: bool = False,
|
|
733
|
-
) ->
|
|
716
|
+
) -> dict[str, typing.Any]:
|
|
734
717
|
"""Dissolve Edges.
|
|
735
718
|
|
|
736
719
|
:param bm: The bmesh to operate on.
|
|
737
720
|
:type bm: bmesh.types.BMesh
|
|
738
721
|
:param edges: input edges
|
|
739
|
-
:type edges:
|
|
722
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
740
723
|
:param use_verts: dissolve verts left between only 2 edges.
|
|
741
724
|
:type use_verts: bool
|
|
742
725
|
:param use_face_split: split off face corners to maintain surrounding geometry
|
|
@@ -744,28 +727,26 @@ def dissolve_edges(
|
|
|
744
727
|
:return: region:
|
|
745
728
|
|
|
746
729
|
type list of (`bmesh.types.BMFace`)
|
|
747
|
-
:rtype:
|
|
730
|
+
:rtype: dict[str, typing.Any]
|
|
748
731
|
"""
|
|
749
732
|
|
|
750
733
|
...
|
|
751
734
|
|
|
752
735
|
def dissolve_faces(
|
|
753
|
-
bm: bmesh.types.BMesh,
|
|
754
|
-
|
|
755
|
-
use_verts: bool = False,
|
|
756
|
-
) -> typing.Dict[str, typing.Any]:
|
|
736
|
+
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], use_verts: bool = False
|
|
737
|
+
) -> dict[str, typing.Any]:
|
|
757
738
|
"""Dissolve Faces.
|
|
758
739
|
|
|
759
740
|
:param bm: The bmesh to operate on.
|
|
760
741
|
:type bm: bmesh.types.BMesh
|
|
761
742
|
:param faces: input faces
|
|
762
|
-
:type faces:
|
|
743
|
+
:type faces: list[bmesh.types.BMFace]
|
|
763
744
|
:param use_verts: dissolve verts left between only 2 edges.
|
|
764
745
|
:type use_verts: bool
|
|
765
746
|
:return: region:
|
|
766
747
|
|
|
767
748
|
type list of (`bmesh.types.BMFace`)
|
|
768
|
-
:rtype:
|
|
749
|
+
:rtype: dict[str, typing.Any]
|
|
769
750
|
"""
|
|
770
751
|
|
|
771
752
|
...
|
|
@@ -774,10 +755,10 @@ def dissolve_limit(
|
|
|
774
755
|
bm: bmesh.types.BMesh,
|
|
775
756
|
angle_limit: float = 0,
|
|
776
757
|
use_dissolve_boundaries: bool = False,
|
|
777
|
-
verts:
|
|
778
|
-
edges:
|
|
758
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
759
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
779
760
|
delimit=None(),
|
|
780
|
-
) ->
|
|
761
|
+
) -> dict[str, typing.Any]:
|
|
781
762
|
"""Limited Dissolve.Dissolve planar faces and co-linear edges.
|
|
782
763
|
|
|
783
764
|
:param bm: The bmesh to operate on.
|
|
@@ -787,21 +768,21 @@ def dissolve_limit(
|
|
|
787
768
|
:param use_dissolve_boundaries: dissolve all vertices in between face boundaries
|
|
788
769
|
:type use_dissolve_boundaries: bool
|
|
789
770
|
:param verts: input vertices
|
|
790
|
-
:type verts:
|
|
771
|
+
:type verts: list[bmesh.types.BMVert]
|
|
791
772
|
:param edges: input edges
|
|
792
|
-
:type edges:
|
|
773
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
793
774
|
:param delimit: delimit dissolve operation
|
|
794
775
|
:return: region:
|
|
795
776
|
|
|
796
777
|
type list of (`bmesh.types.BMFace`)
|
|
797
|
-
:rtype:
|
|
778
|
+
:rtype: dict[str, typing.Any]
|
|
798
779
|
"""
|
|
799
780
|
|
|
800
781
|
...
|
|
801
782
|
|
|
802
783
|
def dissolve_verts(
|
|
803
784
|
bm: bmesh.types.BMesh,
|
|
804
|
-
verts:
|
|
785
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
805
786
|
use_face_split: bool = False,
|
|
806
787
|
use_boundary_tear: bool = False,
|
|
807
788
|
):
|
|
@@ -810,7 +791,7 @@ def dissolve_verts(
|
|
|
810
791
|
:param bm: The bmesh to operate on.
|
|
811
792
|
:type bm: bmesh.types.BMesh
|
|
812
793
|
:param verts: input vertices
|
|
813
|
-
:type verts:
|
|
794
|
+
:type verts: list[bmesh.types.BMVert]
|
|
814
795
|
:param use_face_split: split off face corners to maintain surrounding geometry
|
|
815
796
|
:type use_face_split: bool
|
|
816
797
|
:param use_boundary_tear: split off face corners instead of merging faces
|
|
@@ -821,22 +802,20 @@ def dissolve_verts(
|
|
|
821
802
|
|
|
822
803
|
def duplicate(
|
|
823
804
|
bm: bmesh.types.BMesh,
|
|
824
|
-
geom:
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
typing.List[bmesh.types.BMFace],
|
|
828
|
-
] = [],
|
|
805
|
+
geom: list[bmesh.types.BMVert]
|
|
806
|
+
| list[bmesh.types.BMEdge]
|
|
807
|
+
| list[bmesh.types.BMFace] = [],
|
|
829
808
|
dest: bmesh.types.BMesh = None,
|
|
830
809
|
use_select_history: bool = False,
|
|
831
810
|
use_edge_flip_from_face: bool = False,
|
|
832
|
-
) ->
|
|
811
|
+
) -> dict[str, typing.Any]:
|
|
833
812
|
"""Duplicate Geometry.Utility operator to duplicate geometry,
|
|
834
813
|
optionally into a destination mesh.
|
|
835
814
|
|
|
836
815
|
:param bm: The bmesh to operate on.
|
|
837
816
|
:type bm: bmesh.types.BMesh
|
|
838
817
|
:param geom: input geometry
|
|
839
|
-
:type geom:
|
|
818
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
840
819
|
:param dest: destination bmesh, if None will use current on
|
|
841
820
|
:type dest: bmesh.types.BMesh
|
|
842
821
|
:param use_select_history: Undocumented.
|
|
@@ -870,23 +849,23 @@ def duplicate(
|
|
|
870
849
|
isovert_map:
|
|
871
850
|
|
|
872
851
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
873
|
-
:rtype:
|
|
852
|
+
:rtype: dict[str, typing.Any]
|
|
874
853
|
"""
|
|
875
854
|
|
|
876
855
|
...
|
|
877
856
|
|
|
878
857
|
def edgeloop_fill(
|
|
879
858
|
bm: bmesh.types.BMesh,
|
|
880
|
-
edges:
|
|
859
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
881
860
|
mat_nr: int = 0,
|
|
882
861
|
use_smooth: bool = False,
|
|
883
|
-
) ->
|
|
862
|
+
) -> dict[str, typing.Any]:
|
|
884
863
|
"""Edge Loop Fill.Create faces defined by one or more non overlapping edge loops.
|
|
885
864
|
|
|
886
865
|
:param bm: The bmesh to operate on.
|
|
887
866
|
:type bm: bmesh.types.BMesh
|
|
888
867
|
:param edges: input edges
|
|
889
|
-
:type edges:
|
|
868
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
890
869
|
:param mat_nr: material to use
|
|
891
870
|
:type mat_nr: int
|
|
892
871
|
:param use_smooth: smooth state to use
|
|
@@ -894,24 +873,24 @@ def edgeloop_fill(
|
|
|
894
873
|
:return: faces: new faces
|
|
895
874
|
|
|
896
875
|
type list of (`bmesh.types.BMFace`)
|
|
897
|
-
:rtype:
|
|
876
|
+
:rtype: dict[str, typing.Any]
|
|
898
877
|
"""
|
|
899
878
|
|
|
900
879
|
...
|
|
901
880
|
|
|
902
881
|
def edgenet_fill(
|
|
903
882
|
bm: bmesh.types.BMesh,
|
|
904
|
-
edges:
|
|
883
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
905
884
|
mat_nr: int = 0,
|
|
906
885
|
use_smooth: bool = False,
|
|
907
886
|
sides: int = 0,
|
|
908
|
-
) ->
|
|
887
|
+
) -> dict[str, typing.Any]:
|
|
909
888
|
"""Edge Net Fill.Create faces defined by enclosed edges.
|
|
910
889
|
|
|
911
890
|
:param bm: The bmesh to operate on.
|
|
912
891
|
:type bm: bmesh.types.BMesh
|
|
913
892
|
:param edges: input edges
|
|
914
|
-
:type edges:
|
|
893
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
915
894
|
:param mat_nr: material to use
|
|
916
895
|
:type mat_nr: int
|
|
917
896
|
:param use_smooth: smooth state to use
|
|
@@ -921,41 +900,41 @@ def edgenet_fill(
|
|
|
921
900
|
:return: faces: new faces
|
|
922
901
|
|
|
923
902
|
type list of (`bmesh.types.BMFace`)
|
|
924
|
-
:rtype:
|
|
903
|
+
:rtype: dict[str, typing.Any]
|
|
925
904
|
"""
|
|
926
905
|
|
|
927
906
|
...
|
|
928
907
|
|
|
929
908
|
def edgenet_prepare(
|
|
930
|
-
bm: bmesh.types.BMesh, edges:
|
|
931
|
-
) ->
|
|
909
|
+
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []
|
|
910
|
+
) -> dict[str, typing.Any]:
|
|
932
911
|
"""Edge-net Prepare.Identifies several useful edge loop cases and modifies them so
|
|
933
912
|
they'll become a face when edgenet_fill is called. The cases covered are:
|
|
934
913
|
|
|
935
914
|
:param bm: The bmesh to operate on.
|
|
936
915
|
:type bm: bmesh.types.BMesh
|
|
937
916
|
:param edges: input edges
|
|
938
|
-
:type edges:
|
|
917
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
939
918
|
:return: edges: new edges
|
|
940
919
|
|
|
941
920
|
type list of (`bmesh.types.BMEdge`)
|
|
942
|
-
:rtype:
|
|
921
|
+
:rtype: dict[str, typing.Any]
|
|
943
922
|
"""
|
|
944
923
|
|
|
945
924
|
...
|
|
946
925
|
|
|
947
926
|
def extrude_discrete_faces(
|
|
948
927
|
bm: bmesh.types.BMesh,
|
|
949
|
-
faces:
|
|
928
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
950
929
|
use_normal_flip: bool = False,
|
|
951
930
|
use_select_history: bool = False,
|
|
952
|
-
) ->
|
|
931
|
+
) -> dict[str, typing.Any]:
|
|
953
932
|
"""Individual Face Extrude.Extrudes faces individually.
|
|
954
933
|
|
|
955
934
|
:param bm: The bmesh to operate on.
|
|
956
935
|
:type bm: bmesh.types.BMesh
|
|
957
936
|
:param faces: input faces
|
|
958
|
-
:type faces:
|
|
937
|
+
:type faces: list[bmesh.types.BMFace]
|
|
959
938
|
:param use_normal_flip: Create faces with reversed direction.
|
|
960
939
|
:type use_normal_flip: bool
|
|
961
940
|
:param use_select_history: pass to duplicate
|
|
@@ -963,24 +942,24 @@ def extrude_discrete_faces(
|
|
|
963
942
|
:return: faces: output faces
|
|
964
943
|
|
|
965
944
|
type list of (`bmesh.types.BMFace`)
|
|
966
|
-
:rtype:
|
|
945
|
+
:rtype: dict[str, typing.Any]
|
|
967
946
|
"""
|
|
968
947
|
|
|
969
948
|
...
|
|
970
949
|
|
|
971
950
|
def extrude_edge_only(
|
|
972
951
|
bm: bmesh.types.BMesh,
|
|
973
|
-
edges:
|
|
952
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
974
953
|
use_normal_flip: bool = False,
|
|
975
954
|
use_select_history: bool = False,
|
|
976
|
-
) ->
|
|
955
|
+
) -> dict[str, typing.Any]:
|
|
977
956
|
"""Extrude Only Edges.Extrudes Edges into faces, note that this is very simple, there's no fancy
|
|
978
957
|
winged extrusion.
|
|
979
958
|
|
|
980
959
|
:param bm: The bmesh to operate on.
|
|
981
960
|
:type bm: bmesh.types.BMesh
|
|
982
961
|
:param edges: input vertices
|
|
983
|
-
:type edges:
|
|
962
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
984
963
|
:param use_normal_flip: Create faces with reversed direction.
|
|
985
964
|
:type use_normal_flip: bool
|
|
986
965
|
:param use_select_history: pass to duplicate
|
|
@@ -988,31 +967,29 @@ def extrude_edge_only(
|
|
|
988
967
|
:return: geom: output geometry
|
|
989
968
|
|
|
990
969
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
991
|
-
:rtype:
|
|
970
|
+
:rtype: dict[str, typing.Any]
|
|
992
971
|
"""
|
|
993
972
|
|
|
994
973
|
...
|
|
995
974
|
|
|
996
975
|
def extrude_face_region(
|
|
997
976
|
bm: bmesh.types.BMesh,
|
|
998
|
-
geom:
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
typing.List[bmesh.types.BMFace],
|
|
1002
|
-
] = [],
|
|
977
|
+
geom: list[bmesh.types.BMVert]
|
|
978
|
+
| list[bmesh.types.BMEdge]
|
|
979
|
+
| list[bmesh.types.BMFace] = [],
|
|
1003
980
|
edges_exclude=None(),
|
|
1004
981
|
use_keep_orig: bool = False,
|
|
1005
982
|
use_normal_flip: bool = False,
|
|
1006
983
|
use_normal_from_adjacent: bool = False,
|
|
1007
984
|
use_dissolve_ortho_edges: bool = False,
|
|
1008
985
|
use_select_history: bool = False,
|
|
1009
|
-
) ->
|
|
986
|
+
) -> dict[str, typing.Any]:
|
|
1010
987
|
"""Extrude Faces.Extrude operator (does not transform)
|
|
1011
988
|
|
|
1012
989
|
:param bm: The bmesh to operate on.
|
|
1013
990
|
:type bm: bmesh.types.BMesh
|
|
1014
991
|
:param geom: edges and faces
|
|
1015
|
-
:type geom:
|
|
992
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
1016
993
|
:param edges_exclude: input edges to explicitly exclude from extrusion
|
|
1017
994
|
:param use_keep_orig: keep original geometry (requires geom to include edges).
|
|
1018
995
|
:type use_keep_orig: bool
|
|
@@ -1027,22 +1004,22 @@ def extrude_face_region(
|
|
|
1027
1004
|
:return: geom:
|
|
1028
1005
|
|
|
1029
1006
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1030
|
-
:rtype:
|
|
1007
|
+
:rtype: dict[str, typing.Any]
|
|
1031
1008
|
"""
|
|
1032
1009
|
|
|
1033
1010
|
...
|
|
1034
1011
|
|
|
1035
1012
|
def extrude_vert_indiv(
|
|
1036
1013
|
bm: bmesh.types.BMesh,
|
|
1037
|
-
verts:
|
|
1014
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1038
1015
|
use_select_history: bool = False,
|
|
1039
|
-
) ->
|
|
1016
|
+
) -> dict[str, typing.Any]:
|
|
1040
1017
|
"""Individual Vertex Extrude.Extrudes wire edges from vertices.
|
|
1041
1018
|
|
|
1042
1019
|
:param bm: The bmesh to operate on.
|
|
1043
1020
|
:type bm: bmesh.types.BMesh
|
|
1044
1021
|
:param verts: input vertices
|
|
1045
|
-
:type verts:
|
|
1022
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1046
1023
|
:param use_select_history: pass to duplicate
|
|
1047
1024
|
:type use_select_history: bool
|
|
1048
1025
|
:return: edges: output wire edges
|
|
@@ -1052,23 +1029,23 @@ def extrude_vert_indiv(
|
|
|
1052
1029
|
verts: output vertices
|
|
1053
1030
|
|
|
1054
1031
|
type list of (`bmesh.types.BMVert`)
|
|
1055
|
-
:rtype:
|
|
1032
|
+
:rtype: dict[str, typing.Any]
|
|
1056
1033
|
"""
|
|
1057
1034
|
|
|
1058
1035
|
...
|
|
1059
1036
|
|
|
1060
1037
|
def face_attribute_fill(
|
|
1061
1038
|
bm: bmesh.types.BMesh,
|
|
1062
|
-
faces:
|
|
1039
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
1063
1040
|
use_normals: bool = False,
|
|
1064
1041
|
use_data: bool = False,
|
|
1065
|
-
) ->
|
|
1042
|
+
) -> dict[str, typing.Any]:
|
|
1066
1043
|
"""Face Attribute Fill.Fill in faces with data from adjacent faces.
|
|
1067
1044
|
|
|
1068
1045
|
:param bm: The bmesh to operate on.
|
|
1069
1046
|
:type bm: bmesh.types.BMesh
|
|
1070
1047
|
:param faces: input faces
|
|
1071
|
-
:type faces:
|
|
1048
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1072
1049
|
:param use_normals: copy face winding
|
|
1073
1050
|
:type use_normals: bool
|
|
1074
1051
|
:param use_data: copy face data
|
|
@@ -1076,17 +1053,17 @@ def face_attribute_fill(
|
|
|
1076
1053
|
:return: faces_fail: faces that could not be handled
|
|
1077
1054
|
|
|
1078
1055
|
type list of (`bmesh.types.BMFace`)
|
|
1079
|
-
:rtype:
|
|
1056
|
+
:rtype: dict[str, typing.Any]
|
|
1080
1057
|
"""
|
|
1081
1058
|
|
|
1082
1059
|
...
|
|
1083
1060
|
|
|
1084
1061
|
def find_doubles(
|
|
1085
1062
|
bm: bmesh.types.BMesh,
|
|
1086
|
-
verts:
|
|
1087
|
-
keep_verts:
|
|
1063
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1064
|
+
keep_verts: list[bmesh.types.BMVert] = [],
|
|
1088
1065
|
dist: float = 0,
|
|
1089
|
-
) ->
|
|
1066
|
+
) -> dict[str, typing.Any]:
|
|
1090
1067
|
"""Find Doubles.Takes input verts and find vertices they should weld to.
|
|
1091
1068
|
Outputs a mapping slot suitable for use with the weld verts BMOP.If keep_verts is used, vertices outside that set can only be merged
|
|
1092
1069
|
with vertices in that set.
|
|
@@ -1094,45 +1071,43 @@ def find_doubles(
|
|
|
1094
1071
|
:param bm: The bmesh to operate on.
|
|
1095
1072
|
:type bm: bmesh.types.BMesh
|
|
1096
1073
|
:param verts: input vertices
|
|
1097
|
-
:type verts:
|
|
1074
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1098
1075
|
:param keep_verts: list of verts to keep
|
|
1099
|
-
:type keep_verts:
|
|
1076
|
+
:type keep_verts: list[bmesh.types.BMVert]
|
|
1100
1077
|
:param dist: maximum distance
|
|
1101
1078
|
:type dist: float
|
|
1102
1079
|
:return: targetmap:
|
|
1103
1080
|
|
|
1104
1081
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1105
|
-
:rtype:
|
|
1082
|
+
:rtype: dict[str, typing.Any]
|
|
1106
1083
|
"""
|
|
1107
1084
|
|
|
1108
1085
|
...
|
|
1109
1086
|
|
|
1110
|
-
def flip_quad_tessellation(
|
|
1111
|
-
bm: bmesh.types.BMesh, faces: typing.List[bmesh.types.BMFace] = []
|
|
1112
|
-
):
|
|
1087
|
+
def flip_quad_tessellation(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
|
|
1113
1088
|
"""Flip Quad TessellationFlip the tessellation direction of the selected quads.
|
|
1114
1089
|
|
|
1115
1090
|
:param bm: The bmesh to operate on.
|
|
1116
1091
|
:type bm: bmesh.types.BMesh
|
|
1117
1092
|
:param faces: Undocumented.
|
|
1118
|
-
:type faces:
|
|
1093
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1119
1094
|
"""
|
|
1120
1095
|
|
|
1121
1096
|
...
|
|
1122
1097
|
|
|
1123
1098
|
def grid_fill(
|
|
1124
1099
|
bm: bmesh.types.BMesh,
|
|
1125
|
-
edges:
|
|
1100
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
1126
1101
|
mat_nr: int = 0,
|
|
1127
1102
|
use_smooth: bool = False,
|
|
1128
1103
|
use_interp_simple: bool = False,
|
|
1129
|
-
) ->
|
|
1104
|
+
) -> dict[str, typing.Any]:
|
|
1130
1105
|
"""Grid Fill.Create faces defined by 2 disconnected edge loops (which share edges).
|
|
1131
1106
|
|
|
1132
1107
|
:param bm: The bmesh to operate on.
|
|
1133
1108
|
:type bm: bmesh.types.BMesh
|
|
1134
1109
|
:param edges: input edges
|
|
1135
|
-
:type edges:
|
|
1110
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
1136
1111
|
:param mat_nr: material to use
|
|
1137
1112
|
:type mat_nr: int
|
|
1138
1113
|
:param use_smooth: smooth state to use
|
|
@@ -1142,45 +1117,45 @@ def grid_fill(
|
|
|
1142
1117
|
:return: faces: new faces
|
|
1143
1118
|
|
|
1144
1119
|
type list of (`bmesh.types.BMFace`)
|
|
1145
|
-
:rtype:
|
|
1120
|
+
:rtype: dict[str, typing.Any]
|
|
1146
1121
|
"""
|
|
1147
1122
|
|
|
1148
1123
|
...
|
|
1149
1124
|
|
|
1150
1125
|
def holes_fill(
|
|
1151
|
-
bm: bmesh.types.BMesh, edges:
|
|
1152
|
-
) ->
|
|
1126
|
+
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], sides: int = 0
|
|
1127
|
+
) -> dict[str, typing.Any]:
|
|
1153
1128
|
"""Fill Holes.Fill boundary edges with faces, copying surrounding customdata.
|
|
1154
1129
|
|
|
1155
1130
|
:param bm: The bmesh to operate on.
|
|
1156
1131
|
:type bm: bmesh.types.BMesh
|
|
1157
1132
|
:param edges: input edges
|
|
1158
|
-
:type edges:
|
|
1133
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
1159
1134
|
:param sides: number of face sides to fill
|
|
1160
1135
|
:type sides: int
|
|
1161
1136
|
:return: faces: new faces
|
|
1162
1137
|
|
|
1163
1138
|
type list of (`bmesh.types.BMFace`)
|
|
1164
|
-
:rtype:
|
|
1139
|
+
:rtype: dict[str, typing.Any]
|
|
1165
1140
|
"""
|
|
1166
1141
|
|
|
1167
1142
|
...
|
|
1168
1143
|
|
|
1169
1144
|
def inset_individual(
|
|
1170
1145
|
bm: bmesh.types.BMesh,
|
|
1171
|
-
faces:
|
|
1146
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
1172
1147
|
thickness: float = 0,
|
|
1173
1148
|
depth: float = 0,
|
|
1174
1149
|
use_even_offset: bool = False,
|
|
1175
1150
|
use_interpolate: bool = False,
|
|
1176
1151
|
use_relative_offset: bool = False,
|
|
1177
|
-
) ->
|
|
1152
|
+
) -> dict[str, typing.Any]:
|
|
1178
1153
|
"""Face Inset (Individual).Insets individual faces.
|
|
1179
1154
|
|
|
1180
1155
|
:param bm: The bmesh to operate on.
|
|
1181
1156
|
:type bm: bmesh.types.BMesh
|
|
1182
1157
|
:param faces: input faces
|
|
1183
|
-
:type faces:
|
|
1158
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1184
1159
|
:param thickness: thickness
|
|
1185
1160
|
:type thickness: float
|
|
1186
1161
|
:param depth: depth
|
|
@@ -1194,15 +1169,15 @@ def inset_individual(
|
|
|
1194
1169
|
:return: faces: output faces
|
|
1195
1170
|
|
|
1196
1171
|
type list of (`bmesh.types.BMFace`)
|
|
1197
|
-
:rtype:
|
|
1172
|
+
:rtype: dict[str, typing.Any]
|
|
1198
1173
|
"""
|
|
1199
1174
|
|
|
1200
1175
|
...
|
|
1201
1176
|
|
|
1202
1177
|
def inset_region(
|
|
1203
1178
|
bm: bmesh.types.BMesh,
|
|
1204
|
-
faces:
|
|
1205
|
-
faces_exclude:
|
|
1179
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
1180
|
+
faces_exclude: list[bmesh.types.BMFace] = [],
|
|
1206
1181
|
use_boundary: bool = False,
|
|
1207
1182
|
use_even_offset: bool = False,
|
|
1208
1183
|
use_interpolate: bool = False,
|
|
@@ -1211,15 +1186,15 @@ def inset_region(
|
|
|
1211
1186
|
thickness: float = 0,
|
|
1212
1187
|
depth: float = 0,
|
|
1213
1188
|
use_outset: bool = False,
|
|
1214
|
-
) ->
|
|
1189
|
+
) -> dict[str, typing.Any]:
|
|
1215
1190
|
"""Face Inset (Regions).Inset or outset face regions.
|
|
1216
1191
|
|
|
1217
1192
|
:param bm: The bmesh to operate on.
|
|
1218
1193
|
:type bm: bmesh.types.BMesh
|
|
1219
1194
|
:param faces: input faces
|
|
1220
|
-
:type faces:
|
|
1195
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1221
1196
|
:param faces_exclude: input faces to explicitly exclude from inset
|
|
1222
|
-
:type faces_exclude:
|
|
1197
|
+
:type faces_exclude: list[bmesh.types.BMFace]
|
|
1223
1198
|
:param use_boundary: inset face boundaries
|
|
1224
1199
|
:type use_boundary: bool
|
|
1225
1200
|
:param use_even_offset: scale the offset to give more even thickness
|
|
@@ -1239,14 +1214,14 @@ def inset_region(
|
|
|
1239
1214
|
:return: faces: output faces
|
|
1240
1215
|
|
|
1241
1216
|
type list of (`bmesh.types.BMFace`)
|
|
1242
|
-
:rtype:
|
|
1217
|
+
:rtype: dict[str, typing.Any]
|
|
1243
1218
|
"""
|
|
1244
1219
|
|
|
1245
1220
|
...
|
|
1246
1221
|
|
|
1247
1222
|
def join_triangles(
|
|
1248
1223
|
bm: bmesh.types.BMesh,
|
|
1249
|
-
faces:
|
|
1224
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
1250
1225
|
cmp_seam: bool = False,
|
|
1251
1226
|
cmp_sharp: bool = False,
|
|
1252
1227
|
cmp_uvs: bool = False,
|
|
@@ -1254,14 +1229,14 @@ def join_triangles(
|
|
|
1254
1229
|
cmp_materials: bool = False,
|
|
1255
1230
|
angle_face_threshold: float = 0,
|
|
1256
1231
|
angle_shape_threshold: float = 0,
|
|
1257
|
-
) ->
|
|
1232
|
+
) -> dict[str, typing.Any]:
|
|
1258
1233
|
"""Join Triangles.Tries to intelligently join triangles according
|
|
1259
1234
|
to angle threshold and delimiters.
|
|
1260
1235
|
|
|
1261
1236
|
:param bm: The bmesh to operate on.
|
|
1262
1237
|
:type bm: bmesh.types.BMesh
|
|
1263
1238
|
:param faces: input geometry.
|
|
1264
|
-
:type faces:
|
|
1239
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1265
1240
|
:param cmp_seam: Compare seam
|
|
1266
1241
|
:type cmp_seam: bool
|
|
1267
1242
|
:param cmp_sharp: Compare sharp
|
|
@@ -1279,7 +1254,7 @@ def join_triangles(
|
|
|
1279
1254
|
:return: faces: joined faces
|
|
1280
1255
|
|
|
1281
1256
|
type list of (`bmesh.types.BMFace`)
|
|
1282
|
-
:rtype:
|
|
1257
|
+
:rtype: dict[str, typing.Any]
|
|
1283
1258
|
"""
|
|
1284
1259
|
|
|
1285
1260
|
...
|
|
@@ -1307,19 +1282,17 @@ def mesh_to_bmesh(
|
|
|
1307
1282
|
|
|
1308
1283
|
def mirror(
|
|
1309
1284
|
bm: bmesh.types.BMesh,
|
|
1310
|
-
geom:
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
] = [],
|
|
1315
|
-
matrix: typing.Union[typing.Sequence[float], mathutils.Matrix] = None(4),
|
|
1285
|
+
geom: list[bmesh.types.BMVert]
|
|
1286
|
+
| list[bmesh.types.BMEdge]
|
|
1287
|
+
| list[bmesh.types.BMFace] = [],
|
|
1288
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
1316
1289
|
merge_dist: float = 0,
|
|
1317
|
-
axis:
|
|
1290
|
+
axis: str | int = "X",
|
|
1318
1291
|
mirror_u: bool = False,
|
|
1319
1292
|
mirror_v: bool = False,
|
|
1320
1293
|
mirror_udim: bool = False,
|
|
1321
1294
|
use_shapekey: bool = False,
|
|
1322
|
-
) ->
|
|
1295
|
+
) -> dict[str, typing.Any]:
|
|
1323
1296
|
"""Mirror.Mirrors geometry along an axis. The resulting geometry is welded on using
|
|
1324
1297
|
merge_dist. Pairs of original/mirrored vertices are welded using the merge_dist
|
|
1325
1298
|
parameter (which defines the minimum distance for welding to happen).
|
|
@@ -1327,13 +1300,13 @@ def mirror(
|
|
|
1327
1300
|
:param bm: The bmesh to operate on.
|
|
1328
1301
|
:type bm: bmesh.types.BMesh
|
|
1329
1302
|
:param geom: input geometry
|
|
1330
|
-
:type geom:
|
|
1303
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
1331
1304
|
:param matrix: matrix defining the mirror transformation
|
|
1332
|
-
:type matrix: typing.
|
|
1305
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
1333
1306
|
:param merge_dist: maximum distance for merging. does no merging if 0.
|
|
1334
1307
|
:type merge_dist: float
|
|
1335
1308
|
:param axis: the axis to use.
|
|
1336
|
-
:type axis:
|
|
1309
|
+
:type axis: str | int
|
|
1337
1310
|
:param mirror_u: mirror UVs across the u axis
|
|
1338
1311
|
:type mirror_u: bool
|
|
1339
1312
|
:param mirror_v: mirror UVs across the v axis
|
|
@@ -1345,7 +1318,7 @@ def mirror(
|
|
|
1345
1318
|
:return: geom: output geometry, mirrored
|
|
1346
1319
|
|
|
1347
1320
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1348
|
-
:rtype:
|
|
1321
|
+
:rtype: dict[str, typing.Any]
|
|
1349
1322
|
"""
|
|
1350
1323
|
|
|
1351
1324
|
...
|
|
@@ -1368,37 +1341,37 @@ def object_load_bmesh(
|
|
|
1368
1341
|
|
|
1369
1342
|
def offset_edgeloops(
|
|
1370
1343
|
bm: bmesh.types.BMesh,
|
|
1371
|
-
edges:
|
|
1344
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
1372
1345
|
use_cap_endpoint: bool = False,
|
|
1373
|
-
) ->
|
|
1346
|
+
) -> dict[str, typing.Any]:
|
|
1374
1347
|
"""Edge-loop Offset.Creates edge loops based on simple edge-outset method.
|
|
1375
1348
|
|
|
1376
1349
|
:param bm: The bmesh to operate on.
|
|
1377
1350
|
:type bm: bmesh.types.BMesh
|
|
1378
1351
|
:param edges: input edges
|
|
1379
|
-
:type edges:
|
|
1352
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
1380
1353
|
:param use_cap_endpoint: extend loop around end-points
|
|
1381
1354
|
:type use_cap_endpoint: bool
|
|
1382
1355
|
:return: edges: output edges
|
|
1383
1356
|
|
|
1384
1357
|
type list of (`bmesh.types.BMEdge`)
|
|
1385
|
-
:rtype:
|
|
1358
|
+
:rtype: dict[str, typing.Any]
|
|
1386
1359
|
"""
|
|
1387
1360
|
|
|
1388
1361
|
...
|
|
1389
1362
|
|
|
1390
1363
|
def planar_faces(
|
|
1391
1364
|
bm: bmesh.types.BMesh,
|
|
1392
|
-
faces:
|
|
1365
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
1393
1366
|
iterations: int = 0,
|
|
1394
1367
|
factor: float = 0,
|
|
1395
|
-
) ->
|
|
1368
|
+
) -> dict[str, typing.Any]:
|
|
1396
1369
|
"""Planar Faces.Iteratively flatten faces.
|
|
1397
1370
|
|
|
1398
1371
|
:param bm: The bmesh to operate on.
|
|
1399
1372
|
:type bm: bmesh.types.BMesh
|
|
1400
1373
|
:param faces: input geometry.
|
|
1401
|
-
:type faces:
|
|
1374
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1402
1375
|
:param iterations: Number of times to flatten faces (for when connected faces are used)
|
|
1403
1376
|
:type iterations: int
|
|
1404
1377
|
:param factor: Influence for making planar each iteration
|
|
@@ -1406,31 +1379,31 @@ def planar_faces(
|
|
|
1406
1379
|
:return: geom: output slot, computed boundary geometry.
|
|
1407
1380
|
|
|
1408
1381
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1409
|
-
:rtype:
|
|
1382
|
+
:rtype: dict[str, typing.Any]
|
|
1410
1383
|
"""
|
|
1411
1384
|
|
|
1412
1385
|
...
|
|
1413
1386
|
|
|
1414
1387
|
def pointmerge(
|
|
1415
1388
|
bm: bmesh.types.BMesh,
|
|
1416
|
-
verts:
|
|
1417
|
-
merge_co: typing.
|
|
1389
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1390
|
+
merge_co: typing.Sequence[float] | mathutils.Vector = None(),
|
|
1418
1391
|
):
|
|
1419
1392
|
"""Point Merge.Merge verts together at a point.
|
|
1420
1393
|
|
|
1421
1394
|
:param bm: The bmesh to operate on.
|
|
1422
1395
|
:type bm: bmesh.types.BMesh
|
|
1423
1396
|
:param verts: input vertices (all verts will be merged into the first).
|
|
1424
|
-
:type verts:
|
|
1397
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1425
1398
|
:param merge_co: Position to merge at.
|
|
1426
|
-
:type merge_co: typing.
|
|
1399
|
+
:type merge_co: typing.Sequence[float] | mathutils.Vector
|
|
1427
1400
|
"""
|
|
1428
1401
|
|
|
1429
1402
|
...
|
|
1430
1403
|
|
|
1431
1404
|
def pointmerge_facedata(
|
|
1432
1405
|
bm: bmesh.types.BMesh,
|
|
1433
|
-
verts:
|
|
1406
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1434
1407
|
vert_snap: bmesh.types.BMVert = None,
|
|
1435
1408
|
):
|
|
1436
1409
|
"""Face-Data Point Merge.Merge uv/vcols at a specific vertex.
|
|
@@ -1438,7 +1411,7 @@ def pointmerge_facedata(
|
|
|
1438
1411
|
:param bm: The bmesh to operate on.
|
|
1439
1412
|
:type bm: bmesh.types.BMesh
|
|
1440
1413
|
:param verts: input vertices
|
|
1441
|
-
:type verts:
|
|
1414
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1442
1415
|
:param vert_snap: snap vertex
|
|
1443
1416
|
:type vert_snap: bmesh.types.BMVert
|
|
1444
1417
|
"""
|
|
@@ -1447,21 +1420,21 @@ def pointmerge_facedata(
|
|
|
1447
1420
|
|
|
1448
1421
|
def poke(
|
|
1449
1422
|
bm: bmesh.types.BMesh,
|
|
1450
|
-
faces:
|
|
1423
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
1451
1424
|
offset: float = 0,
|
|
1452
|
-
center_mode:
|
|
1425
|
+
center_mode: str | int = "MEAN_WEIGHTED",
|
|
1453
1426
|
use_relative_offset: bool = False,
|
|
1454
|
-
) ->
|
|
1427
|
+
) -> dict[str, typing.Any]:
|
|
1455
1428
|
"""Pokes a face.Splits a face into a triangle fan.
|
|
1456
1429
|
|
|
1457
1430
|
:param bm: The bmesh to operate on.
|
|
1458
1431
|
:type bm: bmesh.types.BMesh
|
|
1459
1432
|
:param faces: input faces
|
|
1460
|
-
:type faces:
|
|
1433
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1461
1434
|
:param offset: center vertex offset along normal
|
|
1462
1435
|
:type offset: float
|
|
1463
1436
|
:param center_mode: calculation mode for center vertex
|
|
1464
|
-
:type center_mode:
|
|
1437
|
+
:type center_mode: str | int
|
|
1465
1438
|
:param use_relative_offset: apply offset
|
|
1466
1439
|
:type use_relative_offset: bool
|
|
1467
1440
|
:return: verts: output verts
|
|
@@ -1471,35 +1444,31 @@ def poke(
|
|
|
1471
1444
|
faces: output faces
|
|
1472
1445
|
|
|
1473
1446
|
type list of (`bmesh.types.BMFace`)
|
|
1474
|
-
:rtype:
|
|
1447
|
+
:rtype: dict[str, typing.Any]
|
|
1475
1448
|
"""
|
|
1476
1449
|
|
|
1477
1450
|
...
|
|
1478
1451
|
|
|
1479
|
-
def recalc_face_normals(
|
|
1480
|
-
bm: bmesh.types.BMesh, faces: typing.List[bmesh.types.BMFace] = []
|
|
1481
|
-
):
|
|
1452
|
+
def recalc_face_normals(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
|
|
1482
1453
|
"""Right-Hand Faces.Computes an "outside" normal for the specified input faces.
|
|
1483
1454
|
|
|
1484
1455
|
:param bm: The bmesh to operate on.
|
|
1485
1456
|
:type bm: bmesh.types.BMesh
|
|
1486
1457
|
:param faces: input faces
|
|
1487
|
-
:type faces:
|
|
1458
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1488
1459
|
"""
|
|
1489
1460
|
|
|
1490
1461
|
...
|
|
1491
1462
|
|
|
1492
1463
|
def region_extend(
|
|
1493
1464
|
bm: bmesh.types.BMesh,
|
|
1494
|
-
geom:
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
typing.List[bmesh.types.BMFace],
|
|
1498
|
-
] = [],
|
|
1465
|
+
geom: list[bmesh.types.BMVert]
|
|
1466
|
+
| list[bmesh.types.BMEdge]
|
|
1467
|
+
| list[bmesh.types.BMFace] = [],
|
|
1499
1468
|
use_contract: bool = False,
|
|
1500
1469
|
use_faces: bool = False,
|
|
1501
1470
|
use_face_step: bool = False,
|
|
1502
|
-
) ->
|
|
1471
|
+
) -> dict[str, typing.Any]:
|
|
1503
1472
|
"""Region Extend.used to implement the select more/less tools.
|
|
1504
1473
|
this puts some geometry surrounding regions of
|
|
1505
1474
|
geometry in geom into geom.out.if use_faces is 0 then geom.out spits out verts and edges,
|
|
@@ -1508,7 +1477,7 @@ def region_extend(
|
|
|
1508
1477
|
:param bm: The bmesh to operate on.
|
|
1509
1478
|
:type bm: bmesh.types.BMesh
|
|
1510
1479
|
:param geom: input geometry
|
|
1511
|
-
:type geom:
|
|
1480
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
1512
1481
|
:param use_contract: find boundary inside the regions, not outside.
|
|
1513
1482
|
:type use_contract: bool
|
|
1514
1483
|
:param use_faces: extend from faces instead of edges
|
|
@@ -1518,13 +1487,13 @@ def region_extend(
|
|
|
1518
1487
|
:return: geom: output slot, computed boundary geometry.
|
|
1519
1488
|
|
|
1520
1489
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1521
|
-
:rtype:
|
|
1490
|
+
:rtype: dict[str, typing.Any]
|
|
1522
1491
|
"""
|
|
1523
1492
|
|
|
1524
1493
|
...
|
|
1525
1494
|
|
|
1526
1495
|
def remove_doubles(
|
|
1527
|
-
bm: bmesh.types.BMesh, verts:
|
|
1496
|
+
bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = [], dist: float = 0
|
|
1528
1497
|
):
|
|
1529
1498
|
"""Remove Doubles.Finds groups of vertices closer than dist and merges them together,
|
|
1530
1499
|
using the weld verts BMOP.
|
|
@@ -1532,7 +1501,7 @@ def remove_doubles(
|
|
|
1532
1501
|
:param bm: The bmesh to operate on.
|
|
1533
1502
|
:type bm: bmesh.types.BMesh
|
|
1534
1503
|
:param verts: input verts
|
|
1535
|
-
:type verts:
|
|
1504
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1536
1505
|
:param dist: minimum distance
|
|
1537
1506
|
:type dist: float
|
|
1538
1507
|
"""
|
|
@@ -1540,16 +1509,14 @@ def remove_doubles(
|
|
|
1540
1509
|
...
|
|
1541
1510
|
|
|
1542
1511
|
def reverse_colors(
|
|
1543
|
-
bm: bmesh.types.BMesh,
|
|
1544
|
-
faces: typing.List[bmesh.types.BMFace] = [],
|
|
1545
|
-
color_index: int = 0,
|
|
1512
|
+
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], color_index: int = 0
|
|
1546
1513
|
):
|
|
1547
1514
|
"""Color ReverseReverse the loop colors.
|
|
1548
1515
|
|
|
1549
1516
|
:param bm: The bmesh to operate on.
|
|
1550
1517
|
:type bm: bmesh.types.BMesh
|
|
1551
1518
|
:param faces: input faces
|
|
1552
|
-
:type faces:
|
|
1519
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1553
1520
|
:param color_index: index into color attribute list
|
|
1554
1521
|
:type color_index: int
|
|
1555
1522
|
"""
|
|
@@ -1558,7 +1525,7 @@ def reverse_colors(
|
|
|
1558
1525
|
|
|
1559
1526
|
def reverse_faces(
|
|
1560
1527
|
bm: bmesh.types.BMesh,
|
|
1561
|
-
faces:
|
|
1528
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
1562
1529
|
flip_multires: bool = False,
|
|
1563
1530
|
):
|
|
1564
1531
|
"""Reverse Faces.Reverses the winding (vertex order) of faces.
|
|
@@ -1567,30 +1534,30 @@ def reverse_faces(
|
|
|
1567
1534
|
:param bm: The bmesh to operate on.
|
|
1568
1535
|
:type bm: bmesh.types.BMesh
|
|
1569
1536
|
:param faces: input faces
|
|
1570
|
-
:type faces:
|
|
1537
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1571
1538
|
:param flip_multires: maintain multi-res offset
|
|
1572
1539
|
:type flip_multires: bool
|
|
1573
1540
|
"""
|
|
1574
1541
|
|
|
1575
1542
|
...
|
|
1576
1543
|
|
|
1577
|
-
def reverse_uvs(bm: bmesh.types.BMesh, faces:
|
|
1544
|
+
def reverse_uvs(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
|
|
1578
1545
|
"""UV Reverse.Reverse the UVs
|
|
1579
1546
|
|
|
1580
1547
|
:param bm: The bmesh to operate on.
|
|
1581
1548
|
:type bm: bmesh.types.BMesh
|
|
1582
1549
|
:param faces: input faces
|
|
1583
|
-
:type faces:
|
|
1550
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1584
1551
|
"""
|
|
1585
1552
|
|
|
1586
1553
|
...
|
|
1587
1554
|
|
|
1588
1555
|
def rotate(
|
|
1589
1556
|
bm: bmesh.types.BMesh,
|
|
1590
|
-
cent: typing.
|
|
1591
|
-
matrix: typing.
|
|
1592
|
-
verts:
|
|
1593
|
-
space: typing.
|
|
1557
|
+
cent: typing.Sequence[float] | mathutils.Vector = None(),
|
|
1558
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
1559
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1560
|
+
space: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
1594
1561
|
use_shapekey: bool = False,
|
|
1595
1562
|
):
|
|
1596
1563
|
"""Rotate.Rotate vertices around a center, using a 3x3 rotation matrix.
|
|
@@ -1598,13 +1565,13 @@ def rotate(
|
|
|
1598
1565
|
:param bm: The bmesh to operate on.
|
|
1599
1566
|
:type bm: bmesh.types.BMesh
|
|
1600
1567
|
:param cent: center of rotation
|
|
1601
|
-
:type cent: typing.
|
|
1568
|
+
:type cent: typing.Sequence[float] | mathutils.Vector
|
|
1602
1569
|
:param matrix: matrix defining rotation
|
|
1603
|
-
:type matrix: typing.
|
|
1570
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
1604
1571
|
:param verts: input vertices
|
|
1605
|
-
:type verts:
|
|
1572
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1606
1573
|
:param space: matrix to define the space (typically object matrix)
|
|
1607
|
-
:type space: typing.
|
|
1574
|
+
:type space: typing.Sequence[float] | mathutils.Matrix
|
|
1608
1575
|
:param use_shapekey: Transform shape keys too.
|
|
1609
1576
|
:type use_shapekey: bool
|
|
1610
1577
|
"""
|
|
@@ -1613,7 +1580,7 @@ def rotate(
|
|
|
1613
1580
|
|
|
1614
1581
|
def rotate_colors(
|
|
1615
1582
|
bm: bmesh.types.BMesh,
|
|
1616
|
-
faces:
|
|
1583
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
1617
1584
|
use_ccw: bool = False,
|
|
1618
1585
|
color_index: int = 0,
|
|
1619
1586
|
):
|
|
@@ -1622,7 +1589,7 @@ def rotate_colors(
|
|
|
1622
1589
|
:param bm: The bmesh to operate on.
|
|
1623
1590
|
:type bm: bmesh.types.BMesh
|
|
1624
1591
|
:param faces: input faces
|
|
1625
|
-
:type faces:
|
|
1592
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1626
1593
|
:param use_ccw: rotate counter-clockwise if true, otherwise clockwise
|
|
1627
1594
|
:type use_ccw: bool
|
|
1628
1595
|
:param color_index: index into color attribute list
|
|
@@ -1632,38 +1599,34 @@ def rotate_colors(
|
|
|
1632
1599
|
...
|
|
1633
1600
|
|
|
1634
1601
|
def rotate_edges(
|
|
1635
|
-
bm: bmesh.types.BMesh,
|
|
1636
|
-
|
|
1637
|
-
use_ccw: bool = False,
|
|
1638
|
-
) -> typing.Dict[str, typing.Any]:
|
|
1602
|
+
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], use_ccw: bool = False
|
|
1603
|
+
) -> dict[str, typing.Any]:
|
|
1639
1604
|
"""Edge Rotate.Rotates edges topologically. Also known as "spin edge" to some people.
|
|
1640
1605
|
Simple example: [/] becomes [|] then [].
|
|
1641
1606
|
|
|
1642
1607
|
:param bm: The bmesh to operate on.
|
|
1643
1608
|
:type bm: bmesh.types.BMesh
|
|
1644
1609
|
:param edges: input edges
|
|
1645
|
-
:type edges:
|
|
1610
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
1646
1611
|
:param use_ccw: rotate edge counter-clockwise if true, otherwise clockwise
|
|
1647
1612
|
:type use_ccw: bool
|
|
1648
1613
|
:return: edges: newly spun edges
|
|
1649
1614
|
|
|
1650
1615
|
type list of (`bmesh.types.BMEdge`)
|
|
1651
|
-
:rtype:
|
|
1616
|
+
:rtype: dict[str, typing.Any]
|
|
1652
1617
|
"""
|
|
1653
1618
|
|
|
1654
1619
|
...
|
|
1655
1620
|
|
|
1656
1621
|
def rotate_uvs(
|
|
1657
|
-
bm: bmesh.types.BMesh,
|
|
1658
|
-
faces: typing.List[bmesh.types.BMFace] = [],
|
|
1659
|
-
use_ccw: bool = False,
|
|
1622
|
+
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], use_ccw: bool = False
|
|
1660
1623
|
):
|
|
1661
1624
|
"""UV Rotation.Cycle the loop UVs
|
|
1662
1625
|
|
|
1663
1626
|
:param bm: The bmesh to operate on.
|
|
1664
1627
|
:type bm: bmesh.types.BMesh
|
|
1665
1628
|
:param faces: input faces
|
|
1666
|
-
:type faces:
|
|
1629
|
+
:type faces: list[bmesh.types.BMFace]
|
|
1667
1630
|
:param use_ccw: rotate counter-clockwise if true, otherwise clockwise
|
|
1668
1631
|
:type use_ccw: bool
|
|
1669
1632
|
"""
|
|
@@ -1672,9 +1635,9 @@ def rotate_uvs(
|
|
|
1672
1635
|
|
|
1673
1636
|
def scale(
|
|
1674
1637
|
bm: bmesh.types.BMesh,
|
|
1675
|
-
vec: typing.
|
|
1676
|
-
space: typing.
|
|
1677
|
-
verts:
|
|
1638
|
+
vec: typing.Sequence[float] | mathutils.Vector = None(),
|
|
1639
|
+
space: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
1640
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1678
1641
|
use_shapekey: bool = False,
|
|
1679
1642
|
):
|
|
1680
1643
|
"""Scale.Scales vertices by an offset.
|
|
@@ -1682,11 +1645,11 @@ def scale(
|
|
|
1682
1645
|
:param bm: The bmesh to operate on.
|
|
1683
1646
|
:type bm: bmesh.types.BMesh
|
|
1684
1647
|
:param vec: scale factor
|
|
1685
|
-
:type vec: typing.
|
|
1648
|
+
:type vec: typing.Sequence[float] | mathutils.Vector
|
|
1686
1649
|
:param space: matrix to define the space (typically object matrix)
|
|
1687
|
-
:type space: typing.
|
|
1650
|
+
:type space: typing.Sequence[float] | mathutils.Matrix
|
|
1688
1651
|
:param verts: input vertices
|
|
1689
|
-
:type verts:
|
|
1652
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1690
1653
|
:param use_shapekey: Transform shape keys too.
|
|
1691
1654
|
:type use_shapekey: bool
|
|
1692
1655
|
"""
|
|
@@ -1695,7 +1658,7 @@ def scale(
|
|
|
1695
1658
|
|
|
1696
1659
|
def smooth_laplacian_vert(
|
|
1697
1660
|
bm: bmesh.types.BMesh,
|
|
1698
|
-
verts:
|
|
1661
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1699
1662
|
lambda_factor: float = 0,
|
|
1700
1663
|
lambda_border: float = 0,
|
|
1701
1664
|
use_x: bool = False,
|
|
@@ -1709,7 +1672,7 @@ def smooth_laplacian_vert(
|
|
|
1709
1672
|
:param bm: The bmesh to operate on.
|
|
1710
1673
|
:type bm: bmesh.types.BMesh
|
|
1711
1674
|
:param verts: input vertices
|
|
1712
|
-
:type verts:
|
|
1675
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1713
1676
|
:param lambda_factor: lambda param
|
|
1714
1677
|
:type lambda_factor: float
|
|
1715
1678
|
:param lambda_border: lambda param in border
|
|
@@ -1728,7 +1691,7 @@ def smooth_laplacian_vert(
|
|
|
1728
1691
|
|
|
1729
1692
|
def smooth_vert(
|
|
1730
1693
|
bm: bmesh.types.BMesh,
|
|
1731
|
-
verts:
|
|
1694
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1732
1695
|
factor: float = 0,
|
|
1733
1696
|
mirror_clip_x: bool = False,
|
|
1734
1697
|
mirror_clip_y: bool = False,
|
|
@@ -1743,7 +1706,7 @@ def smooth_vert(
|
|
|
1743
1706
|
:param bm: The bmesh to operate on.
|
|
1744
1707
|
:type bm: bmesh.types.BMesh
|
|
1745
1708
|
:param verts: input vertices
|
|
1746
|
-
:type verts:
|
|
1709
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1747
1710
|
:param factor: smoothing factor
|
|
1748
1711
|
:type factor: float
|
|
1749
1712
|
:param mirror_clip_x: set vertices close to the x axis before the operation to 0
|
|
@@ -1766,63 +1729,59 @@ def smooth_vert(
|
|
|
1766
1729
|
|
|
1767
1730
|
def solidify(
|
|
1768
1731
|
bm: bmesh.types.BMesh,
|
|
1769
|
-
geom:
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
typing.List[bmesh.types.BMFace],
|
|
1773
|
-
] = [],
|
|
1732
|
+
geom: list[bmesh.types.BMVert]
|
|
1733
|
+
| list[bmesh.types.BMEdge]
|
|
1734
|
+
| list[bmesh.types.BMFace] = [],
|
|
1774
1735
|
thickness: float = 0,
|
|
1775
|
-
) ->
|
|
1736
|
+
) -> dict[str, typing.Any]:
|
|
1776
1737
|
"""Solidify.Turns a mesh into a shell with thickness
|
|
1777
1738
|
|
|
1778
1739
|
:param bm: The bmesh to operate on.
|
|
1779
1740
|
:type bm: bmesh.types.BMesh
|
|
1780
1741
|
:param geom: input geometry
|
|
1781
|
-
:type geom:
|
|
1742
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
1782
1743
|
:param thickness: thickness
|
|
1783
1744
|
:type thickness: float
|
|
1784
1745
|
:return: geom:
|
|
1785
1746
|
|
|
1786
1747
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1787
|
-
:rtype:
|
|
1748
|
+
:rtype: dict[str, typing.Any]
|
|
1788
1749
|
"""
|
|
1789
1750
|
|
|
1790
1751
|
...
|
|
1791
1752
|
|
|
1792
1753
|
def spin(
|
|
1793
1754
|
bm: bmesh.types.BMesh,
|
|
1794
|
-
geom:
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
] =
|
|
1799
|
-
|
|
1800
|
-
axis: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
|
|
1801
|
-
dvec: typing.Union[typing.Sequence[float], mathutils.Vector] = None(),
|
|
1755
|
+
geom: list[bmesh.types.BMVert]
|
|
1756
|
+
| list[bmesh.types.BMEdge]
|
|
1757
|
+
| list[bmesh.types.BMFace] = [],
|
|
1758
|
+
cent: typing.Sequence[float] | mathutils.Vector = None(),
|
|
1759
|
+
axis: typing.Sequence[float] | mathutils.Vector = None(),
|
|
1760
|
+
dvec: typing.Sequence[float] | mathutils.Vector = None(),
|
|
1802
1761
|
angle: float = 0,
|
|
1803
|
-
space: typing.
|
|
1762
|
+
space: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
1804
1763
|
steps: int = 0,
|
|
1805
1764
|
use_merge: bool = False,
|
|
1806
1765
|
use_normal_flip: bool = False,
|
|
1807
1766
|
use_duplicate: bool = False,
|
|
1808
|
-
) ->
|
|
1767
|
+
) -> dict[str, typing.Any]:
|
|
1809
1768
|
"""Spin.Extrude or duplicate geometry a number of times,
|
|
1810
1769
|
rotating and possibly translating after each step
|
|
1811
1770
|
|
|
1812
1771
|
:param bm: The bmesh to operate on.
|
|
1813
1772
|
:type bm: bmesh.types.BMesh
|
|
1814
1773
|
:param geom: input geometry
|
|
1815
|
-
:type geom:
|
|
1774
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
1816
1775
|
:param cent: rotation center
|
|
1817
|
-
:type cent: typing.
|
|
1776
|
+
:type cent: typing.Sequence[float] | mathutils.Vector
|
|
1818
1777
|
:param axis: rotation axis
|
|
1819
|
-
:type axis: typing.
|
|
1778
|
+
:type axis: typing.Sequence[float] | mathutils.Vector
|
|
1820
1779
|
:param dvec: translation delta per step
|
|
1821
|
-
:type dvec: typing.
|
|
1780
|
+
:type dvec: typing.Sequence[float] | mathutils.Vector
|
|
1822
1781
|
:param angle: total rotation angle (radians)
|
|
1823
1782
|
:type angle: float
|
|
1824
1783
|
:param space: matrix to define the space (typically object matrix)
|
|
1825
|
-
:type space: typing.
|
|
1784
|
+
:type space: typing.Sequence[float] | mathutils.Matrix
|
|
1826
1785
|
:param steps: number of steps
|
|
1827
1786
|
:type steps: int
|
|
1828
1787
|
:param use_merge: Merge first/last when the angle is a full revolution.
|
|
@@ -1834,28 +1793,26 @@ def spin(
|
|
|
1834
1793
|
:return: geom_last: result of last step
|
|
1835
1794
|
|
|
1836
1795
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1837
|
-
:rtype:
|
|
1796
|
+
:rtype: dict[str, typing.Any]
|
|
1838
1797
|
"""
|
|
1839
1798
|
|
|
1840
1799
|
...
|
|
1841
1800
|
|
|
1842
1801
|
def split(
|
|
1843
1802
|
bm: bmesh.types.BMesh,
|
|
1844
|
-
geom:
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
typing.List[bmesh.types.BMFace],
|
|
1848
|
-
] = [],
|
|
1803
|
+
geom: list[bmesh.types.BMVert]
|
|
1804
|
+
| list[bmesh.types.BMEdge]
|
|
1805
|
+
| list[bmesh.types.BMFace] = [],
|
|
1849
1806
|
dest: bmesh.types.BMesh = None,
|
|
1850
1807
|
use_only_faces: bool = False,
|
|
1851
|
-
) ->
|
|
1808
|
+
) -> dict[str, typing.Any]:
|
|
1852
1809
|
"""Split Off Geometry.Disconnect geometry from adjacent edges and faces,
|
|
1853
1810
|
optionally into a destination mesh.
|
|
1854
1811
|
|
|
1855
1812
|
:param bm: The bmesh to operate on.
|
|
1856
1813
|
:type bm: bmesh.types.BMesh
|
|
1857
1814
|
:param geom: input geometry
|
|
1858
|
-
:type geom:
|
|
1815
|
+
:type geom: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
1859
1816
|
:param dest: destination bmesh, if None will use current one
|
|
1860
1817
|
:type dest: bmesh.types.BMesh
|
|
1861
1818
|
:param use_only_faces: when enabled. don't duplicate loose verts/edges
|
|
@@ -1871,97 +1828,97 @@ def split(
|
|
|
1871
1828
|
isovert_map:
|
|
1872
1829
|
|
|
1873
1830
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1874
|
-
:rtype:
|
|
1831
|
+
:rtype: dict[str, typing.Any]
|
|
1875
1832
|
"""
|
|
1876
1833
|
|
|
1877
1834
|
...
|
|
1878
1835
|
|
|
1879
1836
|
def split_edges(
|
|
1880
1837
|
bm: bmesh.types.BMesh,
|
|
1881
|
-
edges:
|
|
1882
|
-
verts:
|
|
1838
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
1839
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1883
1840
|
use_verts: bool = False,
|
|
1884
|
-
) ->
|
|
1841
|
+
) -> dict[str, typing.Any]:
|
|
1885
1842
|
"""Edge Split.Disconnects faces along input edges.
|
|
1886
1843
|
|
|
1887
1844
|
:param bm: The bmesh to operate on.
|
|
1888
1845
|
:type bm: bmesh.types.BMesh
|
|
1889
1846
|
:param edges: input edges
|
|
1890
|
-
:type edges:
|
|
1847
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
1891
1848
|
:param verts: optional tag verts, use to have greater control of splits
|
|
1892
|
-
:type verts:
|
|
1849
|
+
:type verts: list[bmesh.types.BMVert]
|
|
1893
1850
|
:param use_verts: use 'verts' for splitting, else just find verts to split from edges
|
|
1894
1851
|
:type use_verts: bool
|
|
1895
1852
|
:return: edges: old output disconnected edges
|
|
1896
1853
|
|
|
1897
1854
|
type list of (`bmesh.types.BMEdge`)
|
|
1898
|
-
:rtype:
|
|
1855
|
+
:rtype: dict[str, typing.Any]
|
|
1899
1856
|
"""
|
|
1900
1857
|
|
|
1901
1858
|
...
|
|
1902
1859
|
|
|
1903
1860
|
def subdivide_edgering(
|
|
1904
1861
|
bm: bmesh.types.BMesh,
|
|
1905
|
-
edges:
|
|
1906
|
-
interp_mode:
|
|
1862
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
1863
|
+
interp_mode: str | int = "LINEAR",
|
|
1907
1864
|
smooth: float = 0,
|
|
1908
1865
|
cuts: int = 0,
|
|
1909
|
-
profile_shape:
|
|
1866
|
+
profile_shape: str | int = "SMOOTH",
|
|
1910
1867
|
profile_shape_factor: float = 0,
|
|
1911
|
-
) ->
|
|
1868
|
+
) -> dict[str, typing.Any]:
|
|
1912
1869
|
"""Subdivide Edge-Ring.Take an edge-ring, and subdivide with interpolation options.
|
|
1913
1870
|
|
|
1914
1871
|
:param bm: The bmesh to operate on.
|
|
1915
1872
|
:type bm: bmesh.types.BMesh
|
|
1916
1873
|
:param edges: input vertices
|
|
1917
|
-
:type edges:
|
|
1874
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
1918
1875
|
:param interp_mode: interpolation method
|
|
1919
|
-
:type interp_mode:
|
|
1876
|
+
:type interp_mode: str | int
|
|
1920
1877
|
:param smooth: smoothness factor
|
|
1921
1878
|
:type smooth: float
|
|
1922
1879
|
:param cuts: number of cuts
|
|
1923
1880
|
:type cuts: int
|
|
1924
1881
|
:param profile_shape: profile shape type
|
|
1925
|
-
:type profile_shape:
|
|
1882
|
+
:type profile_shape: str | int
|
|
1926
1883
|
:param profile_shape_factor: how much intermediary new edges are shrunk/expanded
|
|
1927
1884
|
:type profile_shape_factor: float
|
|
1928
1885
|
:return: faces: output faces
|
|
1929
1886
|
|
|
1930
1887
|
type list of (`bmesh.types.BMFace`)
|
|
1931
|
-
:rtype:
|
|
1888
|
+
:rtype: dict[str, typing.Any]
|
|
1932
1889
|
"""
|
|
1933
1890
|
|
|
1934
1891
|
...
|
|
1935
1892
|
|
|
1936
1893
|
def subdivide_edges(
|
|
1937
1894
|
bm: bmesh.types.BMesh,
|
|
1938
|
-
edges:
|
|
1895
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
1939
1896
|
smooth: float = 0,
|
|
1940
|
-
smooth_falloff:
|
|
1897
|
+
smooth_falloff: str | int = "SMOOTH",
|
|
1941
1898
|
fractal: float = 0,
|
|
1942
1899
|
along_normal: float = 0,
|
|
1943
1900
|
cuts: int = 0,
|
|
1944
1901
|
seed: int = 0,
|
|
1945
1902
|
custom_patterns={},
|
|
1946
1903
|
edge_percents={},
|
|
1947
|
-
quad_corner_type:
|
|
1904
|
+
quad_corner_type: str | int = "STRAIGHT_CUT",
|
|
1948
1905
|
use_grid_fill: bool = False,
|
|
1949
1906
|
use_single_edge: bool = False,
|
|
1950
1907
|
use_only_quads: bool = False,
|
|
1951
1908
|
use_sphere: bool = False,
|
|
1952
1909
|
use_smooth_even: bool = False,
|
|
1953
|
-
) ->
|
|
1910
|
+
) -> dict[str, typing.Any]:
|
|
1954
1911
|
"""Subdivide Edges.Advanced operator for subdividing edges
|
|
1955
1912
|
with options for face patterns, smoothing and randomization.
|
|
1956
1913
|
|
|
1957
1914
|
:param bm: The bmesh to operate on.
|
|
1958
1915
|
:type bm: bmesh.types.BMesh
|
|
1959
1916
|
:param edges: input edges
|
|
1960
|
-
:type edges:
|
|
1917
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
1961
1918
|
:param smooth: smoothness factor
|
|
1962
1919
|
:type smooth: float
|
|
1963
1920
|
:param smooth_falloff: smooth falloff type
|
|
1964
|
-
:type smooth_falloff:
|
|
1921
|
+
:type smooth_falloff: str | int
|
|
1965
1922
|
:param fractal: fractal randomness factor
|
|
1966
1923
|
:type fractal: float
|
|
1967
1924
|
:param along_normal: apply fractal displacement along normal only
|
|
@@ -1973,7 +1930,7 @@ def subdivide_edges(
|
|
|
1973
1930
|
:param custom_patterns: uses custom pointers
|
|
1974
1931
|
:param edge_percents: Undocumented.
|
|
1975
1932
|
:param quad_corner_type: quad corner type
|
|
1976
|
-
:type quad_corner_type:
|
|
1933
|
+
:type quad_corner_type: str | int
|
|
1977
1934
|
:param use_grid_fill: fill in fully-selected faces with a grid
|
|
1978
1935
|
:type use_grid_fill: bool
|
|
1979
1936
|
:param use_single_edge: tessellate the case of one edge selected in a quad or triangle
|
|
@@ -1995,22 +1952,20 @@ def subdivide_edges(
|
|
|
1995
1952
|
geom: contains all output geometry
|
|
1996
1953
|
|
|
1997
1954
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1998
|
-
:rtype:
|
|
1955
|
+
:rtype: dict[str, typing.Any]
|
|
1999
1956
|
"""
|
|
2000
1957
|
|
|
2001
1958
|
...
|
|
2002
1959
|
|
|
2003
1960
|
def symmetrize(
|
|
2004
1961
|
bm: bmesh.types.BMesh,
|
|
2005
|
-
input:
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
] = [],
|
|
2010
|
-
direction: typing.Union[str, int] = "-X",
|
|
1962
|
+
input: list[bmesh.types.BMVert]
|
|
1963
|
+
| list[bmesh.types.BMEdge]
|
|
1964
|
+
| list[bmesh.types.BMFace] = [],
|
|
1965
|
+
direction: str | int = "-X",
|
|
2011
1966
|
dist: float = 0,
|
|
2012
1967
|
use_shapekey: bool = False,
|
|
2013
|
-
) ->
|
|
1968
|
+
) -> dict[str, typing.Any]:
|
|
2014
1969
|
"""Symmetrize.Makes the mesh elements in the "input" slot symmetrical. Unlike
|
|
2015
1970
|
normal mirroring, it only copies in one direction, as specified by
|
|
2016
1971
|
the "direction" slot. The edges and faces that cross the plane of
|
|
@@ -2019,9 +1974,9 @@ def symmetrize(
|
|
|
2019
1974
|
:param bm: The bmesh to operate on.
|
|
2020
1975
|
:type bm: bmesh.types.BMesh
|
|
2021
1976
|
:param input: input geometry
|
|
2022
|
-
:type input:
|
|
1977
|
+
:type input: list[bmesh.types.BMVert] | list[bmesh.types.BMEdge] | list[bmesh.types.BMFace]
|
|
2023
1978
|
:param direction: axis to use
|
|
2024
|
-
:type direction:
|
|
1979
|
+
:type direction: str | int
|
|
2025
1980
|
:param dist: minimum distance
|
|
2026
1981
|
:type dist: float
|
|
2027
1982
|
:param use_shapekey: Transform shape keys too.
|
|
@@ -2029,16 +1984,16 @@ def symmetrize(
|
|
|
2029
1984
|
:return: geom:
|
|
2030
1985
|
|
|
2031
1986
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
2032
|
-
:rtype:
|
|
1987
|
+
:rtype: dict[str, typing.Any]
|
|
2033
1988
|
"""
|
|
2034
1989
|
|
|
2035
1990
|
...
|
|
2036
1991
|
|
|
2037
1992
|
def transform(
|
|
2038
1993
|
bm: bmesh.types.BMesh,
|
|
2039
|
-
matrix: typing.
|
|
2040
|
-
space: typing.
|
|
2041
|
-
verts:
|
|
1994
|
+
matrix: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
1995
|
+
space: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
1996
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
2042
1997
|
use_shapekey: bool = False,
|
|
2043
1998
|
):
|
|
2044
1999
|
"""Transform.Transforms a set of vertices by a matrix. Multiplies
|
|
@@ -2047,11 +2002,11 @@ def transform(
|
|
|
2047
2002
|
:param bm: The bmesh to operate on.
|
|
2048
2003
|
:type bm: bmesh.types.BMesh
|
|
2049
2004
|
:param matrix: transform matrix
|
|
2050
|
-
:type matrix: typing.
|
|
2005
|
+
:type matrix: typing.Sequence[float] | mathutils.Matrix
|
|
2051
2006
|
:param space: matrix to define the space (typically object matrix)
|
|
2052
|
-
:type space: typing.
|
|
2007
|
+
:type space: typing.Sequence[float] | mathutils.Matrix
|
|
2053
2008
|
:param verts: input vertices
|
|
2054
|
-
:type verts:
|
|
2009
|
+
:type verts: list[bmesh.types.BMVert]
|
|
2055
2010
|
:param use_shapekey: Transform shape keys too.
|
|
2056
2011
|
:type use_shapekey: bool
|
|
2057
2012
|
"""
|
|
@@ -2060,9 +2015,9 @@ def transform(
|
|
|
2060
2015
|
|
|
2061
2016
|
def translate(
|
|
2062
2017
|
bm: bmesh.types.BMesh,
|
|
2063
|
-
vec: typing.
|
|
2064
|
-
space: typing.
|
|
2065
|
-
verts:
|
|
2018
|
+
vec: typing.Sequence[float] | mathutils.Vector = None(),
|
|
2019
|
+
space: typing.Sequence[float] | mathutils.Matrix = None(4),
|
|
2020
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
2066
2021
|
use_shapekey: bool = False,
|
|
2067
2022
|
):
|
|
2068
2023
|
"""Translate.Translate vertices by an offset.
|
|
@@ -2070,11 +2025,11 @@ def translate(
|
|
|
2070
2025
|
:param bm: The bmesh to operate on.
|
|
2071
2026
|
:type bm: bmesh.types.BMesh
|
|
2072
2027
|
:param vec: translation offset
|
|
2073
|
-
:type vec: typing.
|
|
2028
|
+
:type vec: typing.Sequence[float] | mathutils.Vector
|
|
2074
2029
|
:param space: matrix to define the space (typically object matrix)
|
|
2075
|
-
:type space: typing.
|
|
2030
|
+
:type space: typing.Sequence[float] | mathutils.Matrix
|
|
2076
2031
|
:param verts: input vertices
|
|
2077
|
-
:type verts:
|
|
2032
|
+
:type verts: list[bmesh.types.BMVert]
|
|
2078
2033
|
:param use_shapekey: Transform shape keys too.
|
|
2079
2034
|
:type use_shapekey: bool
|
|
2080
2035
|
"""
|
|
@@ -2085,9 +2040,9 @@ def triangle_fill(
|
|
|
2085
2040
|
bm: bmesh.types.BMesh,
|
|
2086
2041
|
use_beauty: bool = False,
|
|
2087
2042
|
use_dissolve: bool = False,
|
|
2088
|
-
edges:
|
|
2089
|
-
normal: typing.
|
|
2090
|
-
) ->
|
|
2043
|
+
edges: list[bmesh.types.BMEdge] = [],
|
|
2044
|
+
normal: typing.Sequence[float] | mathutils.Vector = None(),
|
|
2045
|
+
) -> dict[str, typing.Any]:
|
|
2091
2046
|
"""Triangle Fill.Fill edges with triangles
|
|
2092
2047
|
|
|
2093
2048
|
:param bm: The bmesh to operate on.
|
|
@@ -2097,33 +2052,33 @@ def triangle_fill(
|
|
|
2097
2052
|
:param use_dissolve: dissolve resulting faces
|
|
2098
2053
|
:type use_dissolve: bool
|
|
2099
2054
|
:param edges: input edges
|
|
2100
|
-
:type edges:
|
|
2055
|
+
:type edges: list[bmesh.types.BMEdge]
|
|
2101
2056
|
:param normal: optionally pass the fill normal to use
|
|
2102
|
-
:type normal: typing.
|
|
2057
|
+
:type normal: typing.Sequence[float] | mathutils.Vector
|
|
2103
2058
|
:return: geom: new faces and edges
|
|
2104
2059
|
|
|
2105
2060
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
2106
|
-
:rtype:
|
|
2061
|
+
:rtype: dict[str, typing.Any]
|
|
2107
2062
|
"""
|
|
2108
2063
|
|
|
2109
2064
|
...
|
|
2110
2065
|
|
|
2111
2066
|
def triangulate(
|
|
2112
2067
|
bm: bmesh.types.BMesh,
|
|
2113
|
-
faces:
|
|
2114
|
-
quad_method:
|
|
2115
|
-
ngon_method:
|
|
2116
|
-
) ->
|
|
2068
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
2069
|
+
quad_method: str | int = "BEAUTY",
|
|
2070
|
+
ngon_method: str | int = "BEAUTY",
|
|
2071
|
+
) -> dict[str, typing.Any]:
|
|
2117
2072
|
"""Triangulate.
|
|
2118
2073
|
|
|
2119
2074
|
:param bm: The bmesh to operate on.
|
|
2120
2075
|
:type bm: bmesh.types.BMesh
|
|
2121
2076
|
:param faces: input faces
|
|
2122
|
-
:type faces:
|
|
2077
|
+
:type faces: list[bmesh.types.BMFace]
|
|
2123
2078
|
:param quad_method: method for splitting the quads into triangles
|
|
2124
|
-
:type quad_method:
|
|
2079
|
+
:type quad_method: str | int
|
|
2125
2080
|
:param ngon_method: method for splitting the polygons into triangles
|
|
2126
|
-
:type ngon_method:
|
|
2081
|
+
:type ngon_method: str | int
|
|
2127
2082
|
:return: edges:
|
|
2128
2083
|
|
|
2129
2084
|
type list of (`bmesh.types.BMEdge`)
|
|
@@ -2139,22 +2094,20 @@ def triangulate(
|
|
|
2139
2094
|
face_map_double: duplicate faces
|
|
2140
2095
|
|
|
2141
2096
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
2142
|
-
:rtype:
|
|
2097
|
+
:rtype: dict[str, typing.Any]
|
|
2143
2098
|
"""
|
|
2144
2099
|
|
|
2145
2100
|
...
|
|
2146
2101
|
|
|
2147
2102
|
def unsubdivide(
|
|
2148
|
-
bm: bmesh.types.BMesh,
|
|
2149
|
-
verts: typing.List[bmesh.types.BMVert] = [],
|
|
2150
|
-
iterations: int = 0,
|
|
2103
|
+
bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = [], iterations: int = 0
|
|
2151
2104
|
):
|
|
2152
2105
|
"""Un-Subdivide.Reduce detail in geometry containing grids.
|
|
2153
2106
|
|
|
2154
2107
|
:param bm: The bmesh to operate on.
|
|
2155
2108
|
:type bm: bmesh.types.BMesh
|
|
2156
2109
|
:param verts: input vertices
|
|
2157
|
-
:type verts:
|
|
2110
|
+
:type verts: list[bmesh.types.BMVert]
|
|
2158
2111
|
:param iterations: number of times to unsubdivide
|
|
2159
2112
|
:type iterations: int
|
|
2160
2113
|
"""
|
|
@@ -2175,7 +2128,7 @@ def weld_verts(bm: bmesh.types.BMesh, targetmap={}):
|
|
|
2175
2128
|
|
|
2176
2129
|
def wireframe(
|
|
2177
2130
|
bm: bmesh.types.BMesh,
|
|
2178
|
-
faces:
|
|
2131
|
+
faces: list[bmesh.types.BMFace] = [],
|
|
2179
2132
|
thickness: float = 0,
|
|
2180
2133
|
offset: float = 0,
|
|
2181
2134
|
use_replace: bool = False,
|
|
@@ -2185,13 +2138,13 @@ def wireframe(
|
|
|
2185
2138
|
crease_weight: float = 0,
|
|
2186
2139
|
use_relative_offset: bool = False,
|
|
2187
2140
|
material_offset: int = 0,
|
|
2188
|
-
) ->
|
|
2141
|
+
) -> dict[str, typing.Any]:
|
|
2189
2142
|
"""Wire Frame.Makes a wire-frame copy of faces.
|
|
2190
2143
|
|
|
2191
2144
|
:param bm: The bmesh to operate on.
|
|
2192
2145
|
:type bm: bmesh.types.BMesh
|
|
2193
2146
|
:param faces: input faces
|
|
2194
|
-
:type faces:
|
|
2147
|
+
:type faces: list[bmesh.types.BMFace]
|
|
2195
2148
|
:param thickness: thickness
|
|
2196
2149
|
:type thickness: float
|
|
2197
2150
|
:param offset: offset the thickness from the center
|
|
@@ -2213,7 +2166,7 @@ def wireframe(
|
|
|
2213
2166
|
:return: faces: output faces
|
|
2214
2167
|
|
|
2215
2168
|
type list of (`bmesh.types.BMFace`)
|
|
2216
|
-
:rtype:
|
|
2169
|
+
:rtype: dict[str, typing.Any]
|
|
2217
2170
|
"""
|
|
2218
2171
|
|
|
2219
2172
|
...
|