fake-bge-module 20250312__py3-none-any.whl → 20260203__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.
- {animsys_refactor → _animsys_refactor}/__init__.pyi +7 -6
- {bl_console_utils → _bl_console_utils}/__init__.pyi +1 -0
- {bl_console_utils → _bl_console_utils}/autocomplete/__init__.pyi +1 -0
- {bl_console_utils → _bl_console_utils}/autocomplete/complete_calltip/__init__.pyi +1 -13
- {bl_console_utils → _bl_console_utils}/autocomplete/complete_import/__init__.pyi +1 -5
- {bl_console_utils → _bl_console_utils}/autocomplete/complete_namespace/__init__.pyi +3 -13
- {bl_console_utils → _bl_console_utils}/autocomplete/intellisense/__init__.pyi +1 -10
- {bl_i18n_utils → _bl_i18n_utils}/__init__.pyi +2 -0
- _bl_i18n_utils/bl_extract_messages/__init__.pyi +28 -0
- {bl_i18n_utils → _bl_i18n_utils}/merge_po/__init__.pyi +2 -1
- {bl_i18n_utils → _bl_i18n_utils}/settings/__init__.pyi +10 -7
- {bl_i18n_utils → _bl_i18n_utils}/utils/__init__.pyi +53 -50
- _bl_i18n_utils/utils_cli/__init__.pyi +11 -0
- _bl_i18n_utils/utils_languages_menu/__init__.pyi +6 -0
- {bl_i18n_utils → _bl_i18n_utils}/utils_rtl/__init__.pyi +3 -2
- _bl_i18n_utils/utils_spell_check/__init__.pyi +22 -0
- {bl_previews_utils → _bl_previews_utils}/__init__.pyi +1 -0
- _bl_previews_utils/bl_previews_render/__init__.pyi +14 -0
- {bl_rna_utils → _bl_rna_utils}/__init__.pyi +1 -0
- {bl_rna_utils → _bl_rna_utils}/data_path/__init__.pyi +3 -2
- {bl_text_utils → _bl_text_utils}/__init__.pyi +1 -0
- _bl_text_utils/external_editor/__init__.pyi +6 -0
- {bl_ui_utils → _bl_ui_utils}/__init__.pyi +1 -0
- {bl_ui_utils → _bl_ui_utils}/layout/__init__.pyi +2 -1
- _blendfile_header/__init__.pyi +48 -0
- _bpy_internal/__init__.pyi +5 -1
- _bpy_internal/addons/__init__.pyi +1 -0
- _bpy_internal/addons/cli/__init__.pyi +2 -1
- _bpy_internal/assets/__init__.pyi +5 -0
- _bpy_internal/assets/remote_library_listing/__init__.pyi +5 -0
- _bpy_internal/assets/remote_library_listing/blender_asset_library_openapi/__init__.pyi +13 -0
- _bpy_internal/disk_file_hash_service/__init__.pyi +19 -0
- _bpy_internal/disk_file_hash_service/backend_sqlite/__init__.pyi +48 -0
- _bpy_internal/disk_file_hash_service/hash_service/__init__.pyi +64 -0
- _bpy_internal/disk_file_hash_service/types/__init__.pyi +53 -0
- _bpy_internal/extensions/__init__.pyi +1 -0
- _bpy_internal/extensions/junction_module/__init__.pyi +8 -7
- _bpy_internal/extensions/stale_file_manager/__init__.pyi +9 -8
- _bpy_internal/extensions/wheel_manager/__init__.pyi +6 -5
- {bl_i18n_utils/utils_languages_menu → _bpy_internal/filesystem}/__init__.pyi +2 -2
- _bpy_internal/filesystem/locking/__init__.pyi +28 -0
- _bpy_internal/grease_pencil/__init__.pyi +1 -0
- _bpy_internal/grease_pencil/stroke/__init__.pyi +22 -6
- _bpy_internal/platform/__init__.pyi +5 -0
- _bpy_internal/platform/freedesktop/__init__.pyi +21 -0
- _bpy_internal/system_info/__init__.pyi +1 -0
- _bpy_internal/system_info/text_generate_runtime/__init__.pyi +2 -1
- _bpy_internal/system_info/url_prefill_runtime/__init__.pyi +2 -1
- _bpy_internal/system_info/url_prefill_startup/__init__.pyi +3 -2
- {bpy_restrict_state → _bpy_restrict_state}/__init__.pyi +1 -0
- _bpy_types/__init__.pyi +1635 -0
- {console_python → _console_python}/__init__.pyi +8 -7
- _console_shell/__init__.pyi +10 -0
- {graphviz_export → _graphviz_export}/__init__.pyi +3 -2
- _keyingsets_utils/__init__.pyi +21 -0
- {rna_info → _rna_info}/__init__.pyi +32 -27
- {rna_xml → _rna_xml}/__init__.pyi +7 -6
- addon_utils/__init__.pyi +13 -25
- aud/__init__.pyi +133 -155
- bge/__init__.pyi +1 -0
- bge/app/__init__.pyi +1 -0
- bge/constraints/__init__.pyi +22 -51
- bge/types/__init__.pyi +618 -1913
- bge_extras/__init__.pyi +1 -0
- bge_extras/logger/__init__.pyi +4 -3
- bgui/__init__.pyi +1 -0
- bgui/frame/__init__.pyi +1 -0
- bgui/frame_button/__init__.pyi +1 -0
- bgui/image/__init__.pyi +1 -1
- bgui/image_button/__init__.pyi +1 -0
- bgui/label/__init__.pyi +1 -0
- bgui/list_box/__init__.pyi +1 -1
- bgui/progress_bar/__init__.pyi +2 -1
- bgui/system/__init__.pyi +3 -5
- bgui/text_block/__init__.pyi +1 -0
- bgui/text_input/__init__.pyi +9 -8
- bgui/theme/__init__.pyi +4 -3
- bgui/widget/__init__.pyi +5 -4
- bl_app_override/__init__.pyi +4 -3
- bl_app_override/helpers/__init__.pyi +3 -2
- bl_app_template_utils/__init__.pyi +5 -4
- bl_app_templates_system/Game_Engine/__init__.pyi +5 -4
- bl_app_templates_system/Storyboarding/__init__.pyi +11 -0
- bl_app_templates_system/__init__.pyi +2 -0
- bl_keymap_utils/__init__.pyi +1 -0
- bl_keymap_utils/io/__init__.pyi +10 -9
- bl_keymap_utils/keymap_from_toolbar/__init__.pyi +2 -1
- bl_keymap_utils/keymap_hierarchy/__init__.pyi +2 -1
- bl_keymap_utils/platform_helpers/__init__.pyi +3 -2
- bl_keymap_utils/versioning/__init__.pyi +2 -1
- bl_math/__init__.pyi +4 -13
- bl_operators/__init__.pyi +4 -2
- bl_operators/add_mesh_torus/__init__.pyi +9 -9
- bl_operators/anim/__init__.pyi +90 -62
- bl_operators/assets/__init__.pyi +14 -18
- bl_operators/bmesh/__init__.pyi +1 -0
- bl_operators/bmesh/find_adjacent/__init__.pyi +12 -9
- bl_operators/bone_selection_sets/__init__.pyi +34 -60
- bl_operators/clip/__init__.pyi +39 -57
- bl_operators/connect_to_output/__init__.pyi +20 -18
- bl_operators/console/__init__.pyi +17 -25
- bl_operators/constraint/__init__.pyi +15 -21
- bl_operators/copy_global_transform/__init__.pyi +261 -0
- bl_operators/file/__init__.pyi +13 -17
- bl_operators/freestyle/__init__.pyi +15 -21
- bl_operators/geometry_nodes/__init__.pyi +30 -36
- bl_operators/grease_pencil/__init__.pyi +5 -5
- bl_operators/image/__init__.pyi +14 -22
- bl_operators/image_as_planes/__init__.pyi +36 -42
- bl_operators/mesh/__init__.pyi +8 -53
- bl_operators/node/__init__.pyi +375 -92
- bl_operators/node_editor/__init__.pyi +1 -0
- bl_operators/node_editor/node_functions/__init__.pyi +10 -9
- bl_operators/object/__init__.pyi +57 -98
- bl_operators/object_align/__init__.pyi +8 -8
- bl_operators/object_quick_effects/__init__.pyi +15 -21
- bl_operators/object_randomize_transform/__init__.pyi +6 -6
- bl_operators/presets/__init__.pyi +46 -94
- bl_operators/rigidbody/__init__.pyi +12 -16
- bl_operators/screen_play_rendered_anim/__init__.pyi +5 -5
- bl_operators/sequencer/__init__.pyi +40 -54
- bl_operators/spreadsheet/__init__.pyi +7 -7
- bl_operators/userpref/__init__.pyi +69 -117
- bl_operators/uvcalc_follow_active/__init__.pyi +8 -8
- bl_operators/uvcalc_lightmap/__init__.pyi +12 -12
- bl_operators/uvcalc_transform/__init__.pyi +39 -28
- bl_operators/vertexpaint_dirt/__init__.pyi +7 -7
- bl_operators/view3d/__init__.pyi +31 -43
- bl_operators/wm/__init__.pyi +139 -231
- bl_operators/world/__init__.pyi +6 -6
- bl_ui/__init__.pyi +18 -17
- bl_ui/anim/__init__.pyi +5 -5
- bl_ui/asset_shelf/__init__.pyi +5 -5
- bl_ui/generic_ui_list/__init__.pyi +12 -26
- bl_ui/node_add_menu/__init__.pyi +281 -12
- bl_ui/node_add_menu_compositor/__init__.pyi +135 -91
- bl_ui/node_add_menu_geometry/__init__.pyi +407 -263
- bl_ui/node_add_menu_shader/__init__.pyi +67 -67
- bl_ui/node_add_menu_texture/__init__.pyi +25 -69
- bl_ui/properties_animviz/__init__.pyi +3 -2
- bl_ui/properties_collection/__init__.pyi +20 -30
- bl_ui/properties_constraint/__init__.pyi +228 -450
- bl_ui/properties_data_armature/__init__.pyi +45 -79
- bl_ui/properties_data_bone/__init__.pyi +33 -51
- bl_ui/properties_data_camera/__init__.pyi +43 -75
- bl_ui/properties_data_curve/__init__.pyi +42 -101
- bl_ui/properties_data_curves/__init__.pyi +21 -35
- bl_ui/properties_data_empty/__init__.pyi +8 -10
- bl_ui/properties_data_grease_pencil/__init__.pyi +49 -87
- bl_ui/properties_data_lattice/__init__.pyi +12 -18
- bl_ui/properties_data_light/__init__.pyi +28 -46
- bl_ui/properties_data_lightprobe/__init__.pyi +35 -61
- bl_ui/properties_data_mesh/__init__.pyi +73 -120
- bl_ui/properties_data_metaball/__init__.pyi +16 -26
- bl_ui/properties_data_modifier/__init__.pyi +34 -39
- bl_ui/properties_data_pointcloud/__init__.pyi +17 -27
- bl_ui/properties_data_shaderfx/__init__.pyi +4 -4
- bl_ui/properties_data_speaker/__init__.pyi +15 -25
- bl_ui/properties_data_volume/__init__.pyi +22 -38
- bl_ui/properties_freestyle/__init__.pyi +79 -127
- bl_ui/properties_game/__init__.pyi +88 -84
- bl_ui/properties_grease_pencil_common/__init__.pyi +33 -190
- bl_ui/properties_mask_common/__init__.pyi +33 -45
- bl_ui/properties_material/__init__.pyi +52 -111
- bl_ui/properties_material_gpencil/__init__.pyi +48 -68
- bl_ui/properties_object/__init__.pyi +123 -93
- bl_ui/properties_output/__init__.pyi +103 -81
- bl_ui/properties_paint_common/__init__.pyi +78 -59
- bl_ui/properties_particle/__init__.pyi +160 -262
- bl_ui/properties_physics_cloth/__init__.pyi +36 -62
- bl_ui/properties_physics_common/__init__.pyi +11 -11
- bl_ui/properties_physics_dynamicpaint/__init__.pyi +81 -123
- bl_ui/properties_physics_field/__init__.pyi +35 -53
- bl_ui/properties_physics_fluid/__init__.pyi +106 -160
- bl_ui/properties_physics_geometry_nodes/__init__.pyi +6 -6
- bl_ui/properties_physics_rigidbody/__init__.pyi +28 -42
- bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +44 -68
- bl_ui/properties_physics_softbody/__init__.pyi +38 -66
- bl_ui/properties_render/__init__.pyi +267 -259
- bl_ui/properties_scene/__init__.pyi +69 -72
- bl_ui/properties_strip/__init__.pyi +744 -0
- bl_ui/properties_strip_modifier/__init__.pyi +45 -0
- bl_ui/properties_texture/__init__.pyi +69 -122
- bl_ui/properties_view_layer/__init__.pyi +97 -51
- bl_ui/properties_workspace/__init__.pyi +12 -18
- bl_ui/properties_world/__init__.pyi +33 -53
- bl_ui/space_clip/__init__.pyi +231 -311
- bl_ui/space_console/__init__.pyi +14 -24
- bl_ui/space_dopesheet/__init__.pyi +193 -125
- bl_ui/space_filebrowser/__init__.pyi +107 -131
- bl_ui/space_graph/__init__.pyi +93 -80
- bl_ui/space_image/__init__.pyi +207 -291
- bl_ui/space_info/__init__.pyi +14 -24
- bl_ui/space_logic/__init__.pyi +14 -22
- bl_ui/space_nla/__init__.pyi +63 -69
- bl_ui/space_node/__init__.pyi +215 -154
- bl_ui/space_outliner/__init__.pyi +65 -61
- bl_ui/space_properties/__init__.pyi +41 -16
- bl_ui/space_sequencer/__init__.pyi +276 -979
- bl_ui/space_spreadsheet/__init__.pyi +27 -23
- bl_ui/space_statusbar/__init__.pyi +4 -4
- bl_ui/space_text/__init__.pyi +39 -73
- bl_ui/space_time/__init__.pyi +33 -78
- bl_ui/space_toolsystem_common/__init__.pyi +31 -28
- bl_ui/space_toolsystem_toolbar/__init__.pyi +67 -43
- bl_ui/space_topbar/__init__.pyi +68 -111
- bl_ui/space_userpref/__init__.pyi +310 -445
- bl_ui/space_view3d/__init__.pyi +667 -1122
- bl_ui/space_view3d_sidebar/__init__.pyi +127 -0
- bl_ui/space_view3d_toolbar/__init__.pyi +237 -966
- bl_ui/utils/__init__.pyi +4 -3
- blend_render_info/__init__.pyi +4 -2
- blf/__init__.pyi +92 -59
- bmesh/__init__.pyi +4 -10
- bmesh/geometry/__init__.pyi +2 -4
- bmesh/ops/__init__.pyi +442 -815
- bmesh/types/__init__.pyi +377 -720
- bmesh/utils/__init__.pyi +20 -45
- bpy/__init__.pyi +2 -1
- bpy/app/__init__.pyi +96 -90
- bpy/app/handlers/__init__.pyi +24 -19
- bpy/app/icons/__init__.pyi +2 -7
- bpy/app/timers/__init__.pyi +5 -18
- bpy/app/translations/__init__.pyi +21 -35
- bpy/msgbus/__init__.pyi +20 -9
- bpy/ops/__init__.pyi +21 -3
- bpy/ops/action/__init__.pyi +121 -226
- bpy/ops/anim/__init__.pyi +204 -358
- bpy/ops/armature/__init__.pyi +129 -249
- bpy/ops/asset/__init__.pyi +82 -111
- bpy/ops/bge_bricknodes/__init__.pyi +61 -0
- bpy/ops/boid/__init__.pyi +44 -50
- bpy/ops/bricknodes/__init__.pyi +37 -0
- bpy/ops/brush/__init__.pyi +33 -120
- bpy/ops/buttons/__init__.pyi +27 -83
- bpy/ops/cachefile/__init__.pyi +16 -74
- bpy/ops/camera/__init__.pyi +3 -13
- bpy/ops/clip/__init__.pyi +278 -558
- bpy/ops/cloth/__init__.pyi +2 -6
- bpy/ops/collection/__init__.pyi +34 -44
- bpy/ops/console/__init__.pyi +70 -111
- bpy/ops/constraint/__init__.pyi +34 -102
- bpy/ops/curve/__init__.pyi +163 -315
- bpy/ops/curves/__init__.pyi +163 -189
- bpy/ops/cycles/__init__.pyi +8 -18
- bpy/ops/dpaint/__init__.pyi +21 -30
- bpy/ops/ed/__init__.pyi +59 -103
- bpy/ops/export_anim/__init__.pyi +4 -11
- bpy/ops/export_scene/__init__.pyi +29 -174
- bpy/ops/extensions/__init__.pyi +102 -194
- bpy/ops/file/__init__.pyi +166 -272
- bpy/ops/fluid/__init__.pyi +78 -86
- bpy/ops/font/__init__.pyi +73 -164
- bpy/ops/geometry/__init__.pyi +33 -144
- bpy/ops/gizmogroup/__init__.pyi +8 -14
- bpy/ops/gpencil/__init__.pyi +31 -58
- bpy/ops/graph/__init__.pyi +176 -411
- bpy/ops/grease_pencil/__init__.pyi +416 -639
- bpy/ops/image/__init__.pyi +148 -492
- bpy/ops/import_anim/__init__.pyi +5 -18
- bpy/ops/import_curve/__init__.pyi +4 -6
- bpy/ops/import_scene/__init__.pyi +22 -49
- bpy/ops/info/__init__.pyi +27 -43
- bpy/ops/lattice/__init__.pyi +26 -43
- bpy/ops/logic/__init__.pyi +49 -122
- bpy/ops/logic_nodes/__init__.pyi +461 -0
- bpy/ops/marker/__init__.pyi +24 -60
- bpy/ops/mask/__init__.pyi +118 -222
- bpy/ops/material/__init__.pyi +19 -18
- bpy/ops/mball/__init__.pyi +13 -39
- bpy/ops/mesh/__init__.pyi +409 -1264
- bpy/ops/nla/__init__.pyi +140 -232
- bpy/ops/node/__init__.pyi +1189 -807
- bpy/ops/object/__init__.pyi +806 -1659
- bpy/ops/outliner/__init__.pyi +284 -432
- bpy/ops/paint/__init__.pyi +189 -381
- bpy/ops/paintcurve/__init__.pyi +29 -44
- bpy/ops/palette/__init__.pyi +23 -34
- bpy/ops/particle/__init__.pyi +135 -201
- bpy/ops/pointcloud/__init__.pyi +23 -42
- bpy/ops/pose/__init__.pyi +195 -310
- bpy/ops/poselib/__init__.pyi +45 -73
- bpy/ops/preferences/__init__.pyi +89 -221
- bpy/ops/ptcache/__init__.pyi +32 -39
- bpy/ops/render/__init__.pyi +36 -83
- bpy/ops/rigidbody/__init__.pyi +47 -78
- bpy/ops/scene/__init__.pyi +169 -222
- bpy/ops/screen/__init__.pyi +146 -259
- bpy/ops/script/__init__.pyi +9 -15
- bpy/ops/sculpt/__init__.pyi +194 -354
- bpy/ops/sculpt_curves/__init__.pyi +21 -29
- bpy/ops/sequencer/__init__.pyi +586 -836
- bpy/ops/sound/__init__.pyi +25 -131
- bpy/ops/spreadsheet/__init__.pyi +34 -21
- bpy/ops/surface/__init__.pyi +7 -54
- bpy/ops/text/__init__.pyi +166 -281
- bpy/ops/text_editor/__init__.pyi +2 -6
- bpy/ops/texture/__init__.pyi +20 -22
- bpy/ops/transform/__init__.pyi +108 -445
- bpy/ops/ui/__init__.pyi +157 -219
- bpy/ops/uilist/__init__.pyi +4 -16
- bpy/ops/uv/__init__.pyi +291 -347
- bpy/ops/view2d/__init__.pyi +29 -88
- bpy/ops/view3d/__init__.pyi +238 -438
- bpy/ops/wm/__init__.pyi +651 -1510
- bpy/ops/workspace/__init__.pyi +42 -44
- bpy/ops/world/__init__.pyi +12 -13
- bpy/path/__init__.pyi +6 -37
- bpy/props/__init__.pyi +395 -259
- bpy/{_typing → stub_internal}/__init__.pyi +1 -0
- bpy/{_typing → stub_internal}/rna_enums/__init__.pyi +214 -114
- bpy/types/__init__.pyi +93286 -103826
- bpy/utils/__init__.pyi +46 -104
- bpy/utils/previews/__init__.pyi +7 -15
- bpy/utils/units/__init__.pyi +6 -15
- bpy_extras/__init__.pyi +1 -0
- bpy_extras/anim_utils/__init__.pyi +32 -23
- bpy_extras/asset_utils/__init__.pyi +1 -0
- bpy_extras/bmesh_utils/__init__.pyi +2 -2
- bpy_extras/id_map_utils/__init__.pyi +15 -6
- bpy_extras/image_utils/__init__.pyi +3 -11
- bpy_extras/io_utils/__init__.pyi +22 -38
- bpy_extras/keyconfig_utils/__init__.pyi +5 -4
- bpy_extras/mesh_utils/__init__.pyi +3 -14
- bpy_extras/node_shader_utils/__init__.pyi +63 -70
- bpy_extras/node_utils/__init__.pyi +4 -3
- bpy_extras/object_utils/__init__.pyi +6 -19
- bpy_extras/view3d_utils/__init__.pyi +1 -18
- bpy_extras/wm_utils/__init__.pyi +1 -0
- bpy_extras/wm_utils/progress_report/__init__.pyi +12 -11
- {fake_bge_module-20250312.dist-info → fake_bge_module-20260203.dist-info}/METADATA +9 -3
- fake_bge_module-20260203.dist-info/RECORD +414 -0
- {fake_bge_module-20250312.dist-info → fake_bge_module-20260203.dist-info}/WHEEL +1 -1
- {fake_bge_module-20250312.dist-info → fake_bge_module-20260203.dist-info}/top_level.txt +16 -16
- freestyle/__init__.pyi +1 -0
- freestyle/chainingiterators/__init__.pyi +41 -60
- freestyle/functions/__init__.pyi +56 -194
- freestyle/predicates/__init__.pyi +11 -61
- freestyle/shaders/__init__.pyi +95 -156
- freestyle/types/__init__.pyi +306 -941
- freestyle/utils/ContextFunctions/__init__.pyi +4 -24
- freestyle/utils/__init__.pyi +46 -36
- gpu/__init__.pyi +84 -5
- gpu/capabilities/__init__.pyi +1 -21
- gpu/matrix/__init__.pyi +16 -24
- gpu/platform/__init__.pyi +3 -7
- gpu/select/__init__.pyi +2 -1
- gpu/shader/__init__.pyi +43 -9
- gpu/state/__init__.pyi +66 -44
- gpu/texture/__init__.pyi +4 -5
- gpu/types/__init__.pyi +216 -216
- gpu_extras/__init__.pyi +1 -0
- gpu_extras/batch/__init__.pyi +2 -5
- gpu_extras/presets/__init__.pyi +9 -10
- idprop/__init__.pyi +17 -0
- idprop/types/__init__.pyi +18 -17
- imbuf/__init__.pyi +13 -9
- imbuf/types/__init__.pyi +10 -23
- keyingsets_builtins/__init__.pyi +51 -93
- mathutils/__init__.pyi +296 -2255
- mathutils/bvhtree/__init__.pyi +24 -30
- mathutils/geometry/__init__.pyi +83 -132
- mathutils/interpolate/__init__.pyi +7 -5
- mathutils/kdtree/__init__.pyi +5 -14
- mathutils/noise/__init__.pyi +62 -106
- nodeitems_builtins/__init__.pyi +5 -4
- nodeitems_utils/__init__.pyi +10 -9
- rna_keymap_ui/__init__.pyi +7 -6
- rna_prop_ui/__init__.pyi +14 -13
- _bpy_internal/freedesktop/__init__.pyi +0 -20
- bgl/__init__.pyi +0 -4235
- bl_i18n_utils/bl_extract_messages/__init__.pyi +0 -24
- bl_i18n_utils/utils_cli/__init__.pyi +0 -10
- bl_previews_utils/bl_previews_render/__init__.pyi +0 -11
- bl_text_utils/external_editor/__init__.pyi +0 -5
- bpy_types/__init__.pyi +0 -29
- console_shell/__init__.pyi +0 -9
- fake_bge_module-20250312.dist-info/RECORD +0 -395
- keyingsets_utils/__init__.pyi +0 -18
- {animsys_refactor → _animsys_refactor}/py.typed +0 -0
- {bgl → _bl_console_utils}/py.typed +0 -0
- {bl_console_utils → _bl_i18n_utils}/py.typed +0 -0
- {bl_i18n_utils → _bl_previews_utils}/py.typed +0 -0
- {bl_previews_utils → _bl_rna_utils}/py.typed +0 -0
- {bl_rna_utils → _bl_text_utils}/py.typed +0 -0
- {bl_text_utils → _bl_ui_utils}/py.typed +0 -0
- {bl_ui_utils → _blendfile_header}/py.typed +0 -0
- {bpy_restrict_state → _bpy_restrict_state}/py.typed +0 -0
- {bpy_types → _bpy_types}/py.typed +0 -0
- {console_python → _console_python}/py.typed +0 -0
- {console_shell → _console_shell}/py.typed +0 -0
- {graphviz_export → _graphviz_export}/py.typed +0 -0
- {keyingsets_utils → _keyingsets_utils}/py.typed +0 -0
- {rna_info → _rna_info}/py.typed +0 -0
- {rna_xml → _rna_xml}/py.typed +0 -0
bmesh/ops/__init__.pyi
CHANGED
|
@@ -16,19 +16,20 @@ This script shows how operators can be used to model a link of a chain.
|
|
|
16
16
|
import typing
|
|
17
17
|
import collections.abc
|
|
18
18
|
import typing_extensions
|
|
19
|
+
import numpy.typing as npt
|
|
19
20
|
import bmesh.types
|
|
20
21
|
import bpy.types
|
|
21
22
|
import mathutils
|
|
22
23
|
|
|
23
|
-
def average_vert_facedata(
|
|
24
|
+
def average_vert_facedata(
|
|
25
|
+
bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = []
|
|
26
|
+
) -> None:
|
|
24
27
|
"""Average Vertices Face-vert Data.Merge uv/vcols associated with the input vertices at
|
|
25
|
-
the bounding box center. (I know,
|
|
28
|
+
the bounding box center. (I know, its not averaging but
|
|
26
29
|
the vert_snap_to_bb_center is just too long).
|
|
27
30
|
|
|
28
31
|
:param bm: The bmesh to operate on.
|
|
29
|
-
:
|
|
30
|
-
:param verts: input vertices
|
|
31
|
-
:type verts: list[bmesh.types.BMVert]
|
|
32
|
+
:param verts: Input vertices.
|
|
32
33
|
"""
|
|
33
34
|
|
|
34
35
|
def beautify_fill(
|
|
@@ -41,19 +42,14 @@ def beautify_fill(
|
|
|
41
42
|
"""Beautify Fill.Rotate edges to create more evenly spaced triangles.
|
|
42
43
|
|
|
43
44
|
:param bm: The bmesh to operate on.
|
|
44
|
-
:
|
|
45
|
-
:param
|
|
46
|
-
:
|
|
47
|
-
:param
|
|
48
|
-
:
|
|
49
|
-
|
|
50
|
-
:type use_restrict_tag: bool
|
|
51
|
-
:param method: method to define what is beautiful
|
|
52
|
-
:type method: typing.Literal['AREA','ANGLE']
|
|
53
|
-
:return: geom: new flipped faces and edges
|
|
45
|
+
:param faces: Input faces.
|
|
46
|
+
:param edges: Edges that can be flipped.
|
|
47
|
+
:param use_restrict_tag: Restrict edge rotation to mixed tagged vertices.
|
|
48
|
+
:param method: Method to define what is beautiful.
|
|
49
|
+
:return: geom:
|
|
50
|
+
New flipped faces and edges.
|
|
54
51
|
|
|
55
52
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
56
|
-
:rtype: dict[str, typing.Any]
|
|
57
53
|
"""
|
|
58
54
|
|
|
59
55
|
def bevel(
|
|
@@ -85,57 +81,39 @@ def bevel(
|
|
|
85
81
|
"""Bevel.Bevels edges and vertices
|
|
86
82
|
|
|
87
83
|
:param bm: The bmesh to operate on.
|
|
88
|
-
:
|
|
89
|
-
:param
|
|
90
|
-
:
|
|
91
|
-
:param offset: amount to offset beveled edge
|
|
92
|
-
:type offset: float
|
|
93
|
-
:param offset_type: how to measure the offset
|
|
94
|
-
:type offset_type: typing.Literal['OFFSET','WIDTH','DEPTH','PERCENT','ABSOLUTE']
|
|
84
|
+
:param geom: Input edges and vertices.
|
|
85
|
+
:param offset: Amount to offset beveled edge.
|
|
86
|
+
:param offset_type: How to measure the offset.
|
|
95
87
|
:param profile_type: The profile type to use for bevel.
|
|
96
|
-
:
|
|
97
|
-
:param
|
|
98
|
-
:type segments: int
|
|
99
|
-
:param profile: profile shape, 0->1 (.5=>round)
|
|
100
|
-
:type profile: float
|
|
88
|
+
:param segments: Number of segments in bevel.
|
|
89
|
+
:param profile: Profile shape, 0->1 (.5=>round).
|
|
101
90
|
:param affect: Whether to bevel vertices or edges.
|
|
102
|
-
:
|
|
103
|
-
:param
|
|
104
|
-
:
|
|
105
|
-
:param
|
|
106
|
-
:
|
|
107
|
-
:param
|
|
108
|
-
:
|
|
109
|
-
:param
|
|
110
|
-
:
|
|
111
|
-
:param
|
|
112
|
-
:type mark_sharp: bool
|
|
113
|
-
:param harden_normals: harden normals
|
|
114
|
-
:type harden_normals: bool
|
|
115
|
-
:param face_strength_mode: whether to set face strength, and which faces to set if so
|
|
116
|
-
:type face_strength_mode: typing.Literal['NONE','NEW','AFFECTED','ALL']
|
|
117
|
-
:param miter_outer: outer miter kind
|
|
118
|
-
:type miter_outer: typing.Literal['SHARP','PATCH','ARC']
|
|
119
|
-
:param miter_inner: outer miter kind
|
|
120
|
-
:type miter_inner: typing.Literal['SHARP','PATCH','ARC']
|
|
121
|
-
:param spread: amount to offset beveled edge
|
|
122
|
-
:type spread: float
|
|
91
|
+
:param clamp_overlap: Do not allow beveled edges/vertices to overlap each other.
|
|
92
|
+
:param material: Material for bevel faces, -1 means get from adjacent faces.
|
|
93
|
+
:param loop_slide: Prefer to slide along edges to having even widths.
|
|
94
|
+
:param mark_seam: Extend edge data to allow seams to run across bevels.
|
|
95
|
+
:param mark_sharp: Extend edge data to allow sharp edges to run across bevels.
|
|
96
|
+
:param harden_normals: Harden normals.
|
|
97
|
+
:param face_strength_mode: Whether to set face strength, and which faces to set if so.
|
|
98
|
+
:param miter_outer: Outer miter kind.
|
|
99
|
+
:param miter_inner: Outer miter kind.
|
|
100
|
+
:param spread: Amount to offset beveled edge.
|
|
123
101
|
:param custom_profile: CurveProfile, if None ignored
|
|
124
|
-
:type custom_profile: bpy.types.bpy_struct | None
|
|
125
102
|
:param vmesh_method: The method to use to create meshes at intersections.
|
|
126
|
-
:
|
|
127
|
-
|
|
103
|
+
:return: faces:
|
|
104
|
+
Output faces.
|
|
128
105
|
|
|
129
106
|
type list of (`bmesh.types.BMFace`)
|
|
130
107
|
|
|
131
|
-
edges:
|
|
108
|
+
edges:
|
|
109
|
+
Output edges.
|
|
132
110
|
|
|
133
111
|
type list of (`bmesh.types.BMEdge`)
|
|
134
112
|
|
|
135
|
-
verts:
|
|
113
|
+
verts:
|
|
114
|
+
Output verts.
|
|
136
115
|
|
|
137
116
|
type list of (`bmesh.types.BMVert`)
|
|
138
|
-
:rtype: dict[str, typing.Any]
|
|
139
117
|
"""
|
|
140
118
|
|
|
141
119
|
def bisect_edges(
|
|
@@ -144,20 +122,17 @@ def bisect_edges(
|
|
|
144
122
|
cuts: int = 0,
|
|
145
123
|
edge_percents={},
|
|
146
124
|
) -> dict[str, typing.Any]:
|
|
147
|
-
"""Edge Bisect.Splits input edges (but
|
|
125
|
+
"""Edge Bisect.Splits input edges (but doesnt do anything else).
|
|
148
126
|
This creates a 2-valence vert.
|
|
149
127
|
|
|
150
128
|
:param bm: The bmesh to operate on.
|
|
151
|
-
:
|
|
152
|
-
:param
|
|
153
|
-
:type edges: list[bmesh.types.BMEdge]
|
|
154
|
-
:param cuts: number of cuts
|
|
155
|
-
:type cuts: int
|
|
129
|
+
:param edges: Input edges.
|
|
130
|
+
:param cuts: Number of cuts.
|
|
156
131
|
:param edge_percents: Undocumented.
|
|
157
|
-
:return: geom_split:
|
|
132
|
+
:return: geom_split:
|
|
133
|
+
Newly created vertices and edges.
|
|
158
134
|
|
|
159
135
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
160
|
-
:rtype: dict[str, typing.Any]
|
|
161
136
|
"""
|
|
162
137
|
|
|
163
138
|
def bisect_plane(
|
|
@@ -175,42 +150,32 @@ def bisect_plane(
|
|
|
175
150
|
"""Bisect Plane.Bisects the mesh by a plane (cut the mesh in half).
|
|
176
151
|
|
|
177
152
|
:param bm: The bmesh to operate on.
|
|
178
|
-
:
|
|
179
|
-
:param
|
|
180
|
-
:
|
|
181
|
-
:param
|
|
182
|
-
:
|
|
183
|
-
:param
|
|
184
|
-
:
|
|
185
|
-
:
|
|
186
|
-
|
|
187
|
-
:param use_snap_center: snap axis aligned verts to the center
|
|
188
|
-
:type use_snap_center: bool
|
|
189
|
-
:param clear_outer: when enabled. remove all geometry on the positive side of the plane
|
|
190
|
-
:type clear_outer: bool
|
|
191
|
-
:param clear_inner: when enabled. remove all geometry on the negative side of the plane
|
|
192
|
-
:type clear_inner: bool
|
|
193
|
-
:return: geom_cut: output geometry aligned with the plane (new and existing)
|
|
153
|
+
:param geom: Input geometry.
|
|
154
|
+
:param dist: Minimum distance when testing if a vert is exactly on the plane.
|
|
155
|
+
:param plane_co: Point on the plane.
|
|
156
|
+
:param plane_no: Direction of the plane.
|
|
157
|
+
:param use_snap_center: Snap axis aligned verts to the center.
|
|
158
|
+
:param clear_outer: When enabled. remove all geometry on the positive side of the plane.
|
|
159
|
+
:param clear_inner: When enabled. remove all geometry on the negative side of the plane.
|
|
160
|
+
:return: geom_cut:
|
|
161
|
+
Output geometry aligned with the plane (new and existing).
|
|
194
162
|
|
|
195
163
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`)
|
|
196
164
|
|
|
197
|
-
geom:
|
|
165
|
+
geom:
|
|
166
|
+
Input and output geometry (result of cut).
|
|
198
167
|
|
|
199
168
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
200
|
-
:rtype: dict[str, typing.Any]
|
|
201
169
|
"""
|
|
202
170
|
|
|
203
171
|
def bmesh_to_mesh(
|
|
204
172
|
bm: bmesh.types.BMesh, mesh: bpy.types.Mesh, object: bpy.types.Object
|
|
205
|
-
):
|
|
206
|
-
"""BMesh to Mesh.Converts a bmesh to a Mesh. This is reserved for exiting
|
|
173
|
+
) -> None:
|
|
174
|
+
"""BMesh to Mesh.Converts a bmesh to a Mesh. This is reserved for exiting edit-mode.
|
|
207
175
|
|
|
208
176
|
:param bm: The bmesh to operate on.
|
|
209
|
-
:
|
|
210
|
-
:param
|
|
211
|
-
:type mesh: bpy.types.Mesh
|
|
212
|
-
:param object: pointer to an object structure
|
|
213
|
-
:type object: bpy.types.Object
|
|
177
|
+
:param mesh: Pointer to a mesh structure to fill in.
|
|
178
|
+
:param object: Pointer to an object structure.
|
|
214
179
|
"""
|
|
215
180
|
|
|
216
181
|
def bridge_loops(
|
|
@@ -225,49 +190,38 @@ def bridge_loops(
|
|
|
225
190
|
"""Bridge edge loops with faces.
|
|
226
191
|
|
|
227
192
|
:param bm: The bmesh to operate on.
|
|
228
|
-
:
|
|
229
|
-
:param edges: input edges
|
|
230
|
-
:type edges: list[bmesh.types.BMEdge]
|
|
193
|
+
:param edges: Input edges.
|
|
231
194
|
:param use_pairs: Undocumented.
|
|
232
|
-
:type use_pairs: bool
|
|
233
195
|
:param use_cyclic: Undocumented.
|
|
234
|
-
:
|
|
235
|
-
:param
|
|
236
|
-
:
|
|
237
|
-
:
|
|
238
|
-
|
|
239
|
-
:param twist_offset: twist offset for closed loops
|
|
240
|
-
:type twist_offset: int
|
|
241
|
-
:return: faces: new faces
|
|
196
|
+
:param use_merge: Merge rather than creating faces.
|
|
197
|
+
:param merge_factor: Merge factor.
|
|
198
|
+
:param twist_offset: Twist offset for closed loops.
|
|
199
|
+
:return: faces:
|
|
200
|
+
New faces.
|
|
242
201
|
|
|
243
202
|
type list of (`bmesh.types.BMFace`)
|
|
244
203
|
|
|
245
|
-
edges:
|
|
204
|
+
edges:
|
|
205
|
+
New edges.
|
|
246
206
|
|
|
247
207
|
type list of (`bmesh.types.BMEdge`)
|
|
248
|
-
:rtype: dict[str, typing.Any]
|
|
249
208
|
"""
|
|
250
209
|
|
|
251
210
|
def collapse(
|
|
252
211
|
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], uvs: bool = False
|
|
253
|
-
):
|
|
212
|
+
) -> None:
|
|
254
213
|
"""Collapse Connected.Collapses connected vertices
|
|
255
214
|
|
|
256
215
|
:param bm: The bmesh to operate on.
|
|
257
|
-
:
|
|
258
|
-
:param
|
|
259
|
-
:type edges: list[bmesh.types.BMEdge]
|
|
260
|
-
:param uvs: also collapse UVs and such
|
|
261
|
-
:type uvs: bool
|
|
216
|
+
:param edges: Input edges.
|
|
217
|
+
:param uvs: Also collapse UVs and such.
|
|
262
218
|
"""
|
|
263
219
|
|
|
264
|
-
def collapse_uvs(bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []):
|
|
220
|
+
def collapse_uvs(bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []) -> None:
|
|
265
221
|
"""Collapse Connected UVs.Collapses connected UV vertices.
|
|
266
222
|
|
|
267
223
|
:param bm: The bmesh to operate on.
|
|
268
|
-
:
|
|
269
|
-
:param edges: input edges
|
|
270
|
-
:type edges: list[bmesh.types.BMEdge]
|
|
224
|
+
:param edges: Input edges.
|
|
271
225
|
"""
|
|
272
226
|
|
|
273
227
|
def connect_vert_pair(
|
|
@@ -279,17 +233,12 @@ def connect_vert_pair(
|
|
|
279
233
|
"""Connect Verts.Split faces by adding edges that connect verts.
|
|
280
234
|
|
|
281
235
|
:param bm: The bmesh to operate on.
|
|
282
|
-
:
|
|
283
|
-
:param
|
|
284
|
-
:
|
|
285
|
-
:param verts_exclude: input vertices to explicitly exclude from connecting
|
|
286
|
-
:type verts_exclude: list[bmesh.types.BMVert]
|
|
287
|
-
:param faces_exclude: input faces to explicitly exclude from connecting
|
|
288
|
-
:type faces_exclude: list[bmesh.types.BMFace]
|
|
236
|
+
:param verts: Input vertices.
|
|
237
|
+
:param verts_exclude: Input vertices to explicitly exclude from connecting.
|
|
238
|
+
:param faces_exclude: Input faces to explicitly exclude from connecting.
|
|
289
239
|
:return: edges:
|
|
290
240
|
|
|
291
241
|
type list of (`bmesh.types.BMEdge`)
|
|
292
|
-
:rtype: dict[str, typing.Any]
|
|
293
242
|
"""
|
|
294
243
|
|
|
295
244
|
def connect_verts(
|
|
@@ -301,17 +250,12 @@ def connect_verts(
|
|
|
301
250
|
"""Connect Verts.Split faces by adding edges that connect verts.
|
|
302
251
|
|
|
303
252
|
:param bm: The bmesh to operate on.
|
|
304
|
-
:
|
|
305
|
-
:param
|
|
306
|
-
:
|
|
307
|
-
:param faces_exclude: input faces to explicitly exclude from connecting
|
|
308
|
-
:type faces_exclude: list[bmesh.types.BMFace]
|
|
309
|
-
:param check_degenerate: prevent splits with overlaps & intersections
|
|
310
|
-
:type check_degenerate: bool
|
|
253
|
+
:param verts: Input vertices.
|
|
254
|
+
:param faces_exclude: Input faces to explicitly exclude from connecting.
|
|
255
|
+
:param check_degenerate: Prevent splits with overlaps & intersections.
|
|
311
256
|
:return: edges:
|
|
312
257
|
|
|
313
258
|
type list of (`bmesh.types.BMEdge`)
|
|
314
|
-
:rtype: dict[str, typing.Any]
|
|
315
259
|
"""
|
|
316
260
|
|
|
317
261
|
def connect_verts_concave(
|
|
@@ -320,9 +264,7 @@ def connect_verts_concave(
|
|
|
320
264
|
"""Connect Verts to form Convex Faces.Ensures all faces are convex faces.
|
|
321
265
|
|
|
322
266
|
:param bm: The bmesh to operate on.
|
|
323
|
-
:
|
|
324
|
-
:param faces: input faces
|
|
325
|
-
:type faces: list[bmesh.types.BMFace]
|
|
267
|
+
:param faces: Input faces.
|
|
326
268
|
:return: edges:
|
|
327
269
|
|
|
328
270
|
type list of (`bmesh.types.BMEdge`)
|
|
@@ -330,7 +272,6 @@ def connect_verts_concave(
|
|
|
330
272
|
faces:
|
|
331
273
|
|
|
332
274
|
type list of (`bmesh.types.BMFace`)
|
|
333
|
-
:rtype: dict[str, typing.Any]
|
|
334
275
|
"""
|
|
335
276
|
|
|
336
277
|
def connect_verts_nonplanar(
|
|
@@ -339,11 +280,8 @@ def connect_verts_nonplanar(
|
|
|
339
280
|
"""Connect Verts Across non Planer Faces.Split faces by connecting edges along non planer faces.
|
|
340
281
|
|
|
341
282
|
:param bm: The bmesh to operate on.
|
|
342
|
-
:
|
|
343
|
-
:param
|
|
344
|
-
:type angle_limit: float
|
|
345
|
-
:param faces: input faces
|
|
346
|
-
:type faces: list[bmesh.types.BMFace]
|
|
283
|
+
:param angle_limit: Total rotation angle (radians).
|
|
284
|
+
:param faces: Input faces.
|
|
347
285
|
:return: edges:
|
|
348
286
|
|
|
349
287
|
type list of (`bmesh.types.BMEdge`)
|
|
@@ -351,7 +289,6 @@ def connect_verts_nonplanar(
|
|
|
351
289
|
faces:
|
|
352
290
|
|
|
353
291
|
type list of (`bmesh.types.BMFace`)
|
|
354
|
-
:rtype: dict[str, typing.Any]
|
|
355
292
|
"""
|
|
356
293
|
|
|
357
294
|
def contextual_create(
|
|
@@ -368,21 +305,18 @@ def contextual_create(
|
|
|
368
305
|
become a wire edge.
|
|
369
306
|
|
|
370
307
|
:param bm: The bmesh to operate on.
|
|
371
|
-
:
|
|
372
|
-
:param
|
|
373
|
-
:
|
|
374
|
-
:
|
|
375
|
-
|
|
376
|
-
:param use_smooth: smooth to use
|
|
377
|
-
:type use_smooth: bool
|
|
378
|
-
:return: faces: newly-made face(s)
|
|
308
|
+
:param geom: Input geometry.
|
|
309
|
+
:param mat_nr: Material to use.
|
|
310
|
+
:param use_smooth: Smooth to use.
|
|
311
|
+
:return: faces:
|
|
312
|
+
Newly-made face(s).
|
|
379
313
|
|
|
380
314
|
type list of (`bmesh.types.BMFace`)
|
|
381
315
|
|
|
382
|
-
edges:
|
|
316
|
+
edges:
|
|
317
|
+
Newly-made edge(s).
|
|
383
318
|
|
|
384
319
|
type list of (`bmesh.types.BMEdge`)
|
|
385
|
-
:rtype: dict[str, typing.Any]
|
|
386
320
|
"""
|
|
387
321
|
|
|
388
322
|
def convex_hull(
|
|
@@ -392,20 +326,17 @@ def convex_hull(
|
|
|
392
326
|
| list[bmesh.types.BMVert] = [],
|
|
393
327
|
use_existing_faces: bool = False,
|
|
394
328
|
) -> dict[str, typing.Any]:
|
|
395
|
-
"""Convex HullBuilds a convex hull from the vertices in
|
|
396
|
-
that are covered by a pre-existing face.All hull vertices, faces, and edges are added to
|
|
329
|
+
"""Convex HullBuilds a convex hull from the vertices in input.If use_existing_faces is true, the hull will not output triangles
|
|
330
|
+
that are covered by a pre-existing face.All hull vertices, faces, and edges are added to geom.out. Any
|
|
397
331
|
input elements that end up inside the hull (i.e. are not used by an
|
|
398
|
-
output face) are added to the
|
|
399
|
-
|
|
400
|
-
completely unused. Lastly,
|
|
332
|
+
output face) are added to the interior_geom slot. The
|
|
333
|
+
unused_geom slot will contain all interior geometry that is
|
|
334
|
+
completely unused. Lastly, holes_geom contains edges and faces
|
|
401
335
|
that were in the input and are part of the hull.
|
|
402
336
|
|
|
403
337
|
:param bm: The bmesh to operate on.
|
|
404
|
-
:
|
|
405
|
-
:param
|
|
406
|
-
:type input: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
407
|
-
:param use_existing_faces: skip hull triangles that are covered by a pre-existing face
|
|
408
|
-
:type use_existing_faces: bool
|
|
338
|
+
:param input: Input geometry.
|
|
339
|
+
:param use_existing_faces: Skip hull triangles that are covered by a pre-existing face.
|
|
409
340
|
:return: geom:
|
|
410
341
|
|
|
411
342
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
@@ -421,7 +352,6 @@ def convex_hull(
|
|
|
421
352
|
geom_holes:
|
|
422
353
|
|
|
423
354
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
424
|
-
:rtype: dict[str, typing.Any]
|
|
425
355
|
"""
|
|
426
356
|
|
|
427
357
|
def create_circle(
|
|
@@ -437,23 +367,16 @@ def create_circle(
|
|
|
437
367
|
"""Creates a Circle.
|
|
438
368
|
|
|
439
369
|
:param bm: The bmesh to operate on.
|
|
440
|
-
:
|
|
441
|
-
:param
|
|
442
|
-
:
|
|
443
|
-
:param cap_tris: fill ends with triangles instead of ngons
|
|
444
|
-
:type cap_tris: bool
|
|
445
|
-
:param segments: number of vertices in the circle
|
|
446
|
-
:type segments: int
|
|
370
|
+
:param cap_ends: Whether or not to fill in the ends with faces.
|
|
371
|
+
:param cap_tris: Fill ends with triangles instead of ngons.
|
|
372
|
+
:param segments: Number of vertices in the circle.
|
|
447
373
|
:param radius: Radius of the circle.
|
|
448
|
-
:
|
|
449
|
-
:param
|
|
450
|
-
:
|
|
451
|
-
|
|
452
|
-
:type calc_uvs: bool
|
|
453
|
-
:return: verts: output verts
|
|
374
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
375
|
+
:param calc_uvs: Calculate default UVs.
|
|
376
|
+
:return: verts:
|
|
377
|
+
Output verts.
|
|
454
378
|
|
|
455
379
|
type list of (`bmesh.types.BMVert`)
|
|
456
|
-
:rtype: dict[str, typing.Any]
|
|
457
380
|
"""
|
|
458
381
|
|
|
459
382
|
def create_cone(
|
|
@@ -471,27 +394,18 @@ def create_cone(
|
|
|
471
394
|
"""Create Cone.Creates a cone with variable depth at both ends
|
|
472
395
|
|
|
473
396
|
:param bm: The bmesh to operate on.
|
|
474
|
-
:
|
|
475
|
-
:param
|
|
476
|
-
:
|
|
477
|
-
:param
|
|
478
|
-
:
|
|
479
|
-
:param
|
|
480
|
-
:
|
|
481
|
-
:param
|
|
482
|
-
:
|
|
483
|
-
|
|
484
|
-
:type radius2: float
|
|
485
|
-
:param depth: distance between ends
|
|
486
|
-
:type depth: float
|
|
487
|
-
:param matrix: matrix to multiply the new geometry with
|
|
488
|
-
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
489
|
-
:param calc_uvs: calculate default UVs
|
|
490
|
-
:type calc_uvs: bool
|
|
491
|
-
:return: verts: output verts
|
|
397
|
+
:param cap_ends: Whether or not to fill in the ends with faces.
|
|
398
|
+
:param cap_tris: Fill ends with triangles instead of ngons.
|
|
399
|
+
:param segments: Number of vertices in the base circle.
|
|
400
|
+
:param radius1: Radius of one end.
|
|
401
|
+
:param radius2: Radius of the opposite.
|
|
402
|
+
:param depth: Distance between ends.
|
|
403
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
404
|
+
:param calc_uvs: Calculate default UVs.
|
|
405
|
+
:return: verts:
|
|
406
|
+
Output verts.
|
|
492
407
|
|
|
493
408
|
type list of (`bmesh.types.BMVert`)
|
|
494
|
-
:rtype: dict[str, typing.Any]
|
|
495
409
|
"""
|
|
496
410
|
|
|
497
411
|
def create_cube(
|
|
@@ -504,17 +418,13 @@ def create_cube(
|
|
|
504
418
|
"""Create CubeCreates a cube.
|
|
505
419
|
|
|
506
420
|
:param bm: The bmesh to operate on.
|
|
507
|
-
:
|
|
508
|
-
:param
|
|
509
|
-
:
|
|
510
|
-
:
|
|
511
|
-
|
|
512
|
-
:param calc_uvs: calculate default UVs
|
|
513
|
-
:type calc_uvs: bool
|
|
514
|
-
:return: verts: output verts
|
|
421
|
+
:param size: Size of the cube.
|
|
422
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
423
|
+
:param calc_uvs: Calculate default UVs.
|
|
424
|
+
:return: verts:
|
|
425
|
+
Output verts.
|
|
515
426
|
|
|
516
427
|
type list of (`bmesh.types.BMVert`)
|
|
517
|
-
:rtype: dict[str, typing.Any]
|
|
518
428
|
"""
|
|
519
429
|
|
|
520
430
|
def create_grid(
|
|
@@ -529,21 +439,15 @@ def create_grid(
|
|
|
529
439
|
"""Create Grid.Creates a grid with a variable number of subdivisions
|
|
530
440
|
|
|
531
441
|
:param bm: The bmesh to operate on.
|
|
532
|
-
:
|
|
533
|
-
:param
|
|
534
|
-
:
|
|
535
|
-
:param
|
|
536
|
-
:
|
|
537
|
-
:
|
|
538
|
-
|
|
539
|
-
:param matrix: matrix to multiply the new geometry with
|
|
540
|
-
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
541
|
-
:param calc_uvs: calculate default UVs
|
|
542
|
-
:type calc_uvs: bool
|
|
543
|
-
:return: verts: output verts
|
|
442
|
+
:param x_segments: Number of x segments.
|
|
443
|
+
:param y_segments: Number of y segments.
|
|
444
|
+
:param size: Size of the grid.
|
|
445
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
446
|
+
:param calc_uvs: Calculate default UVs.
|
|
447
|
+
:return: verts:
|
|
448
|
+
Output verts.
|
|
544
449
|
|
|
545
450
|
type list of (`bmesh.types.BMVert`)
|
|
546
|
-
:rtype: dict[str, typing.Any]
|
|
547
451
|
"""
|
|
548
452
|
|
|
549
453
|
def create_icosphere(
|
|
@@ -557,19 +461,14 @@ def create_icosphere(
|
|
|
557
461
|
"""Create Ico-Sphere.Creates a grid with a variable number of subdivisions
|
|
558
462
|
|
|
559
463
|
:param bm: The bmesh to operate on.
|
|
560
|
-
:
|
|
561
|
-
:param
|
|
562
|
-
:
|
|
563
|
-
:param
|
|
564
|
-
:
|
|
565
|
-
|
|
566
|
-
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
567
|
-
:param calc_uvs: calculate default UVs
|
|
568
|
-
:type calc_uvs: bool
|
|
569
|
-
:return: verts: output verts
|
|
464
|
+
:param subdivisions: How many times to recursively subdivide the sphere.
|
|
465
|
+
:param radius: Radius.
|
|
466
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
467
|
+
:param calc_uvs: Calculate default UVs.
|
|
468
|
+
:return: verts:
|
|
469
|
+
Output verts.
|
|
570
470
|
|
|
571
471
|
type list of (`bmesh.types.BMVert`)
|
|
572
|
-
:rtype: dict[str, typing.Any]
|
|
573
472
|
"""
|
|
574
473
|
|
|
575
474
|
def create_monkey(
|
|
@@ -581,15 +480,12 @@ def create_monkey(
|
|
|
581
480
|
"""Create Suzanne.Creates a monkey (standard blender primitive).
|
|
582
481
|
|
|
583
482
|
:param bm: The bmesh to operate on.
|
|
584
|
-
:
|
|
585
|
-
:param
|
|
586
|
-
:
|
|
587
|
-
|
|
588
|
-
:type calc_uvs: bool
|
|
589
|
-
:return: verts: output verts
|
|
483
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
484
|
+
:param calc_uvs: Calculate default UVs.
|
|
485
|
+
:return: verts:
|
|
486
|
+
Output verts.
|
|
590
487
|
|
|
591
488
|
type list of (`bmesh.types.BMVert`)
|
|
592
|
-
:rtype: dict[str, typing.Any]
|
|
593
489
|
"""
|
|
594
490
|
|
|
595
491
|
def create_uvsphere(
|
|
@@ -604,21 +500,15 @@ def create_uvsphere(
|
|
|
604
500
|
"""Create UV Sphere.Creates a grid with a variable number of subdivisions
|
|
605
501
|
|
|
606
502
|
:param bm: The bmesh to operate on.
|
|
607
|
-
:
|
|
608
|
-
:param
|
|
609
|
-
:
|
|
610
|
-
:param
|
|
611
|
-
:
|
|
612
|
-
:
|
|
613
|
-
|
|
614
|
-
:param matrix: matrix to multiply the new geometry with
|
|
615
|
-
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
616
|
-
:param calc_uvs: calculate default UVs
|
|
617
|
-
:type calc_uvs: bool
|
|
618
|
-
:return: verts: output verts
|
|
503
|
+
:param u_segments: Number of u segments.
|
|
504
|
+
:param v_segments: Number of v segment.
|
|
505
|
+
:param radius: Radius.
|
|
506
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
507
|
+
:param calc_uvs: Calculate default UVs.
|
|
508
|
+
:return: verts:
|
|
509
|
+
Output verts.
|
|
619
510
|
|
|
620
511
|
type list of (`bmesh.types.BMVert`)
|
|
621
|
-
:rtype: dict[str, typing.Any]
|
|
622
512
|
"""
|
|
623
513
|
|
|
624
514
|
def create_vert(
|
|
@@ -629,13 +519,11 @@ def create_vert(
|
|
|
629
519
|
for click-create-vertex.
|
|
630
520
|
|
|
631
521
|
:param bm: The bmesh to operate on.
|
|
632
|
-
:
|
|
633
|
-
:
|
|
634
|
-
|
|
635
|
-
:return: vert: the new vert
|
|
522
|
+
:param co: The coordinate of the new vert.
|
|
523
|
+
:return: vert:
|
|
524
|
+
The new vert.
|
|
636
525
|
|
|
637
526
|
type list of (`bmesh.types.BMVert`)
|
|
638
|
-
:rtype: dict[str, typing.Any]
|
|
639
527
|
"""
|
|
640
528
|
|
|
641
529
|
def delete(
|
|
@@ -652,28 +540,22 @@ def delete(
|
|
|
652
540
|
"FACES_KEEP_BOUNDARY",
|
|
653
541
|
"TAGGED_ONLY",
|
|
654
542
|
] = "VERTS",
|
|
655
|
-
):
|
|
543
|
+
) -> None:
|
|
656
544
|
"""Delete Geometry.Utility operator to delete geometry.
|
|
657
545
|
|
|
658
546
|
:param bm: The bmesh to operate on.
|
|
659
|
-
:
|
|
660
|
-
:param
|
|
661
|
-
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
662
|
-
:param context: geometry types to delete
|
|
663
|
-
:type context: typing.Literal['VERTS','EDGES','FACES_ONLY','EDGES_FACES','FACES','FACES_KEEP_BOUNDARY','TAGGED_ONLY']
|
|
547
|
+
:param geom: Input geometry.
|
|
548
|
+
:param context: Geometry types to delete.
|
|
664
549
|
"""
|
|
665
550
|
|
|
666
551
|
def dissolve_degenerate(
|
|
667
552
|
bm: bmesh.types.BMesh, dist: float = 0, edges: list[bmesh.types.BMEdge] = []
|
|
668
|
-
):
|
|
553
|
+
) -> None:
|
|
669
554
|
"""Degenerate Dissolve.Dissolve edges with no length, faces with no area.
|
|
670
555
|
|
|
671
556
|
:param bm: The bmesh to operate on.
|
|
672
|
-
:
|
|
673
|
-
:param
|
|
674
|
-
:type dist: float
|
|
675
|
-
:param edges: input edges
|
|
676
|
-
:type edges: list[bmesh.types.BMEdge]
|
|
557
|
+
:param dist: Maximum distance to consider degenerate.
|
|
558
|
+
:param edges: Input edges.
|
|
677
559
|
"""
|
|
678
560
|
|
|
679
561
|
def dissolve_edges(
|
|
@@ -681,21 +563,19 @@ def dissolve_edges(
|
|
|
681
563
|
edges: list[bmesh.types.BMEdge] = [],
|
|
682
564
|
use_verts: bool = False,
|
|
683
565
|
use_face_split: bool = False,
|
|
566
|
+
angle_threshold: float = 0,
|
|
684
567
|
) -> dict[str, typing.Any]:
|
|
685
568
|
"""Dissolve Edges.
|
|
686
569
|
|
|
687
570
|
:param bm: The bmesh to operate on.
|
|
688
|
-
:
|
|
689
|
-
:param
|
|
690
|
-
:
|
|
691
|
-
:param
|
|
692
|
-
|
|
693
|
-
:param use_face_split: split off face corners to maintain surrounding geometry
|
|
694
|
-
:type use_face_split: bool
|
|
571
|
+
:param edges: Input edges.
|
|
572
|
+
:param use_verts: Dissolve verts left between only 2 edges.
|
|
573
|
+
:param use_face_split: Split off face corners to maintain surrounding geometry.
|
|
574
|
+
:param angle_threshold: Do not dissolve verts between 2 edges when their angle exceeds this threshold.
|
|
575
|
+
Disabled by default.
|
|
695
576
|
:return: region:
|
|
696
577
|
|
|
697
578
|
type list of (`bmesh.types.BMFace`)
|
|
698
|
-
:rtype: dict[str, typing.Any]
|
|
699
579
|
"""
|
|
700
580
|
|
|
701
581
|
def dissolve_faces(
|
|
@@ -704,15 +584,11 @@ def dissolve_faces(
|
|
|
704
584
|
"""Dissolve Faces.
|
|
705
585
|
|
|
706
586
|
:param bm: The bmesh to operate on.
|
|
707
|
-
:
|
|
708
|
-
:param
|
|
709
|
-
:type faces: list[bmesh.types.BMFace]
|
|
710
|
-
:param use_verts: dissolve verts left between only 2 edges.
|
|
711
|
-
:type use_verts: bool
|
|
587
|
+
:param faces: Input faces.
|
|
588
|
+
:param use_verts: Dissolve verts left between only 2 edges.
|
|
712
589
|
:return: region:
|
|
713
590
|
|
|
714
591
|
type list of (`bmesh.types.BMFace`)
|
|
715
|
-
:rtype: dict[str, typing.Any]
|
|
716
592
|
"""
|
|
717
593
|
|
|
718
594
|
def dissolve_limit(
|
|
@@ -726,20 +602,14 @@ def dissolve_limit(
|
|
|
726
602
|
"""Limited Dissolve.Dissolve planar faces and co-linear edges.
|
|
727
603
|
|
|
728
604
|
:param bm: The bmesh to operate on.
|
|
729
|
-
:
|
|
730
|
-
:param
|
|
731
|
-
:
|
|
732
|
-
:param
|
|
733
|
-
:
|
|
734
|
-
:param verts: input vertices
|
|
735
|
-
:type verts: list[bmesh.types.BMVert]
|
|
736
|
-
:param edges: input edges
|
|
737
|
-
:type edges: list[bmesh.types.BMEdge]
|
|
738
|
-
:param delimit: delimit dissolve operation
|
|
605
|
+
:param angle_limit: Total rotation angle (radians).
|
|
606
|
+
:param use_dissolve_boundaries: Dissolve all vertices in between face boundaries.
|
|
607
|
+
:param verts: Input vertices.
|
|
608
|
+
:param edges: Input edges.
|
|
609
|
+
:param delimit: Delimit dissolve operation.
|
|
739
610
|
:return: region:
|
|
740
611
|
|
|
741
612
|
type list of (`bmesh.types.BMFace`)
|
|
742
|
-
:rtype: dict[str, typing.Any]
|
|
743
613
|
"""
|
|
744
614
|
|
|
745
615
|
def dissolve_verts(
|
|
@@ -747,17 +617,13 @@ def dissolve_verts(
|
|
|
747
617
|
verts: list[bmesh.types.BMVert] = [],
|
|
748
618
|
use_face_split: bool = False,
|
|
749
619
|
use_boundary_tear: bool = False,
|
|
750
|
-
):
|
|
620
|
+
) -> None:
|
|
751
621
|
"""Dissolve Verts.
|
|
752
622
|
|
|
753
623
|
:param bm: The bmesh to operate on.
|
|
754
|
-
:
|
|
755
|
-
:param
|
|
756
|
-
:
|
|
757
|
-
:param use_face_split: split off face corners to maintain surrounding geometry
|
|
758
|
-
:type use_face_split: bool
|
|
759
|
-
:param use_boundary_tear: split off face corners instead of merging faces
|
|
760
|
-
:type use_boundary_tear: bool
|
|
624
|
+
:param verts: Input vertices.
|
|
625
|
+
:param use_face_split: Split off face corners to maintain surrounding geometry.
|
|
626
|
+
:param use_boundary_tear: Split off face corners instead of merging faces.
|
|
761
627
|
"""
|
|
762
628
|
|
|
763
629
|
def duplicate(
|
|
@@ -773,15 +639,10 @@ def duplicate(
|
|
|
773
639
|
optionally into a destination mesh.
|
|
774
640
|
|
|
775
641
|
:param bm: The bmesh to operate on.
|
|
776
|
-
:
|
|
777
|
-
:param
|
|
778
|
-
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
779
|
-
:param dest: destination bmesh, if None will use current on
|
|
780
|
-
:type dest: bmesh.types.BMesh | None
|
|
642
|
+
:param geom: Input geometry.
|
|
643
|
+
:param dest: Destination bmesh, if None will use current on.
|
|
781
644
|
:param use_select_history: Undocumented.
|
|
782
|
-
:type use_select_history: bool
|
|
783
645
|
:param use_edge_flip_from_face: Undocumented.
|
|
784
|
-
:type use_edge_flip_from_face: bool
|
|
785
646
|
:return: geom_orig:
|
|
786
647
|
|
|
787
648
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
@@ -803,13 +664,14 @@ def duplicate(
|
|
|
803
664
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
804
665
|
|
|
805
666
|
boundary_map:
|
|
667
|
+
Boundary edges from the split geometry that maps edges from the original geometry
|
|
668
|
+
to the destination edges.
|
|
806
669
|
|
|
807
670
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
808
671
|
|
|
809
672
|
isovert_map:
|
|
810
673
|
|
|
811
674
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
812
|
-
:rtype: dict[str, typing.Any]
|
|
813
675
|
"""
|
|
814
676
|
|
|
815
677
|
def edgeloop_fill(
|
|
@@ -821,17 +683,13 @@ def edgeloop_fill(
|
|
|
821
683
|
"""Edge Loop Fill.Create faces defined by one or more non overlapping edge loops.
|
|
822
684
|
|
|
823
685
|
:param bm: The bmesh to operate on.
|
|
824
|
-
:
|
|
825
|
-
:param
|
|
826
|
-
:
|
|
827
|
-
:
|
|
828
|
-
|
|
829
|
-
:param use_smooth: smooth state to use
|
|
830
|
-
:type use_smooth: bool
|
|
831
|
-
:return: faces: new faces
|
|
686
|
+
:param edges: Input edges.
|
|
687
|
+
:param mat_nr: Material to use.
|
|
688
|
+
:param use_smooth: Smooth state to use.
|
|
689
|
+
:return: faces:
|
|
690
|
+
New faces.
|
|
832
691
|
|
|
833
692
|
type list of (`bmesh.types.BMFace`)
|
|
834
|
-
:rtype: dict[str, typing.Any]
|
|
835
693
|
"""
|
|
836
694
|
|
|
837
695
|
def edgenet_fill(
|
|
@@ -844,35 +702,28 @@ def edgenet_fill(
|
|
|
844
702
|
"""Edge Net Fill.Create faces defined by enclosed edges.
|
|
845
703
|
|
|
846
704
|
:param bm: The bmesh to operate on.
|
|
847
|
-
:
|
|
848
|
-
:param
|
|
849
|
-
:
|
|
850
|
-
:param
|
|
851
|
-
:
|
|
852
|
-
|
|
853
|
-
:type use_smooth: bool
|
|
854
|
-
:param sides: number of sides
|
|
855
|
-
:type sides: int
|
|
856
|
-
:return: faces: new faces
|
|
705
|
+
:param edges: Input edges.
|
|
706
|
+
:param mat_nr: Material to use.
|
|
707
|
+
:param use_smooth: Smooth state to use.
|
|
708
|
+
:param sides: Number of sides.
|
|
709
|
+
:return: faces:
|
|
710
|
+
New faces.
|
|
857
711
|
|
|
858
712
|
type list of (`bmesh.types.BMFace`)
|
|
859
|
-
:rtype: dict[str, typing.Any]
|
|
860
713
|
"""
|
|
861
714
|
|
|
862
715
|
def edgenet_prepare(
|
|
863
716
|
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []
|
|
864
717
|
) -> dict[str, typing.Any]:
|
|
865
718
|
"""Edge-net Prepare.Identifies several useful edge loop cases and modifies them so
|
|
866
|
-
|
|
719
|
+
theyll become a face when edgenet_fill is called. The cases covered are:
|
|
867
720
|
|
|
868
721
|
:param bm: The bmesh to operate on.
|
|
869
|
-
:
|
|
870
|
-
:
|
|
871
|
-
|
|
872
|
-
:return: edges: new edges
|
|
722
|
+
:param edges: Input edges.
|
|
723
|
+
:return: edges:
|
|
724
|
+
New edges.
|
|
873
725
|
|
|
874
726
|
type list of (`bmesh.types.BMEdge`)
|
|
875
|
-
:rtype: dict[str, typing.Any]
|
|
876
727
|
"""
|
|
877
728
|
|
|
878
729
|
def extrude_discrete_faces(
|
|
@@ -884,17 +735,13 @@ def extrude_discrete_faces(
|
|
|
884
735
|
"""Individual Face Extrude.Extrudes faces individually.
|
|
885
736
|
|
|
886
737
|
:param bm: The bmesh to operate on.
|
|
887
|
-
:
|
|
888
|
-
:param faces: input faces
|
|
889
|
-
:type faces: list[bmesh.types.BMFace]
|
|
738
|
+
:param faces: Input faces.
|
|
890
739
|
:param use_normal_flip: Create faces with reversed direction.
|
|
891
|
-
:
|
|
892
|
-
:
|
|
893
|
-
|
|
894
|
-
:return: faces: output faces
|
|
740
|
+
:param use_select_history: Pass to duplicate.
|
|
741
|
+
:return: faces:
|
|
742
|
+
Output faces.
|
|
895
743
|
|
|
896
744
|
type list of (`bmesh.types.BMFace`)
|
|
897
|
-
:rtype: dict[str, typing.Any]
|
|
898
745
|
"""
|
|
899
746
|
|
|
900
747
|
def extrude_edge_only(
|
|
@@ -903,21 +750,17 @@ def extrude_edge_only(
|
|
|
903
750
|
use_normal_flip: bool = False,
|
|
904
751
|
use_select_history: bool = False,
|
|
905
752
|
) -> dict[str, typing.Any]:
|
|
906
|
-
"""Extrude Only Edges.Extrudes Edges into faces, note that this is very simple,
|
|
753
|
+
"""Extrude Only Edges.Extrudes Edges into faces, note that this is very simple, theres no fancy
|
|
907
754
|
winged extrusion.
|
|
908
755
|
|
|
909
756
|
:param bm: The bmesh to operate on.
|
|
910
|
-
:
|
|
911
|
-
:param edges: input vertices
|
|
912
|
-
:type edges: list[bmesh.types.BMEdge]
|
|
757
|
+
:param edges: Input vertices.
|
|
913
758
|
:param use_normal_flip: Create faces with reversed direction.
|
|
914
|
-
:
|
|
915
|
-
:
|
|
916
|
-
|
|
917
|
-
:return: geom: output geometry
|
|
759
|
+
:param use_select_history: Pass to duplicate.
|
|
760
|
+
:return: geom:
|
|
761
|
+
Output geometry.
|
|
918
762
|
|
|
919
763
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
920
|
-
:rtype: dict[str, typing.Any]
|
|
921
764
|
"""
|
|
922
765
|
|
|
923
766
|
def extrude_face_region(
|
|
@@ -931,28 +774,22 @@ def extrude_face_region(
|
|
|
931
774
|
use_normal_from_adjacent: bool = False,
|
|
932
775
|
use_dissolve_ortho_edges: bool = False,
|
|
933
776
|
use_select_history: bool = False,
|
|
777
|
+
skip_input_flip: bool = False,
|
|
934
778
|
) -> dict[str, typing.Any]:
|
|
935
779
|
"""Extrude Faces.Extrude operator (does not transform)
|
|
936
780
|
|
|
937
781
|
:param bm: The bmesh to operate on.
|
|
938
|
-
:
|
|
939
|
-
:param
|
|
940
|
-
:
|
|
941
|
-
:param edges_exclude: input edges to explicitly exclude from extrusion
|
|
942
|
-
:param use_keep_orig: keep original geometry (requires geom to include edges).
|
|
943
|
-
:type use_keep_orig: bool
|
|
782
|
+
:param geom: Edges and faces.
|
|
783
|
+
:param edges_exclude: Input edges to explicitly exclude from extrusion.
|
|
784
|
+
:param use_keep_orig: Keep original geometry (requires geom to include edges).
|
|
944
785
|
:param use_normal_flip: Create faces with reversed direction.
|
|
945
|
-
:type use_normal_flip: bool
|
|
946
786
|
:param use_normal_from_adjacent: Use winding from surrounding faces instead of this region.
|
|
947
|
-
:type use_normal_from_adjacent: bool
|
|
948
787
|
:param use_dissolve_ortho_edges: Dissolve edges whose faces form a flat surface.
|
|
949
|
-
:
|
|
950
|
-
:param
|
|
951
|
-
:type use_select_history: bool
|
|
788
|
+
:param use_select_history: Pass to duplicate.
|
|
789
|
+
:param skip_input_flip: Skip flipping of input faces to preserve original orientation.
|
|
952
790
|
:return: geom:
|
|
953
791
|
|
|
954
792
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
955
|
-
:rtype: dict[str, typing.Any]
|
|
956
793
|
"""
|
|
957
794
|
|
|
958
795
|
def extrude_vert_indiv(
|
|
@@ -963,19 +800,17 @@ def extrude_vert_indiv(
|
|
|
963
800
|
"""Individual Vertex Extrude.Extrudes wire edges from vertices.
|
|
964
801
|
|
|
965
802
|
:param bm: The bmesh to operate on.
|
|
966
|
-
:
|
|
967
|
-
:param
|
|
968
|
-
:
|
|
969
|
-
|
|
970
|
-
:type use_select_history: bool
|
|
971
|
-
:return: edges: output wire edges
|
|
803
|
+
:param verts: Input vertices.
|
|
804
|
+
:param use_select_history: Pass to duplicate.
|
|
805
|
+
:return: edges:
|
|
806
|
+
Output wire edges.
|
|
972
807
|
|
|
973
808
|
type list of (`bmesh.types.BMEdge`)
|
|
974
809
|
|
|
975
|
-
verts:
|
|
810
|
+
verts:
|
|
811
|
+
Output vertices.
|
|
976
812
|
|
|
977
813
|
type list of (`bmesh.types.BMVert`)
|
|
978
|
-
:rtype: dict[str, typing.Any]
|
|
979
814
|
"""
|
|
980
815
|
|
|
981
816
|
def face_attribute_fill(
|
|
@@ -987,23 +822,20 @@ def face_attribute_fill(
|
|
|
987
822
|
"""Face Attribute Fill.Fill in faces with data from adjacent faces.
|
|
988
823
|
|
|
989
824
|
:param bm: The bmesh to operate on.
|
|
990
|
-
:
|
|
991
|
-
:param
|
|
992
|
-
:
|
|
993
|
-
:
|
|
994
|
-
|
|
995
|
-
:param use_data: copy face data
|
|
996
|
-
:type use_data: bool
|
|
997
|
-
:return: faces_fail: faces that could not be handled
|
|
825
|
+
:param faces: Input faces.
|
|
826
|
+
:param use_normals: Copy face winding.
|
|
827
|
+
:param use_data: Copy face data.
|
|
828
|
+
:return: faces_fail:
|
|
829
|
+
Faces that could not be handled.
|
|
998
830
|
|
|
999
831
|
type list of (`bmesh.types.BMFace`)
|
|
1000
|
-
:rtype: dict[str, typing.Any]
|
|
1001
832
|
"""
|
|
1002
833
|
|
|
1003
834
|
def find_doubles(
|
|
1004
835
|
bm: bmesh.types.BMesh,
|
|
1005
836
|
verts: list[bmesh.types.BMVert] = [],
|
|
1006
837
|
keep_verts: list[bmesh.types.BMVert] = [],
|
|
838
|
+
use_connected: bool = False,
|
|
1007
839
|
dist: float = 0,
|
|
1008
840
|
) -> dict[str, typing.Any]:
|
|
1009
841
|
"""Find Doubles.Takes input verts and find vertices they should weld to.
|
|
@@ -1011,26 +843,22 @@ def find_doubles(
|
|
|
1011
843
|
with vertices in that set.
|
|
1012
844
|
|
|
1013
845
|
:param bm: The bmesh to operate on.
|
|
1014
|
-
:
|
|
1015
|
-
:param
|
|
1016
|
-
:
|
|
1017
|
-
:param
|
|
1018
|
-
:type keep_verts: list[bmesh.types.BMVert]
|
|
1019
|
-
:param dist: maximum distance
|
|
1020
|
-
:type dist: float
|
|
846
|
+
:param verts: Input vertices.
|
|
847
|
+
:param keep_verts: List of verts to keep.
|
|
848
|
+
:param use_connected: Limit the search for doubles by connected geometry.
|
|
849
|
+
:param dist: Maximum distance.
|
|
1021
850
|
:return: targetmap:
|
|
1022
851
|
|
|
1023
852
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1024
|
-
:rtype: dict[str, typing.Any]
|
|
1025
853
|
"""
|
|
1026
854
|
|
|
1027
|
-
def flip_quad_tessellation(
|
|
855
|
+
def flip_quad_tessellation(
|
|
856
|
+
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []
|
|
857
|
+
) -> None:
|
|
1028
858
|
"""Flip Quad TessellationFlip the tessellation direction of the selected quads.
|
|
1029
859
|
|
|
1030
860
|
:param bm: The bmesh to operate on.
|
|
1031
|
-
:
|
|
1032
|
-
:param faces: Undocumented.
|
|
1033
|
-
:type faces: list[bmesh.types.BMFace]
|
|
861
|
+
:param faces: Input faces.
|
|
1034
862
|
"""
|
|
1035
863
|
|
|
1036
864
|
def grid_fill(
|
|
@@ -1043,19 +871,14 @@ def grid_fill(
|
|
|
1043
871
|
"""Grid Fill.Create faces defined by 2 disconnected edge loops (which share edges).
|
|
1044
872
|
|
|
1045
873
|
:param bm: The bmesh to operate on.
|
|
1046
|
-
:
|
|
1047
|
-
:param
|
|
1048
|
-
:
|
|
1049
|
-
:param
|
|
1050
|
-
:
|
|
1051
|
-
|
|
1052
|
-
:type use_smooth: bool
|
|
1053
|
-
:param use_interp_simple: use simple interpolation
|
|
1054
|
-
:type use_interp_simple: bool
|
|
1055
|
-
:return: faces: new faces
|
|
874
|
+
:param edges: Input edges.
|
|
875
|
+
:param mat_nr: Material to use.
|
|
876
|
+
:param use_smooth: Smooth state to use.
|
|
877
|
+
:param use_interp_simple: Use simple interpolation.
|
|
878
|
+
:return: faces:
|
|
879
|
+
New faces.
|
|
1056
880
|
|
|
1057
881
|
type list of (`bmesh.types.BMFace`)
|
|
1058
|
-
:rtype: dict[str, typing.Any]
|
|
1059
882
|
"""
|
|
1060
883
|
|
|
1061
884
|
def holes_fill(
|
|
@@ -1064,15 +887,12 @@ def holes_fill(
|
|
|
1064
887
|
"""Fill Holes.Fill boundary edges with faces, copying surrounding custom-data.
|
|
1065
888
|
|
|
1066
889
|
:param bm: The bmesh to operate on.
|
|
1067
|
-
:
|
|
1068
|
-
:param
|
|
1069
|
-
:
|
|
1070
|
-
|
|
1071
|
-
:type sides: int
|
|
1072
|
-
:return: faces: new faces
|
|
890
|
+
:param edges: Input edges.
|
|
891
|
+
:param sides: Number of face sides to fill.
|
|
892
|
+
:return: faces:
|
|
893
|
+
New faces.
|
|
1073
894
|
|
|
1074
895
|
type list of (`bmesh.types.BMFace`)
|
|
1075
|
-
:rtype: dict[str, typing.Any]
|
|
1076
896
|
"""
|
|
1077
897
|
|
|
1078
898
|
def inset_individual(
|
|
@@ -1087,23 +907,16 @@ def inset_individual(
|
|
|
1087
907
|
"""Face Inset (Individual).Insets individual faces.
|
|
1088
908
|
|
|
1089
909
|
:param bm: The bmesh to operate on.
|
|
1090
|
-
:
|
|
1091
|
-
:param
|
|
1092
|
-
:
|
|
1093
|
-
:param
|
|
1094
|
-
:
|
|
1095
|
-
:param
|
|
1096
|
-
:
|
|
1097
|
-
|
|
1098
|
-
:type use_even_offset: bool
|
|
1099
|
-
:param use_interpolate: blend face data across the inset
|
|
1100
|
-
:type use_interpolate: bool
|
|
1101
|
-
:param use_relative_offset: scale the offset by surrounding geometry
|
|
1102
|
-
:type use_relative_offset: bool
|
|
1103
|
-
:return: faces: output faces
|
|
910
|
+
:param faces: Input faces.
|
|
911
|
+
:param thickness: Thickness.
|
|
912
|
+
:param depth: Depth.
|
|
913
|
+
:param use_even_offset: Scale the offset to give more even thickness.
|
|
914
|
+
:param use_interpolate: Blend face data across the inset.
|
|
915
|
+
:param use_relative_offset: Scale the offset by surrounding geometry.
|
|
916
|
+
:return: faces:
|
|
917
|
+
Output faces.
|
|
1104
918
|
|
|
1105
919
|
type list of (`bmesh.types.BMFace`)
|
|
1106
|
-
:rtype: dict[str, typing.Any]
|
|
1107
920
|
"""
|
|
1108
921
|
|
|
1109
922
|
def inset_region(
|
|
@@ -1122,31 +935,20 @@ def inset_region(
|
|
|
1122
935
|
"""Face Inset (Regions).Inset or outset face regions.
|
|
1123
936
|
|
|
1124
937
|
:param bm: The bmesh to operate on.
|
|
1125
|
-
:
|
|
1126
|
-
:param
|
|
1127
|
-
:
|
|
1128
|
-
:param
|
|
1129
|
-
:
|
|
1130
|
-
:param
|
|
1131
|
-
:
|
|
1132
|
-
:param
|
|
1133
|
-
:
|
|
1134
|
-
:param
|
|
1135
|
-
:
|
|
1136
|
-
|
|
1137
|
-
:type use_relative_offset: bool
|
|
1138
|
-
:param use_edge_rail: inset the region along existing edges
|
|
1139
|
-
:type use_edge_rail: bool
|
|
1140
|
-
:param thickness: thickness
|
|
1141
|
-
:type thickness: float
|
|
1142
|
-
:param depth: depth
|
|
1143
|
-
:type depth: float
|
|
1144
|
-
:param use_outset: outset rather than inset
|
|
1145
|
-
:type use_outset: bool
|
|
1146
|
-
:return: faces: output faces
|
|
938
|
+
:param faces: Input faces.
|
|
939
|
+
:param faces_exclude: Input faces to explicitly exclude from inset.
|
|
940
|
+
:param use_boundary: Inset face boundaries.
|
|
941
|
+
:param use_even_offset: Scale the offset to give more even thickness.
|
|
942
|
+
:param use_interpolate: Blend face data across the inset.
|
|
943
|
+
:param use_relative_offset: Scale the offset by surrounding geometry.
|
|
944
|
+
:param use_edge_rail: Inset the region along existing edges.
|
|
945
|
+
:param thickness: Thickness.
|
|
946
|
+
:param depth: Depth.
|
|
947
|
+
:param use_outset: Outset rather than inset.
|
|
948
|
+
:return: faces:
|
|
949
|
+
Output faces.
|
|
1147
950
|
|
|
1148
951
|
type list of (`bmesh.types.BMFace`)
|
|
1149
|
-
:rtype: dict[str, typing.Any]
|
|
1150
952
|
"""
|
|
1151
953
|
|
|
1152
954
|
def join_triangles(
|
|
@@ -1168,35 +970,22 @@ def join_triangles(
|
|
|
1168
970
|
to angle threshold and delimiters.
|
|
1169
971
|
|
|
1170
972
|
:param bm: The bmesh to operate on.
|
|
1171
|
-
:
|
|
1172
|
-
:param faces: input geometry.
|
|
1173
|
-
:type faces: list[bmesh.types.BMFace]
|
|
973
|
+
:param faces: Input geometry.
|
|
1174
974
|
:param cmp_seam: Compare seam
|
|
1175
|
-
:type cmp_seam: bool
|
|
1176
975
|
:param cmp_sharp: Compare sharp
|
|
1177
|
-
:type cmp_sharp: bool
|
|
1178
976
|
:param cmp_uvs: Compare UVs
|
|
1179
|
-
:
|
|
1180
|
-
:param
|
|
1181
|
-
:type cmp_vcols: bool
|
|
1182
|
-
:param cmp_materials: compare materials
|
|
1183
|
-
:type cmp_materials: bool
|
|
977
|
+
:param cmp_vcols: Compare VCols.
|
|
978
|
+
:param cmp_materials: Compare materials.
|
|
1184
979
|
:param angle_face_threshold: Undocumented.
|
|
1185
|
-
:type angle_face_threshold: float
|
|
1186
980
|
:param angle_shape_threshold: Undocumented.
|
|
1187
|
-
:type angle_shape_threshold: float
|
|
1188
981
|
:param topology_influence: Undocumented.
|
|
1189
|
-
:type topology_influence: float
|
|
1190
982
|
:param deselect_joined: Undocumented.
|
|
1191
|
-
:type deselect_joined: bool
|
|
1192
983
|
:param merge_limit: Undocumented.
|
|
1193
|
-
:type merge_limit: int
|
|
1194
984
|
:param neighbor_debug: Undocumented.
|
|
1195
|
-
:
|
|
1196
|
-
|
|
985
|
+
:return: faces:
|
|
986
|
+
Joined faces.
|
|
1197
987
|
|
|
1198
988
|
type list of (`bmesh.types.BMFace`)
|
|
1199
|
-
:rtype: dict[str, typing.Any]
|
|
1200
989
|
"""
|
|
1201
990
|
|
|
1202
991
|
def mesh_to_bmesh(
|
|
@@ -1204,18 +993,14 @@ def mesh_to_bmesh(
|
|
|
1204
993
|
mesh: bpy.types.Mesh,
|
|
1205
994
|
object: bpy.types.Object,
|
|
1206
995
|
use_shapekey: bool = False,
|
|
1207
|
-
):
|
|
1208
|
-
"""Mesh to BMesh.Load the contents of a mesh into the bmesh. this BMOP is private,
|
|
1209
|
-
reserved exclusively for entering
|
|
996
|
+
) -> None:
|
|
997
|
+
"""Mesh to BMesh.Load the contents of a mesh into the bmesh. this BMOP is private, its
|
|
998
|
+
reserved exclusively for entering edit-mode.
|
|
1210
999
|
|
|
1211
1000
|
:param bm: The bmesh to operate on.
|
|
1212
|
-
:
|
|
1213
|
-
:param
|
|
1214
|
-
:
|
|
1215
|
-
:param object: pointer to an Object structure
|
|
1216
|
-
:type object: bpy.types.Object
|
|
1217
|
-
:param use_shapekey: load active shapekey coordinates into verts
|
|
1218
|
-
:type use_shapekey: bool
|
|
1001
|
+
:param mesh: Pointer to a Mesh structure.
|
|
1002
|
+
:param object: Pointer to an Object structure.
|
|
1003
|
+
:param use_shapekey: Load active shapekey coordinates into verts.
|
|
1219
1004
|
"""
|
|
1220
1005
|
|
|
1221
1006
|
def mirror(
|
|
@@ -1237,41 +1022,29 @@ def mirror(
|
|
|
1237
1022
|
parameter (which defines the minimum distance for welding to happen).
|
|
1238
1023
|
|
|
1239
1024
|
:param bm: The bmesh to operate on.
|
|
1240
|
-
:
|
|
1241
|
-
:param
|
|
1242
|
-
:
|
|
1243
|
-
:param
|
|
1244
|
-
:
|
|
1245
|
-
:param
|
|
1246
|
-
:
|
|
1247
|
-
:param axis: the axis to use.
|
|
1248
|
-
:type axis: typing.Literal['X','Y','Z']
|
|
1249
|
-
:param mirror_u: mirror UVs across the u axis
|
|
1250
|
-
:type mirror_u: bool
|
|
1251
|
-
:param mirror_v: mirror UVs across the v axis
|
|
1252
|
-
:type mirror_v: bool
|
|
1253
|
-
:param mirror_udim: mirror UVs in each tile
|
|
1254
|
-
:type mirror_udim: bool
|
|
1025
|
+
:param geom: Input geometry.
|
|
1026
|
+
:param matrix: Matrix defining the mirror transformation.
|
|
1027
|
+
:param merge_dist: Maximum distance for merging. does no merging if 0.
|
|
1028
|
+
:param axis: The axis to use.
|
|
1029
|
+
:param mirror_u: Mirror UVs across the u axis.
|
|
1030
|
+
:param mirror_v: Mirror UVs across the v axis.
|
|
1031
|
+
:param mirror_udim: Mirror UVs in each tile.
|
|
1255
1032
|
:param use_shapekey: Transform shape keys too.
|
|
1256
|
-
:
|
|
1257
|
-
|
|
1033
|
+
:return: geom:
|
|
1034
|
+
Output geometry, mirrored.
|
|
1258
1035
|
|
|
1259
1036
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1260
|
-
:rtype: dict[str, typing.Any]
|
|
1261
1037
|
"""
|
|
1262
1038
|
|
|
1263
1039
|
def object_load_bmesh(
|
|
1264
1040
|
bm: bmesh.types.BMesh, scene: bpy.types.Scene, object: bpy.types.Object
|
|
1265
|
-
):
|
|
1041
|
+
) -> None:
|
|
1266
1042
|
"""Object Load BMesh.Loads a bmesh into an object/mesh. This is a "private"
|
|
1267
1043
|
BMOP.
|
|
1268
1044
|
|
|
1269
1045
|
:param bm: The bmesh to operate on.
|
|
1270
|
-
:
|
|
1271
|
-
:param
|
|
1272
|
-
:type scene: bpy.types.Scene
|
|
1273
|
-
:param object: pointer to an object structure
|
|
1274
|
-
:type object: bpy.types.Object
|
|
1046
|
+
:param scene: Pointer to an scene structure.
|
|
1047
|
+
:param object: Pointer to an object structure.
|
|
1275
1048
|
"""
|
|
1276
1049
|
|
|
1277
1050
|
def offset_edgeloops(
|
|
@@ -1282,15 +1055,12 @@ def offset_edgeloops(
|
|
|
1282
1055
|
"""Edge-loop Offset.Creates edge loops based on simple edge-outset method.
|
|
1283
1056
|
|
|
1284
1057
|
:param bm: The bmesh to operate on.
|
|
1285
|
-
:
|
|
1286
|
-
:param
|
|
1287
|
-
:
|
|
1288
|
-
|
|
1289
|
-
:type use_cap_endpoint: bool
|
|
1290
|
-
:return: edges: output edges
|
|
1058
|
+
:param edges: Input edges.
|
|
1059
|
+
:param use_cap_endpoint: Extend loop around end-points.
|
|
1060
|
+
:return: edges:
|
|
1061
|
+
Output edges.
|
|
1291
1062
|
|
|
1292
1063
|
type list of (`bmesh.types.BMEdge`)
|
|
1293
|
-
:rtype: dict[str, typing.Any]
|
|
1294
1064
|
"""
|
|
1295
1065
|
|
|
1296
1066
|
def planar_faces(
|
|
@@ -1302,47 +1072,37 @@ def planar_faces(
|
|
|
1302
1072
|
"""Planar Faces.Iteratively flatten faces.
|
|
1303
1073
|
|
|
1304
1074
|
:param bm: The bmesh to operate on.
|
|
1305
|
-
:
|
|
1306
|
-
:param faces: input geometry.
|
|
1307
|
-
:type faces: list[bmesh.types.BMFace]
|
|
1075
|
+
:param faces: Input geometry.
|
|
1308
1076
|
:param iterations: Number of times to flatten faces (for when connected faces are used)
|
|
1309
|
-
:type iterations: int
|
|
1310
1077
|
:param factor: Influence for making planar each iteration
|
|
1311
|
-
:
|
|
1312
|
-
|
|
1078
|
+
:return: geom:
|
|
1079
|
+
Output slot, computed boundary geometry.
|
|
1313
1080
|
|
|
1314
1081
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1315
|
-
:rtype: dict[str, typing.Any]
|
|
1316
1082
|
"""
|
|
1317
1083
|
|
|
1318
1084
|
def pointmerge(
|
|
1319
1085
|
bm: bmesh.types.BMesh,
|
|
1320
1086
|
verts: list[bmesh.types.BMVert] = [],
|
|
1321
1087
|
merge_co: collections.abc.Sequence[float] | mathutils.Vector = mathutils.Vector(),
|
|
1322
|
-
):
|
|
1088
|
+
) -> None:
|
|
1323
1089
|
"""Point Merge.Merge verts together at a point.
|
|
1324
1090
|
|
|
1325
1091
|
:param bm: The bmesh to operate on.
|
|
1326
|
-
:
|
|
1327
|
-
:param verts: input vertices (all verts will be merged into the first).
|
|
1328
|
-
:type verts: list[bmesh.types.BMVert]
|
|
1092
|
+
:param verts: Input vertices (all verts will be merged into the first).
|
|
1329
1093
|
:param merge_co: Position to merge at.
|
|
1330
|
-
:type merge_co: collections.abc.Sequence[float] | mathutils.Vector
|
|
1331
1094
|
"""
|
|
1332
1095
|
|
|
1333
1096
|
def pointmerge_facedata(
|
|
1334
1097
|
bm: bmesh.types.BMesh,
|
|
1335
1098
|
verts: list[bmesh.types.BMVert] = [],
|
|
1336
1099
|
vert_snap: bmesh.types.BMVert | None = None,
|
|
1337
|
-
):
|
|
1100
|
+
) -> None:
|
|
1338
1101
|
"""Face-Data Point Merge.Merge uv/vcols at a specific vertex.
|
|
1339
1102
|
|
|
1340
1103
|
:param bm: The bmesh to operate on.
|
|
1341
|
-
:
|
|
1342
|
-
:param
|
|
1343
|
-
:type verts: list[bmesh.types.BMVert]
|
|
1344
|
-
:param vert_snap: snap vertex
|
|
1345
|
-
:type vert_snap: bmesh.types.BMVert | None
|
|
1104
|
+
:param verts: Input vertices.
|
|
1105
|
+
:param vert_snap: Snap vertex.
|
|
1346
1106
|
"""
|
|
1347
1107
|
|
|
1348
1108
|
def poke(
|
|
@@ -1355,32 +1115,28 @@ def poke(
|
|
|
1355
1115
|
"""Pokes a face.Splits a face into a triangle fan.
|
|
1356
1116
|
|
|
1357
1117
|
:param bm: The bmesh to operate on.
|
|
1358
|
-
:
|
|
1359
|
-
:param
|
|
1360
|
-
:
|
|
1361
|
-
:param
|
|
1362
|
-
:
|
|
1363
|
-
|
|
1364
|
-
:type center_mode: typing.Literal['MEAN_WEIGHTED','MEAN','BOUNDS']
|
|
1365
|
-
:param use_relative_offset: apply offset
|
|
1366
|
-
:type use_relative_offset: bool
|
|
1367
|
-
:return: verts: output verts
|
|
1118
|
+
:param faces: Input faces.
|
|
1119
|
+
:param offset: Center vertex offset along normal.
|
|
1120
|
+
:param center_mode: Calculation mode for center vertex.
|
|
1121
|
+
:param use_relative_offset: Apply offset.
|
|
1122
|
+
:return: verts:
|
|
1123
|
+
Output verts.
|
|
1368
1124
|
|
|
1369
1125
|
type list of (`bmesh.types.BMVert`)
|
|
1370
1126
|
|
|
1371
|
-
faces:
|
|
1127
|
+
faces:
|
|
1128
|
+
Output faces.
|
|
1372
1129
|
|
|
1373
1130
|
type list of (`bmesh.types.BMFace`)
|
|
1374
|
-
:rtype: dict[str, typing.Any]
|
|
1375
1131
|
"""
|
|
1376
1132
|
|
|
1377
|
-
def recalc_face_normals(
|
|
1133
|
+
def recalc_face_normals(
|
|
1134
|
+
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []
|
|
1135
|
+
) -> None:
|
|
1378
1136
|
"""Right-Hand Faces.Computes an "outside" normal for the specified input faces.
|
|
1379
1137
|
|
|
1380
1138
|
:param bm: The bmesh to operate on.
|
|
1381
|
-
:
|
|
1382
|
-
:param faces: input faces
|
|
1383
|
-
:type faces: list[bmesh.types.BMFace]
|
|
1139
|
+
:param faces: Input faces.
|
|
1384
1140
|
"""
|
|
1385
1141
|
|
|
1386
1142
|
def region_extend(
|
|
@@ -1398,71 +1154,59 @@ def region_extend(
|
|
|
1398
1154
|
otherwise it spits out faces.
|
|
1399
1155
|
|
|
1400
1156
|
:param bm: The bmesh to operate on.
|
|
1401
|
-
:
|
|
1402
|
-
:param
|
|
1403
|
-
:
|
|
1404
|
-
:param
|
|
1405
|
-
:
|
|
1406
|
-
|
|
1407
|
-
:type use_faces: bool
|
|
1408
|
-
:param use_face_step: step over connected faces
|
|
1409
|
-
:type use_face_step: bool
|
|
1410
|
-
:return: geom: output slot, computed boundary geometry.
|
|
1157
|
+
:param geom: Input geometry.
|
|
1158
|
+
:param use_contract: Find boundary inside the regions, not outside.
|
|
1159
|
+
:param use_faces: Extend from faces instead of edges.
|
|
1160
|
+
:param use_face_step: Step over connected faces.
|
|
1161
|
+
:return: geom:
|
|
1162
|
+
Output slot, computed boundary geometry.
|
|
1411
1163
|
|
|
1412
1164
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1413
|
-
:rtype: dict[str, typing.Any]
|
|
1414
1165
|
"""
|
|
1415
1166
|
|
|
1416
1167
|
def remove_doubles(
|
|
1417
|
-
bm: bmesh.types.BMesh,
|
|
1418
|
-
|
|
1168
|
+
bm: bmesh.types.BMesh,
|
|
1169
|
+
verts: list[bmesh.types.BMVert] = [],
|
|
1170
|
+
use_connected: bool = False,
|
|
1171
|
+
dist: float = 0,
|
|
1172
|
+
) -> None:
|
|
1419
1173
|
"""Remove Doubles.Finds groups of vertices closer than dist and merges them together,
|
|
1420
1174
|
using the weld verts BMOP.
|
|
1421
1175
|
|
|
1422
1176
|
:param bm: The bmesh to operate on.
|
|
1423
|
-
:
|
|
1424
|
-
:param
|
|
1425
|
-
:
|
|
1426
|
-
:param dist: minimum distance
|
|
1427
|
-
:type dist: float
|
|
1177
|
+
:param verts: Input verts.
|
|
1178
|
+
:param use_connected: Limit the search for doubles by connected geometry.
|
|
1179
|
+
:param dist: Minimum distance.
|
|
1428
1180
|
"""
|
|
1429
1181
|
|
|
1430
1182
|
def reverse_colors(
|
|
1431
1183
|
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], color_index: int = 0
|
|
1432
|
-
):
|
|
1184
|
+
) -> None:
|
|
1433
1185
|
"""Color ReverseReverse the loop colors.
|
|
1434
1186
|
|
|
1435
1187
|
:param bm: The bmesh to operate on.
|
|
1436
|
-
:
|
|
1437
|
-
:param
|
|
1438
|
-
:type faces: list[bmesh.types.BMFace]
|
|
1439
|
-
:param color_index: index into color attribute list
|
|
1440
|
-
:type color_index: int
|
|
1188
|
+
:param faces: Input faces.
|
|
1189
|
+
:param color_index: Index into color attribute list.
|
|
1441
1190
|
"""
|
|
1442
1191
|
|
|
1443
1192
|
def reverse_faces(
|
|
1444
1193
|
bm: bmesh.types.BMesh,
|
|
1445
1194
|
faces: list[bmesh.types.BMFace] = [],
|
|
1446
1195
|
flip_multires: bool = False,
|
|
1447
|
-
):
|
|
1196
|
+
) -> None:
|
|
1448
1197
|
"""Reverse Faces.Reverses the winding (vertex order) of faces.
|
|
1449
1198
|
This has the effect of flipping the normal.
|
|
1450
1199
|
|
|
1451
1200
|
:param bm: The bmesh to operate on.
|
|
1452
|
-
:
|
|
1453
|
-
:param
|
|
1454
|
-
:type faces: list[bmesh.types.BMFace]
|
|
1455
|
-
:param flip_multires: maintain multi-res offset
|
|
1456
|
-
:type flip_multires: bool
|
|
1201
|
+
:param faces: Input faces.
|
|
1202
|
+
:param flip_multires: Maintain multi-res offset.
|
|
1457
1203
|
"""
|
|
1458
1204
|
|
|
1459
|
-
def reverse_uvs(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
|
|
1205
|
+
def reverse_uvs(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []) -> None:
|
|
1460
1206
|
"""UV Reverse.Reverse the UVs
|
|
1461
1207
|
|
|
1462
1208
|
:param bm: The bmesh to operate on.
|
|
1463
|
-
:
|
|
1464
|
-
:param faces: input faces
|
|
1465
|
-
:type faces: list[bmesh.types.BMFace]
|
|
1209
|
+
:param faces: Input faces.
|
|
1466
1210
|
"""
|
|
1467
1211
|
|
|
1468
1212
|
def rotate(
|
|
@@ -1474,21 +1218,15 @@ def rotate(
|
|
|
1474
1218
|
space: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
1475
1219
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
1476
1220
|
use_shapekey: bool = False,
|
|
1477
|
-
):
|
|
1221
|
+
) -> None:
|
|
1478
1222
|
"""Rotate.Rotate vertices around a center, using a 3x3 rotation matrix.
|
|
1479
1223
|
|
|
1480
1224
|
:param bm: The bmesh to operate on.
|
|
1481
|
-
:
|
|
1482
|
-
:param
|
|
1483
|
-
:
|
|
1484
|
-
:param
|
|
1485
|
-
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1486
|
-
:param verts: input vertices
|
|
1487
|
-
:type verts: list[bmesh.types.BMVert]
|
|
1488
|
-
:param space: matrix to define the space (typically object matrix)
|
|
1489
|
-
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1225
|
+
:param cent: Center of rotation.
|
|
1226
|
+
:param matrix: Matrix defining rotation.
|
|
1227
|
+
:param verts: Input vertices.
|
|
1228
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1490
1229
|
:param use_shapekey: Transform shape keys too.
|
|
1491
|
-
:type use_shapekey: bool
|
|
1492
1230
|
"""
|
|
1493
1231
|
|
|
1494
1232
|
def rotate_colors(
|
|
@@ -1496,48 +1234,38 @@ def rotate_colors(
|
|
|
1496
1234
|
faces: list[bmesh.types.BMFace] = [],
|
|
1497
1235
|
use_ccw: bool = False,
|
|
1498
1236
|
color_index: int = 0,
|
|
1499
|
-
):
|
|
1237
|
+
) -> None:
|
|
1500
1238
|
"""Color Rotation.Cycle the loop colors
|
|
1501
1239
|
|
|
1502
1240
|
:param bm: The bmesh to operate on.
|
|
1503
|
-
:
|
|
1504
|
-
:param
|
|
1505
|
-
:
|
|
1506
|
-
:param use_ccw: rotate counter-clockwise if true, otherwise clockwise
|
|
1507
|
-
:type use_ccw: bool
|
|
1508
|
-
:param color_index: index into color attribute list
|
|
1509
|
-
:type color_index: int
|
|
1241
|
+
:param faces: Input faces.
|
|
1242
|
+
:param use_ccw: Rotate counter-clockwise if true, otherwise clockwise.
|
|
1243
|
+
:param color_index: Index into color attribute list.
|
|
1510
1244
|
"""
|
|
1511
1245
|
|
|
1512
1246
|
def rotate_edges(
|
|
1513
1247
|
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], use_ccw: bool = False
|
|
1514
1248
|
) -> dict[str, typing.Any]:
|
|
1515
1249
|
"""Edge Rotate.Rotates edges topologically. Also known as "spin edge" to some people.
|
|
1516
|
-
Simple example: [/] becomes [|] then [].
|
|
1250
|
+
Simple example: [/] becomes [|] then [\].
|
|
1517
1251
|
|
|
1518
1252
|
:param bm: The bmesh to operate on.
|
|
1519
|
-
:
|
|
1520
|
-
:param
|
|
1521
|
-
:
|
|
1522
|
-
|
|
1523
|
-
:type use_ccw: bool
|
|
1524
|
-
:return: edges: newly spun edges
|
|
1253
|
+
:param edges: Input edges.
|
|
1254
|
+
:param use_ccw: Rotate edge counter-clockwise if true, otherwise clockwise.
|
|
1255
|
+
:return: edges:
|
|
1256
|
+
Newly spun edges.
|
|
1525
1257
|
|
|
1526
1258
|
type list of (`bmesh.types.BMEdge`)
|
|
1527
|
-
:rtype: dict[str, typing.Any]
|
|
1528
1259
|
"""
|
|
1529
1260
|
|
|
1530
1261
|
def rotate_uvs(
|
|
1531
1262
|
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], use_ccw: bool = False
|
|
1532
|
-
):
|
|
1263
|
+
) -> None:
|
|
1533
1264
|
"""UV Rotation.Cycle the loop UVs
|
|
1534
1265
|
|
|
1535
1266
|
:param bm: The bmesh to operate on.
|
|
1536
|
-
:
|
|
1537
|
-
:param
|
|
1538
|
-
:type faces: list[bmesh.types.BMFace]
|
|
1539
|
-
:param use_ccw: rotate counter-clockwise if true, otherwise clockwise
|
|
1540
|
-
:type use_ccw: bool
|
|
1267
|
+
:param faces: Input faces.
|
|
1268
|
+
:param use_ccw: Rotate counter-clockwise if true, otherwise clockwise.
|
|
1541
1269
|
"""
|
|
1542
1270
|
|
|
1543
1271
|
def scale(
|
|
@@ -1547,19 +1275,14 @@ def scale(
|
|
|
1547
1275
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
1548
1276
|
verts: list[bmesh.types.BMVert] = [],
|
|
1549
1277
|
use_shapekey: bool = False,
|
|
1550
|
-
):
|
|
1278
|
+
) -> None:
|
|
1551
1279
|
"""Scale.Scales vertices by an offset.
|
|
1552
1280
|
|
|
1553
1281
|
:param bm: The bmesh to operate on.
|
|
1554
|
-
:
|
|
1555
|
-
:param
|
|
1556
|
-
:
|
|
1557
|
-
:param space: matrix to define the space (typically object matrix)
|
|
1558
|
-
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1559
|
-
:param verts: input vertices
|
|
1560
|
-
:type verts: list[bmesh.types.BMVert]
|
|
1282
|
+
:param vec: Scale factor.
|
|
1283
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1284
|
+
:param verts: Input vertices.
|
|
1561
1285
|
:param use_shapekey: Transform shape keys too.
|
|
1562
|
-
:type use_shapekey: bool
|
|
1563
1286
|
"""
|
|
1564
1287
|
|
|
1565
1288
|
def smooth_laplacian_vert(
|
|
@@ -1571,26 +1294,18 @@ def smooth_laplacian_vert(
|
|
|
1571
1294
|
use_y: bool = False,
|
|
1572
1295
|
use_z: bool = False,
|
|
1573
1296
|
preserve_volume: bool = False,
|
|
1574
|
-
):
|
|
1297
|
+
) -> None:
|
|
1575
1298
|
"""Vertex Smooth Laplacian.Smooths vertices by using Laplacian smoothing propose by.
|
|
1576
1299
|
Desbrun, et al. Implicit Fairing of Irregular Meshes using Diffusion and Curvature Flow.
|
|
1577
1300
|
|
|
1578
1301
|
:param bm: The bmesh to operate on.
|
|
1579
|
-
:
|
|
1580
|
-
:param
|
|
1581
|
-
:
|
|
1582
|
-
:param
|
|
1583
|
-
:
|
|
1584
|
-
:param
|
|
1585
|
-
:
|
|
1586
|
-
:param use_x: Smooth object along X axis
|
|
1587
|
-
:type use_x: bool
|
|
1588
|
-
:param use_y: Smooth object along Y axis
|
|
1589
|
-
:type use_y: bool
|
|
1590
|
-
:param use_z: Smooth object along Z axis
|
|
1591
|
-
:type use_z: bool
|
|
1592
|
-
:param preserve_volume: Apply volume preservation after smooth
|
|
1593
|
-
:type preserve_volume: bool
|
|
1302
|
+
:param verts: Input vertices.
|
|
1303
|
+
:param lambda_factor: Lambda parameter.
|
|
1304
|
+
:param lambda_border: Lambda param in border.
|
|
1305
|
+
:param use_x: Smooth object along X axis.
|
|
1306
|
+
:param use_y: Smooth object along Y axis.
|
|
1307
|
+
:param use_z: Smooth object along Z axis.
|
|
1308
|
+
:param preserve_volume: Apply volume preservation after smooth.
|
|
1594
1309
|
"""
|
|
1595
1310
|
|
|
1596
1311
|
def smooth_vert(
|
|
@@ -1604,29 +1319,19 @@ def smooth_vert(
|
|
|
1604
1319
|
use_axis_x: bool = False,
|
|
1605
1320
|
use_axis_y: bool = False,
|
|
1606
1321
|
use_axis_z: bool = False,
|
|
1607
|
-
):
|
|
1322
|
+
) -> None:
|
|
1608
1323
|
"""Vertex Smooth.Smooths vertices by using a basic vertex averaging scheme.
|
|
1609
1324
|
|
|
1610
1325
|
:param bm: The bmesh to operate on.
|
|
1611
|
-
:
|
|
1612
|
-
:param
|
|
1613
|
-
:
|
|
1614
|
-
:param
|
|
1615
|
-
:
|
|
1616
|
-
:param
|
|
1617
|
-
:
|
|
1618
|
-
:param
|
|
1619
|
-
:
|
|
1620
|
-
:param mirror_clip_z: set vertices close to the z axis before the operation to 0
|
|
1621
|
-
:type mirror_clip_z: bool
|
|
1622
|
-
:param clip_dist: clipping threshold for the above three slots
|
|
1623
|
-
:type clip_dist: float
|
|
1624
|
-
:param use_axis_x: smooth vertices along X axis
|
|
1625
|
-
:type use_axis_x: bool
|
|
1626
|
-
:param use_axis_y: smooth vertices along Y axis
|
|
1627
|
-
:type use_axis_y: bool
|
|
1628
|
-
:param use_axis_z: smooth vertices along Z axis
|
|
1629
|
-
:type use_axis_z: bool
|
|
1326
|
+
:param verts: Input vertices.
|
|
1327
|
+
:param factor: Smoothing factor.
|
|
1328
|
+
:param mirror_clip_x: Set vertices close to the x axis before the operation to 0.
|
|
1329
|
+
:param mirror_clip_y: Set vertices close to the y axis before the operation to 0.
|
|
1330
|
+
:param mirror_clip_z: Set vertices close to the z axis before the operation to 0.
|
|
1331
|
+
:param clip_dist: Clipping threshold for the above three slots.
|
|
1332
|
+
:param use_axis_x: Smooth vertices along X axis.
|
|
1333
|
+
:param use_axis_y: Smooth vertices along Y axis.
|
|
1334
|
+
:param use_axis_z: Smooth vertices along Z axis.
|
|
1630
1335
|
"""
|
|
1631
1336
|
|
|
1632
1337
|
def solidify(
|
|
@@ -1639,15 +1344,11 @@ def solidify(
|
|
|
1639
1344
|
"""Solidify.Turns a mesh into a shell with thickness
|
|
1640
1345
|
|
|
1641
1346
|
:param bm: The bmesh to operate on.
|
|
1642
|
-
:
|
|
1643
|
-
:param
|
|
1644
|
-
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
1645
|
-
:param thickness: thickness
|
|
1646
|
-
:type thickness: float
|
|
1347
|
+
:param geom: Input geometry.
|
|
1348
|
+
:param thickness: Thickness.
|
|
1647
1349
|
:return: geom:
|
|
1648
1350
|
|
|
1649
1351
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1650
|
-
:rtype: dict[str, typing.Any]
|
|
1651
1352
|
"""
|
|
1652
1353
|
|
|
1653
1354
|
def spin(
|
|
@@ -1670,31 +1371,20 @@ def spin(
|
|
|
1670
1371
|
rotating and possibly translating after each step
|
|
1671
1372
|
|
|
1672
1373
|
:param bm: The bmesh to operate on.
|
|
1673
|
-
:
|
|
1674
|
-
:param
|
|
1675
|
-
:
|
|
1676
|
-
:param
|
|
1677
|
-
:
|
|
1678
|
-
:param
|
|
1679
|
-
:
|
|
1680
|
-
:param dvec: translation delta per step
|
|
1681
|
-
:type dvec: collections.abc.Sequence[float] | mathutils.Vector
|
|
1682
|
-
:param angle: total rotation angle (radians)
|
|
1683
|
-
:type angle: float
|
|
1684
|
-
:param space: matrix to define the space (typically object matrix)
|
|
1685
|
-
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1686
|
-
:param steps: number of steps
|
|
1687
|
-
:type steps: int
|
|
1374
|
+
:param geom: Input geometry.
|
|
1375
|
+
:param cent: Rotation center.
|
|
1376
|
+
:param axis: Rotation axis.
|
|
1377
|
+
:param dvec: Translation delta per step.
|
|
1378
|
+
:param angle: Total rotation angle (radians).
|
|
1379
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1380
|
+
:param steps: Number of steps.
|
|
1688
1381
|
:param use_merge: Merge first/last when the angle is a full revolution.
|
|
1689
|
-
:type use_merge: bool
|
|
1690
1382
|
:param use_normal_flip: Create faces with reversed direction.
|
|
1691
|
-
:
|
|
1692
|
-
:
|
|
1693
|
-
|
|
1694
|
-
:return: geom_last: result of last step
|
|
1383
|
+
:param use_duplicate: Duplicate or extrude?.
|
|
1384
|
+
:return: geom_last:
|
|
1385
|
+
Result of last step.
|
|
1695
1386
|
|
|
1696
1387
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1697
|
-
:rtype: dict[str, typing.Any]
|
|
1698
1388
|
"""
|
|
1699
1389
|
|
|
1700
1390
|
def split(
|
|
@@ -1709,25 +1399,25 @@ def split(
|
|
|
1709
1399
|
optionally into a destination mesh.
|
|
1710
1400
|
|
|
1711
1401
|
:param bm: The bmesh to operate on.
|
|
1712
|
-
:
|
|
1713
|
-
:param
|
|
1714
|
-
:
|
|
1715
|
-
:param dest: destination bmesh, if None will use current one
|
|
1716
|
-
:type dest: bmesh.types.BMesh | None
|
|
1717
|
-
:param use_only_faces: when enabled. don't duplicate loose verts/edges
|
|
1718
|
-
:type use_only_faces: bool
|
|
1402
|
+
:param geom: Input geometry.
|
|
1403
|
+
:param dest: Destination bmesh, if None will use current one.
|
|
1404
|
+
:param use_only_faces: When enabled. dont duplicate loose verts/edges.
|
|
1719
1405
|
:return: geom:
|
|
1720
1406
|
|
|
1721
1407
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1722
1408
|
|
|
1723
1409
|
boundary_map:
|
|
1410
|
+
Boundary edges from the split geometry that maps edges from the original geometry
|
|
1411
|
+
to the destination edges.
|
|
1412
|
+
|
|
1413
|
+
When the source edges have been deleted, the destination edge will be used
|
|
1414
|
+
for both the key and the value.
|
|
1724
1415
|
|
|
1725
1416
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1726
1417
|
|
|
1727
1418
|
isovert_map:
|
|
1728
1419
|
|
|
1729
1420
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1730
|
-
:rtype: dict[str, typing.Any]
|
|
1731
1421
|
"""
|
|
1732
1422
|
|
|
1733
1423
|
def split_edges(
|
|
@@ -1739,17 +1429,13 @@ def split_edges(
|
|
|
1739
1429
|
"""Edge Split.Disconnects faces along input edges.
|
|
1740
1430
|
|
|
1741
1431
|
:param bm: The bmesh to operate on.
|
|
1742
|
-
:
|
|
1743
|
-
:param
|
|
1744
|
-
:
|
|
1745
|
-
:
|
|
1746
|
-
|
|
1747
|
-
:param use_verts: use 'verts' for splitting, else just find verts to split from edges
|
|
1748
|
-
:type use_verts: bool
|
|
1749
|
-
:return: edges: old output disconnected edges
|
|
1432
|
+
:param edges: Input edges.
|
|
1433
|
+
:param verts: Optional tag verts, use to have greater control of splits.
|
|
1434
|
+
:param use_verts: Use verts for splitting, else just find verts to split from edges.
|
|
1435
|
+
:return: edges:
|
|
1436
|
+
Old output disconnected edges.
|
|
1750
1437
|
|
|
1751
1438
|
type list of (`bmesh.types.BMEdge`)
|
|
1752
|
-
:rtype: dict[str, typing.Any]
|
|
1753
1439
|
"""
|
|
1754
1440
|
|
|
1755
1441
|
def subdivide_edgering(
|
|
@@ -1766,23 +1452,16 @@ def subdivide_edgering(
|
|
|
1766
1452
|
"""Subdivide Edge-Ring.Take an edge-ring, and subdivide with interpolation options.
|
|
1767
1453
|
|
|
1768
1454
|
:param bm: The bmesh to operate on.
|
|
1769
|
-
:
|
|
1770
|
-
:param
|
|
1771
|
-
:
|
|
1772
|
-
:param
|
|
1773
|
-
:
|
|
1774
|
-
:param
|
|
1775
|
-
:
|
|
1776
|
-
|
|
1777
|
-
:type cuts: int
|
|
1778
|
-
:param profile_shape: profile shape type
|
|
1779
|
-
:type profile_shape: typing.Literal['SMOOTH','SPHERE','ROOT','SHARP','LINEAR','INVERSE_SQUARE']
|
|
1780
|
-
:param profile_shape_factor: how much intermediary new edges are shrunk/expanded
|
|
1781
|
-
:type profile_shape_factor: float
|
|
1782
|
-
:return: faces: output faces
|
|
1455
|
+
:param edges: Input vertices.
|
|
1456
|
+
:param interp_mode: Interpolation method.
|
|
1457
|
+
:param smooth: Smoothness factor.
|
|
1458
|
+
:param cuts: Number of cuts.
|
|
1459
|
+
:param profile_shape: Profile shape type.
|
|
1460
|
+
:param profile_shape_factor: How much intermediary new edges are shrunk/expanded.
|
|
1461
|
+
:return: faces:
|
|
1462
|
+
Output faces.
|
|
1783
1463
|
|
|
1784
1464
|
type list of (`bmesh.types.BMFace`)
|
|
1785
|
-
:rtype: dict[str, typing.Any]
|
|
1786
1465
|
"""
|
|
1787
1466
|
|
|
1788
1467
|
def subdivide_edges(
|
|
@@ -1811,35 +1490,21 @@ def subdivide_edges(
|
|
|
1811
1490
|
with options for face patterns, smoothing and randomization.
|
|
1812
1491
|
|
|
1813
1492
|
:param bm: The bmesh to operate on.
|
|
1814
|
-
:
|
|
1815
|
-
:param
|
|
1816
|
-
:
|
|
1817
|
-
:param
|
|
1818
|
-
:
|
|
1819
|
-
:param
|
|
1820
|
-
:
|
|
1821
|
-
:param
|
|
1822
|
-
:type fractal: float
|
|
1823
|
-
:param along_normal: apply fractal displacement along normal only
|
|
1824
|
-
:type along_normal: float
|
|
1825
|
-
:param cuts: number of cuts
|
|
1826
|
-
:type cuts: int
|
|
1827
|
-
:param seed: seed for the random number generator
|
|
1828
|
-
:type seed: int
|
|
1829
|
-
:param custom_patterns: uses custom pointers
|
|
1493
|
+
:param edges: Input edges.
|
|
1494
|
+
:param smooth: Smoothness factor.
|
|
1495
|
+
:param smooth_falloff: Smooth falloff type.
|
|
1496
|
+
:param fractal: Fractal randomness factor.
|
|
1497
|
+
:param along_normal: Apply fractal displacement along normal only.
|
|
1498
|
+
:param cuts: Number of cuts.
|
|
1499
|
+
:param seed: Seed for the random number generator.
|
|
1500
|
+
:param custom_patterns: Uses custom pointers.
|
|
1830
1501
|
:param edge_percents: Undocumented.
|
|
1831
|
-
:param quad_corner_type:
|
|
1832
|
-
:
|
|
1833
|
-
:param
|
|
1834
|
-
:type use_grid_fill: bool
|
|
1835
|
-
:param use_single_edge: tessellate the case of one edge selected in a quad or triangle
|
|
1836
|
-
:type use_single_edge: bool
|
|
1502
|
+
:param quad_corner_type: Quad corner type.
|
|
1503
|
+
:param use_grid_fill: Fill in fully-selected faces with a grid.
|
|
1504
|
+
:param use_single_edge: Tessellate the case of one edge selected in a quad or triangle.
|
|
1837
1505
|
:param use_only_quads: Only subdivide quads (for loop-cut).
|
|
1838
|
-
:
|
|
1839
|
-
:param
|
|
1840
|
-
:type use_sphere: bool
|
|
1841
|
-
:param use_smooth_even: maintain even offset when smoothing
|
|
1842
|
-
:type use_smooth_even: bool
|
|
1506
|
+
:param use_sphere: For making new primitives only.
|
|
1507
|
+
:param use_smooth_even: Maintain even offset when smoothing.
|
|
1843
1508
|
:return: geom_inner:
|
|
1844
1509
|
|
|
1845
1510
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
@@ -1848,10 +1513,10 @@ def subdivide_edges(
|
|
|
1848
1513
|
|
|
1849
1514
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1850
1515
|
|
|
1851
|
-
geom:
|
|
1516
|
+
geom:
|
|
1517
|
+
Contains all output geometry.
|
|
1852
1518
|
|
|
1853
1519
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1854
|
-
:rtype: dict[str, typing.Any]
|
|
1855
1520
|
"""
|
|
1856
1521
|
|
|
1857
1522
|
def symmetrize(
|
|
@@ -1869,19 +1534,13 @@ def symmetrize(
|
|
|
1869
1534
|
symmetry are split as needed to enforce symmetry.All new vertices, edges, and faces are added to the "geom.out" slot.
|
|
1870
1535
|
|
|
1871
1536
|
:param bm: The bmesh to operate on.
|
|
1872
|
-
:
|
|
1873
|
-
:param
|
|
1874
|
-
:
|
|
1875
|
-
:param direction: axis to use
|
|
1876
|
-
:type direction: typing.Literal['-X','-Y','-Z','X','Y','Z']
|
|
1877
|
-
:param dist: minimum distance
|
|
1878
|
-
:type dist: float
|
|
1537
|
+
:param input: Input geometry.
|
|
1538
|
+
:param direction: Axis to use.
|
|
1539
|
+
:param dist: Minimum distance.
|
|
1879
1540
|
:param use_shapekey: Transform shape keys too.
|
|
1880
|
-
:type use_shapekey: bool
|
|
1881
1541
|
:return: geom:
|
|
1882
1542
|
|
|
1883
1543
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1884
|
-
:rtype: dict[str, typing.Any]
|
|
1885
1544
|
"""
|
|
1886
1545
|
|
|
1887
1546
|
def transform(
|
|
@@ -1892,20 +1551,15 @@ def transform(
|
|
|
1892
1551
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
1893
1552
|
verts: list[bmesh.types.BMVert] = [],
|
|
1894
1553
|
use_shapekey: bool = False,
|
|
1895
|
-
):
|
|
1554
|
+
) -> None:
|
|
1896
1555
|
"""Transform.Transforms a set of vertices by a matrix. Multiplies
|
|
1897
1556
|
the vertex coordinates with the matrix.
|
|
1898
1557
|
|
|
1899
1558
|
:param bm: The bmesh to operate on.
|
|
1900
|
-
:
|
|
1901
|
-
:param
|
|
1902
|
-
:
|
|
1903
|
-
:param space: matrix to define the space (typically object matrix)
|
|
1904
|
-
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1905
|
-
:param verts: input vertices
|
|
1906
|
-
:type verts: list[bmesh.types.BMVert]
|
|
1559
|
+
:param matrix: Transform matrix.
|
|
1560
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1561
|
+
:param verts: Input vertices.
|
|
1907
1562
|
:param use_shapekey: Transform shape keys too.
|
|
1908
|
-
:type use_shapekey: bool
|
|
1909
1563
|
"""
|
|
1910
1564
|
|
|
1911
1565
|
def translate(
|
|
@@ -1915,19 +1569,14 @@ def translate(
|
|
|
1915
1569
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
1916
1570
|
verts: list[bmesh.types.BMVert] = [],
|
|
1917
1571
|
use_shapekey: bool = False,
|
|
1918
|
-
):
|
|
1572
|
+
) -> None:
|
|
1919
1573
|
"""Translate.Translate vertices by an offset.
|
|
1920
1574
|
|
|
1921
1575
|
:param bm: The bmesh to operate on.
|
|
1922
|
-
:
|
|
1923
|
-
:param
|
|
1924
|
-
:
|
|
1925
|
-
:param space: matrix to define the space (typically object matrix)
|
|
1926
|
-
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1927
|
-
:param verts: input vertices
|
|
1928
|
-
:type verts: list[bmesh.types.BMVert]
|
|
1576
|
+
:param vec: Translation offset.
|
|
1577
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1578
|
+
:param verts: Input vertices.
|
|
1929
1579
|
:param use_shapekey: Transform shape keys too.
|
|
1930
|
-
:type use_shapekey: bool
|
|
1931
1580
|
"""
|
|
1932
1581
|
|
|
1933
1582
|
def triangle_fill(
|
|
@@ -1940,19 +1589,14 @@ def triangle_fill(
|
|
|
1940
1589
|
"""Triangle Fill.Fill edges with triangles
|
|
1941
1590
|
|
|
1942
1591
|
:param bm: The bmesh to operate on.
|
|
1943
|
-
:
|
|
1944
|
-
:param
|
|
1945
|
-
:
|
|
1946
|
-
:param
|
|
1947
|
-
:
|
|
1948
|
-
|
|
1949
|
-
:type edges: list[bmesh.types.BMEdge]
|
|
1950
|
-
:param normal: optionally pass the fill normal to use
|
|
1951
|
-
:type normal: collections.abc.Sequence[float] | mathutils.Vector
|
|
1952
|
-
:return: geom: new faces and edges
|
|
1592
|
+
:param use_beauty: Use best triangulation division.
|
|
1593
|
+
:param use_dissolve: Dissolve resulting faces.
|
|
1594
|
+
:param edges: Input edges.
|
|
1595
|
+
:param normal: Optionally pass the fill normal to use.
|
|
1596
|
+
:return: geom:
|
|
1597
|
+
New faces and edges.
|
|
1953
1598
|
|
|
1954
1599
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1955
|
-
:rtype: dict[str, typing.Any]
|
|
1956
1600
|
"""
|
|
1957
1601
|
|
|
1958
1602
|
def triangulate(
|
|
@@ -1966,13 +1610,9 @@ def triangulate(
|
|
|
1966
1610
|
"""Triangulate.
|
|
1967
1611
|
|
|
1968
1612
|
:param bm: The bmesh to operate on.
|
|
1969
|
-
:
|
|
1970
|
-
:param
|
|
1971
|
-
:
|
|
1972
|
-
:param quad_method: method for splitting the quads into triangles
|
|
1973
|
-
:type quad_method: typing.Literal['BEAUTY','FIXED','ALTERNATE','SHORT_EDGE','LONG_EDGE']
|
|
1974
|
-
:param ngon_method: method for splitting the polygons into triangles
|
|
1975
|
-
:type ngon_method: typing.Literal['BEAUTY','EAR_CLIP']
|
|
1613
|
+
:param faces: Input faces.
|
|
1614
|
+
:param quad_method: Method for splitting the quads into triangles.
|
|
1615
|
+
:param ngon_method: Method for splitting the polygons into triangles.
|
|
1976
1616
|
:return: edges:
|
|
1977
1617
|
|
|
1978
1618
|
type list of (`bmesh.types.BMEdge`)
|
|
@@ -1985,33 +1625,31 @@ def triangulate(
|
|
|
1985
1625
|
|
|
1986
1626
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1987
1627
|
|
|
1988
|
-
face_map_double:
|
|
1628
|
+
face_map_double:
|
|
1629
|
+
Duplicate faces.
|
|
1989
1630
|
|
|
1990
1631
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1991
|
-
:rtype: dict[str, typing.Any]
|
|
1992
1632
|
"""
|
|
1993
1633
|
|
|
1994
1634
|
def unsubdivide(
|
|
1995
1635
|
bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = [], iterations: int = 0
|
|
1996
|
-
):
|
|
1636
|
+
) -> None:
|
|
1997
1637
|
"""Un-Subdivide.Reduce detail in geometry containing grids.
|
|
1998
1638
|
|
|
1999
1639
|
:param bm: The bmesh to operate on.
|
|
2000
|
-
:
|
|
2001
|
-
:param
|
|
2002
|
-
:type verts: list[bmesh.types.BMVert]
|
|
2003
|
-
:param iterations: number of times to unsubdivide
|
|
2004
|
-
:type iterations: int
|
|
1640
|
+
:param verts: Input vertices.
|
|
1641
|
+
:param iterations: Number of times to unsubdivide.
|
|
2005
1642
|
"""
|
|
2006
1643
|
|
|
2007
|
-
def weld_verts(bm: bmesh.types.BMesh, targetmap={}):
|
|
1644
|
+
def weld_verts(bm: bmesh.types.BMesh, targetmap={}, use_centroid: bool = False) -> None:
|
|
2008
1645
|
"""Weld Verts.Welds verts together (kind-of like remove doubles, merge, etc, all of which
|
|
2009
1646
|
use or will use this BMOP). You pass in mappings from vertices to the vertices
|
|
2010
1647
|
they weld with.
|
|
2011
1648
|
|
|
2012
1649
|
:param bm: The bmesh to operate on.
|
|
2013
|
-
:
|
|
2014
|
-
:param
|
|
1650
|
+
:param targetmap: Maps welded vertices to verts they should weld to.
|
|
1651
|
+
:param use_centroid: Merged vertices to their centroid position,
|
|
1652
|
+
otherwise the position of the target vertex is used.
|
|
2015
1653
|
"""
|
|
2016
1654
|
|
|
2017
1655
|
def wireframe(
|
|
@@ -2030,29 +1668,18 @@ def wireframe(
|
|
|
2030
1668
|
"""Wire Frame.Makes a wire-frame copy of faces.
|
|
2031
1669
|
|
|
2032
1670
|
:param bm: The bmesh to operate on.
|
|
2033
|
-
:
|
|
2034
|
-
:param
|
|
2035
|
-
:
|
|
2036
|
-
:param
|
|
2037
|
-
:
|
|
2038
|
-
:param
|
|
2039
|
-
:
|
|
2040
|
-
:param
|
|
2041
|
-
:
|
|
2042
|
-
:param
|
|
2043
|
-
:
|
|
2044
|
-
|
|
2045
|
-
:type use_even_offset: bool
|
|
2046
|
-
:param use_crease: crease hub edges for improved subdivision surface
|
|
2047
|
-
:type use_crease: bool
|
|
2048
|
-
:param crease_weight: the mean crease weight for resulting edges
|
|
2049
|
-
:type crease_weight: float
|
|
2050
|
-
:param use_relative_offset: scale the offset by surrounding geometry
|
|
2051
|
-
:type use_relative_offset: bool
|
|
2052
|
-
:param material_offset: offset material index of generated faces
|
|
2053
|
-
:type material_offset: int
|
|
2054
|
-
:return: faces: output faces
|
|
1671
|
+
:param faces: Input faces.
|
|
1672
|
+
:param thickness: Thickness.
|
|
1673
|
+
:param offset: Offset the thickness from the center.
|
|
1674
|
+
:param use_replace: Remove original geometry.
|
|
1675
|
+
:param use_boundary: Inset face boundaries.
|
|
1676
|
+
:param use_even_offset: Scale the offset to give more even thickness.
|
|
1677
|
+
:param use_crease: Crease hub edges for improved subdivision surface.
|
|
1678
|
+
:param crease_weight: The mean crease weight for resulting edges.
|
|
1679
|
+
:param use_relative_offset: Scale the offset by surrounding geometry.
|
|
1680
|
+
:param material_offset: Offset material index of generated faces.
|
|
1681
|
+
:return: faces:
|
|
1682
|
+
Output faces.
|
|
2055
1683
|
|
|
2056
1684
|
type list of (`bmesh.types.BMFace`)
|
|
2057
|
-
:rtype: dict[str, typing.Any]
|
|
2058
1685
|
"""
|