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