fake-bpy-module 20250604__py3-none-any.whl → 20250606__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fake-bpy-module might be problematic. Click here for more details.
- _bpy_internal/addons/cli/__init__.pyi +1 -1
- _bpy_internal/extensions/junction_module/__init__.pyi +7 -7
- _bpy_internal/extensions/stale_file_manager/__init__.pyi +8 -8
- _bpy_internal/extensions/wheel_manager/__init__.pyi +3 -3
- _bpy_internal/freedesktop/__init__.pyi +16 -16
- _bpy_internal/grease_pencil/stroke/__init__.pyi +4 -4
- _bpy_internal/system_info/text_generate_runtime/__init__.pyi +1 -1
- _bpy_internal/system_info/url_prefill_runtime/__init__.pyi +1 -1
- _bpy_internal/system_info/url_prefill_startup/__init__.pyi +2 -2
- addon_utils/__init__.pyi +12 -12
- animsys_refactor/__init__.pyi +6 -6
- aud/__init__.pyi +11 -11
- bgl/__init__.pyi +272 -252
- bl_app_override/__init__.pyi +3 -3
- bl_app_override/helpers/__init__.pyi +2 -2
- bl_app_template_utils/__init__.pyi +4 -4
- bl_console_utils/autocomplete/complete_namespace/__init__.pyi +2 -2
- bl_i18n_utils/bl_extract_messages/__init__.pyi +18 -16
- bl_i18n_utils/merge_po/__init__.pyi +1 -1
- bl_i18n_utils/settings/__init__.pyi +6 -6
- bl_i18n_utils/utils/__init__.pyi +48 -46
- bl_i18n_utils/utils_cli/__init__.pyi +6 -6
- bl_i18n_utils/utils_languages_menu/__init__.pyi +1 -1
- bl_i18n_utils/utils_rtl/__init__.pyi +2 -2
- bl_keymap_utils/io/__init__.pyi +9 -9
- bl_keymap_utils/keymap_from_toolbar/__init__.pyi +1 -1
- bl_keymap_utils/keymap_hierarchy/__init__.pyi +1 -1
- bl_keymap_utils/platform_helpers/__init__.pyi +2 -2
- bl_keymap_utils/versioning/__init__.pyi +1 -1
- bl_operators/__init__.pyi +2 -2
- bl_operators/add_mesh_torus/__init__.pyi +6 -6
- bl_operators/anim/__init__.pyi +24 -24
- bl_operators/assets/__init__.pyi +9 -9
- bl_operators/bmesh/find_adjacent/__init__.pyi +11 -9
- bl_operators/bone_selection_sets/__init__.pyi +18 -18
- bl_operators/clip/__init__.pyi +26 -26
- bl_operators/connect_to_output/__init__.pyi +17 -15
- bl_operators/console/__init__.pyi +10 -10
- bl_operators/constraint/__init__.pyi +8 -8
- bl_operators/file/__init__.pyi +6 -6
- bl_operators/freestyle/__init__.pyi +9 -9
- bl_operators/geometry_nodes/__init__.pyi +24 -24
- bl_operators/grease_pencil/__init__.pyi +2 -2
- bl_operators/image/__init__.pyi +7 -7
- bl_operators/image_as_planes/__init__.pyi +32 -32
- bl_operators/mesh/__init__.pyi +7 -7
- bl_operators/node/__init__.pyi +31 -31
- bl_operators/node_editor/node_functions/__init__.pyi +9 -9
- bl_operators/object/__init__.pyi +31 -31
- bl_operators/object_align/__init__.pyi +5 -5
- bl_operators/object_quick_effects/__init__.pyi +9 -9
- bl_operators/object_randomize_transform/__init__.pyi +3 -3
- bl_operators/presets/__init__.pyi +18 -18
- bl_operators/rigidbody/__init__.pyi +7 -7
- bl_operators/screen_play_rendered_anim/__init__.pyi +2 -2
- bl_operators/sequencer/__init__.pyi +19 -19
- bl_operators/spreadsheet/__init__.pyi +4 -4
- bl_operators/userpref/__init__.pyi +42 -42
- bl_operators/uvcalc_follow_active/__init__.pyi +5 -5
- bl_operators/uvcalc_lightmap/__init__.pyi +8 -8
- bl_operators/uvcalc_transform/__init__.pyi +20 -20
- bl_operators/vertexpaint_dirt/__init__.pyi +4 -4
- bl_operators/view3d/__init__.pyi +21 -19
- bl_operators/wm/__init__.pyi +88 -88
- bl_operators/world/__init__.pyi +2 -2
- bl_previews_utils/bl_previews_render/__init__.pyi +9 -7
- bl_rna_utils/data_path/__init__.pyi +2 -2
- bl_text_utils/external_editor/__init__.pyi +1 -1
- bl_ui/__init__.pyi +10 -10
- bl_ui/anim/__init__.pyi +2 -2
- bl_ui/asset_shelf/__init__.pyi +2 -2
- bl_ui/generic_ui_list/__init__.pyi +6 -6
- bl_ui/node_add_menu/__init__.pyi +15 -13
- bl_ui/node_add_menu_compositor/__init__.pyi +18 -18
- bl_ui/node_add_menu_geometry/__init__.pyi +54 -54
- bl_ui/node_add_menu_shader/__init__.pyi +16 -16
- bl_ui/node_add_menu_texture/__init__.pyi +9 -9
- bl_ui/properties_animviz/__init__.pyi +2 -2
- bl_ui/properties_collection/__init__.pyi +10 -8
- bl_ui/properties_constraint/__init__.pyi +125 -125
- bl_ui/properties_data_armature/__init__.pyi +22 -22
- bl_ui/properties_data_bone/__init__.pyi +20 -20
- bl_ui/properties_data_camera/__init__.pyi +19 -19
- bl_ui/properties_data_curve/__init__.pyi +23 -23
- bl_ui/properties_data_curves/__init__.pyi +9 -9
- bl_ui/properties_data_empty/__init__.pyi +4 -4
- bl_ui/properties_data_grease_pencil/__init__.pyi +25 -25
- bl_ui/properties_data_lattice/__init__.pyi +4 -4
- bl_ui/properties_data_light/__init__.pyi +14 -14
- bl_ui/properties_data_lightprobe/__init__.pyi +18 -18
- bl_ui/properties_data_mesh/__init__.pyi +26 -26
- bl_ui/properties_data_metaball/__init__.pyi +6 -6
- bl_ui/properties_data_modifier/__init__.pyi +12 -12
- bl_ui/properties_data_pointcloud/__init__.pyi +8 -8
- bl_ui/properties_data_shaderfx/__init__.pyi +1 -1
- bl_ui/properties_data_speaker/__init__.pyi +5 -5
- bl_ui/properties_data_volume/__init__.pyi +9 -9
- bl_ui/properties_freestyle/__init__.pyi +51 -51
- bl_ui/properties_grease_pencil_common/__init__.pyi +30 -30
- bl_ui/properties_mask_common/__init__.pyi +24 -24
- bl_ui/properties_material/__init__.pyi +27 -27
- bl_ui/properties_material_gpencil/__init__.pyi +12 -12
- bl_ui/properties_object/__init__.pyi +29 -29
- bl_ui/properties_output/__init__.pyi +29 -29
- bl_ui/properties_paint_common/__init__.pyi +59 -49
- bl_ui/properties_particle/__init__.pyi +101 -101
- bl_ui/properties_physics_cloth/__init__.pyi +20 -20
- bl_ui/properties_physics_common/__init__.pyi +8 -8
- bl_ui/properties_physics_dynamicpaint/__init__.pyi +57 -57
- bl_ui/properties_physics_field/__init__.pyi +23 -23
- bl_ui/properties_physics_fluid/__init__.pyi +76 -76
- bl_ui/properties_physics_geometry_nodes/__init__.pyi +3 -3
- bl_ui/properties_physics_rigidbody/__init__.pyi +18 -18
- bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +29 -29
- bl_ui/properties_physics_softbody/__init__.pyi +21 -21
- bl_ui/properties_render/__init__.pyi +81 -81
- bl_ui/properties_scene/__init__.pyi +22 -22
- bl_ui/properties_texture/__init__.pyi +39 -39
- bl_ui/properties_view_layer/__init__.pyi +12 -12
- bl_ui/properties_workspace/__init__.pyi +5 -5
- bl_ui/properties_world/__init__.pyi +18 -18
- bl_ui/space_clip/__init__.pyi +81 -81
- bl_ui/space_console/__init__.pyi +6 -6
- bl_ui/space_dopesheet/__init__.pyi +32 -32
- bl_ui/space_filebrowser/__init__.pyi +45 -45
- bl_ui/space_graph/__init__.pyi +21 -21
- bl_ui/space_image/__init__.pyi +73 -73
- bl_ui/space_info/__init__.pyi +6 -6
- bl_ui/space_nla/__init__.pyi +18 -18
- bl_ui/space_node/__init__.pyi +42 -42
- bl_ui/space_outliner/__init__.pyi +21 -21
- bl_ui/space_properties/__init__.pyi +6 -6
- bl_ui/space_sequencer/__init__.pyi +133 -133
- bl_ui/space_spreadsheet/__init__.pyi +4 -4
- bl_ui/space_statusbar/__init__.pyi +1 -1
- bl_ui/space_text/__init__.pyi +17 -17
- bl_ui/space_time/__init__.pyi +12 -12
- bl_ui/space_toolsystem_common/__init__.pyi +28 -26
- bl_ui/space_toolsystem_toolbar/__init__.pyi +36 -36
- bl_ui/space_topbar/__init__.pyi +32 -32
- bl_ui/space_userpref/__init__.pyi +132 -132
- bl_ui/space_view3d/__init__.pyi +297 -297
- bl_ui/space_view3d_toolbar/__init__.pyi +148 -149
- bl_ui/utils/__init__.pyi +5 -5
- bl_ui_utils/layout/__init__.pyi +1 -1
- blend_render_info/__init__.pyi +2 -2
- blf/__init__.pyi +15 -15
- bmesh/__init__.pyi +1 -1
- bmesh/ops/__init__.pyi +366 -357
- bmesh/types/__init__.pyi +59 -57
- bmesh/utils/__init__.pyi +2 -2
- bpy/app/__init__.pyi +3 -3
- bpy/app/icons/__init__.pyi +1 -1
- bpy/app/timers/__init__.pyi +2 -2
- bpy/app/translations/__init__.pyi +9 -9
- bpy/msgbus/__init__.pyi +3 -3
- bpy/ops/action/__init__.pyi +62 -38
- bpy/ops/anim/__init__.pyi +63 -61
- bpy/ops/armature/__init__.pyi +58 -48
- bpy/ops/asset/__init__.pyi +31 -17
- bpy/ops/boid/__init__.pyi +18 -8
- bpy/ops/brush/__init__.pyi +19 -13
- bpy/ops/buttons/__init__.pyi +14 -6
- bpy/ops/cachefile/__init__.pyi +9 -5
- bpy/ops/camera/__init__.pyi +2 -2
- bpy/ops/clip/__init__.pyi +112 -92
- bpy/ops/cloth/__init__.pyi +1 -1
- bpy/ops/collection/__init__.pyi +11 -9
- bpy/ops/console/__init__.pyi +37 -21
- bpy/ops/constraint/__init__.pyi +20 -18
- bpy/ops/curve/__init__.pyi +81 -51
- bpy/ops/curves/__init__.pyi +50 -30
- bpy/ops/cycles/__init__.pyi +3 -3
- bpy/ops/dpaint/__init__.pyi +5 -5
- bpy/ops/ed/__init__.pyi +19 -13
- bpy/ops/export_anim/__init__.pyi +1 -1
- bpy/ops/export_scene/__init__.pyi +2 -2
- bpy/ops/extensions/__init__.pyi +38 -32
- bpy/ops/file/__init__.pyi +72 -40
- bpy/ops/fluid/__init__.pyi +36 -14
- bpy/ops/font/__init__.pyi +41 -23
- bpy/ops/geometry/__init__.pyi +10 -10
- bpy/ops/gizmogroup/__init__.pyi +4 -2
- bpy/ops/gpencil/__init__.pyi +12 -8
- bpy/ops/graph/__init__.pyi +81 -65
- bpy/ops/grease_pencil/__init__.pyi +159 -115
- bpy/ops/image/__init__.pyi +63 -49
- bpy/ops/import_anim/__init__.pyi +1 -1
- bpy/ops/import_curve/__init__.pyi +1 -1
- bpy/ops/import_scene/__init__.pyi +2 -2
- bpy/ops/info/__init__.pyi +13 -7
- bpy/ops/lattice/__init__.pyi +14 -8
- bpy/ops/marker/__init__.pyi +13 -11
- bpy/ops/mask/__init__.pyi +59 -39
- bpy/ops/material/__init__.pyi +3 -3
- bpy/ops/mball/__init__.pyi +8 -8
- bpy/ops/mesh/__init__.pyi +182 -164
- bpy/ops/nla/__init__.pyi +65 -39
- bpy/ops/node/__init__.pyi +181 -147
- bpy/ops/object/__init__.pyi +262 -242
- bpy/ops/outliner/__init__.pyi +98 -72
- bpy/ops/paint/__init__.pyi +58 -54
- bpy/ops/paintcurve/__init__.pyi +12 -8
- bpy/ops/palette/__init__.pyi +11 -7
- bpy/ops/particle/__init__.pyi +58 -36
- bpy/ops/pointcloud/__init__.pyi +13 -7
- bpy/ops/pose/__init__.pyi +65 -51
- bpy/ops/poselib/__init__.pyi +17 -11
- bpy/ops/preferences/__init__.pyi +41 -35
- bpy/ops/ptcache/__init__.pyi +13 -7
- bpy/ops/render/__init__.pyi +17 -13
- bpy/ops/rigidbody/__init__.pyi +19 -13
- bpy/ops/scene/__init__.pyi +39 -37
- bpy/ops/screen/__init__.pyi +59 -39
- bpy/ops/script/__init__.pyi +5 -3
- bpy/ops/sculpt/__init__.pyi +44 -40
- bpy/ops/sculpt_curves/__init__.pyi +4 -4
- bpy/ops/sequencer/__init__.pyi +142 -100
- bpy/ops/sound/__init__.pyi +7 -7
- bpy/ops/spreadsheet/__init__.pyi +13 -7
- bpy/ops/surface/__init__.pyi +6 -6
- bpy/ops/text/__init__.pyi +73 -43
- bpy/ops/text_editor/__init__.pyi +1 -1
- bpy/ops/texture/__init__.pyi +8 -4
- bpy/ops/transform/__init__.pyi +29 -27
- bpy/ops/ui/__init__.pyi +42 -34
- bpy/ops/uilist/__init__.pyi +3 -3
- bpy/ops/uv/__init__.pyi +59 -49
- bpy/ops/view2d/__init__.pyi +14 -14
- bpy/ops/view3d/__init__.pyi +87 -67
- bpy/ops/wm/__init__.pyi +138 -116
- bpy/ops/workspace/__init__.pyi +11 -7
- bpy/ops/world/__init__.pyi +2 -2
- bpy/props/__init__.pyi +16 -13
- bpy/types/__init__.pyi +1206 -1157
- bpy/utils/__init__.pyi +23 -23
- bpy/utils/previews/__init__.pyi +3 -3
- bpy_extras/anim_utils/__init__.pyi +7 -7
- bpy_extras/bmesh_utils/__init__.pyi +1 -1
- bpy_extras/id_map_utils/__init__.pyi +3 -3
- bpy_extras/io_utils/__init__.pyi +14 -12
- bpy_extras/keyconfig_utils/__init__.pyi +3 -3
- bpy_extras/mesh_utils/__init__.pyi +2 -2
- bpy_extras/node_shader_utils/__init__.pyi +63 -63
- bpy_extras/node_utils/__init__.pyi +3 -3
- bpy_extras/object_utils/__init__.pyi +4 -4
- bpy_extras/wm_utils/progress_report/__init__.pyi +10 -10
- bpy_types/__init__.pyi +4 -4
- console_python/__init__.pyi +7 -7
- console_shell/__init__.pyi +5 -5
- {fake_bpy_module-20250604.dist-info → fake_bpy_module-20250606.dist-info}/METADATA +1 -1
- fake_bpy_module-20250606.dist-info/RECORD +367 -0
- freestyle/chainingiterators/__init__.pyi +35 -33
- freestyle/functions/__init__.pyi +55 -55
- freestyle/predicates/__init__.pyi +8 -8
- freestyle/shaders/__init__.pyi +79 -75
- freestyle/types/__init__.pyi +146 -142
- freestyle/utils/ContextFunctions/__init__.pyi +3 -1
- freestyle/utils/__init__.pyi +25 -25
- gpu/matrix/__init__.pyi +14 -14
- gpu/select/__init__.pyi +1 -1
- gpu/shader/__init__.pyi +1 -1
- gpu/state/__init__.pyi +19 -19
- gpu/types/__init__.pyi +50 -44
- gpu_extras/presets/__init__.pyi +2 -2
- graphviz_export/__init__.pyi +2 -2
- idprop/types/__init__.pyi +9 -9
- imbuf/__init__.pyi +3 -1
- imbuf/types/__init__.pyi +3 -3
- keyingsets_builtins/__init__.pyi +26 -26
- keyingsets_utils/__init__.pyi +14 -14
- mathutils/__init__.pyi +61 -53
- mathutils/bvhtree/__init__.pyi +4 -4
- mathutils/kdtree/__init__.pyi +3 -3
- mathutils/noise/__init__.pyi +1 -1
- nodeitems_builtins/__init__.pyi +4 -4
- nodeitems_utils/__init__.pyi +9 -9
- rna_info/__init__.pyi +25 -25
- rna_keymap_ui/__init__.pyi +6 -6
- rna_prop_ui/__init__.pyi +12 -12
- rna_xml/__init__.pyi +6 -6
- fake_bpy_module-20250604.dist-info/RECORD +0 -367
- {fake_bpy_module-20250604.dist-info → fake_bpy_module-20250606.dist-info}/WHEEL +0 -0
- {fake_bpy_module-20250604.dist-info → fake_bpy_module-20250606.dist-info}/top_level.txt +0 -0
bmesh/ops/__init__.pyi
CHANGED
|
@@ -21,14 +21,16 @@ import bmesh.types
|
|
|
21
21
|
import bpy.types
|
|
22
22
|
import mathutils
|
|
23
23
|
|
|
24
|
-
def average_vert_facedata(
|
|
24
|
+
def average_vert_facedata(
|
|
25
|
+
bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = []
|
|
26
|
+
) -> None:
|
|
25
27
|
"""Average Vertices Face-vert Data.Merge uv/vcols associated with the input vertices at
|
|
26
28
|
the bounding box center. (I know, it's not averaging but
|
|
27
29
|
the vert_snap_to_bb_center is just too long).
|
|
28
30
|
|
|
29
31
|
:param bm: The bmesh to operate on.
|
|
30
32
|
:type bm: bmesh.types.BMesh
|
|
31
|
-
:param verts:
|
|
33
|
+
:param verts: Input vertices.
|
|
32
34
|
:type verts: list[bmesh.types.BMVert]
|
|
33
35
|
"""
|
|
34
36
|
|
|
@@ -43,15 +45,15 @@ def beautify_fill(
|
|
|
43
45
|
|
|
44
46
|
:param bm: The bmesh to operate on.
|
|
45
47
|
:type bm: bmesh.types.BMesh
|
|
46
|
-
:param faces:
|
|
48
|
+
:param faces: Input faces.
|
|
47
49
|
:type faces: list[bmesh.types.BMFace]
|
|
48
|
-
:param edges:
|
|
50
|
+
:param edges: Edges that can be flipped.
|
|
49
51
|
:type edges: list[bmesh.types.BMEdge]
|
|
50
|
-
:param use_restrict_tag:
|
|
52
|
+
:param use_restrict_tag: Restrict edge rotation to mixed tagged vertices.
|
|
51
53
|
:type use_restrict_tag: bool
|
|
52
|
-
:param method:
|
|
54
|
+
:param method: Method to define what is beautiful.
|
|
53
55
|
:type method: typing.Literal['AREA','ANGLE']
|
|
54
|
-
:return: geom:
|
|
56
|
+
:return: geom: New flipped faces and edges.
|
|
55
57
|
|
|
56
58
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
57
59
|
:rtype: dict[str, typing.Any]
|
|
@@ -87,53 +89,53 @@ def bevel(
|
|
|
87
89
|
|
|
88
90
|
:param bm: The bmesh to operate on.
|
|
89
91
|
:type bm: bmesh.types.BMesh
|
|
90
|
-
:param geom:
|
|
92
|
+
:param geom: Input edges and vertices.
|
|
91
93
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
92
|
-
:param offset:
|
|
94
|
+
:param offset: Amount to offset beveled edge.
|
|
93
95
|
:type offset: float
|
|
94
|
-
:param offset_type:
|
|
96
|
+
:param offset_type: How to measure the offset.
|
|
95
97
|
:type offset_type: typing.Literal['OFFSET','WIDTH','DEPTH','PERCENT','ABSOLUTE']
|
|
96
98
|
:param profile_type: The profile type to use for bevel.
|
|
97
99
|
:type profile_type: typing.Literal['SUPERELLIPSE','CUSTOM']
|
|
98
|
-
:param segments:
|
|
100
|
+
:param segments: Number of segments in bevel.
|
|
99
101
|
:type segments: int
|
|
100
|
-
:param profile:
|
|
102
|
+
:param profile: Profile shape, 0->1 (.5=>round).
|
|
101
103
|
:type profile: float
|
|
102
104
|
:param affect: Whether to bevel vertices or edges.
|
|
103
105
|
:type affect: typing.Literal['VERTICES','EDGES']
|
|
104
|
-
:param clamp_overlap:
|
|
106
|
+
:param clamp_overlap: Do not allow beveled edges/vertices to overlap each other.
|
|
105
107
|
:type clamp_overlap: bool
|
|
106
|
-
:param material:
|
|
108
|
+
:param material: Material for bevel faces, -1 means get from adjacent faces.
|
|
107
109
|
:type material: int
|
|
108
|
-
:param loop_slide:
|
|
110
|
+
:param loop_slide: Prefer to slide along edges to having even widths.
|
|
109
111
|
:type loop_slide: bool
|
|
110
|
-
:param mark_seam:
|
|
112
|
+
:param mark_seam: Extend edge data to allow seams to run across bevels.
|
|
111
113
|
:type mark_seam: bool
|
|
112
|
-
:param mark_sharp:
|
|
114
|
+
:param mark_sharp: Extend edge data to allow sharp edges to run across bevels.
|
|
113
115
|
:type mark_sharp: bool
|
|
114
|
-
:param harden_normals:
|
|
116
|
+
:param harden_normals: Harden normals.
|
|
115
117
|
:type harden_normals: bool
|
|
116
|
-
:param face_strength_mode:
|
|
118
|
+
:param face_strength_mode: Whether to set face strength, and which faces to set if so.
|
|
117
119
|
:type face_strength_mode: typing.Literal['NONE','NEW','AFFECTED','ALL']
|
|
118
|
-
:param miter_outer:
|
|
120
|
+
:param miter_outer: Outer miter kind.
|
|
119
121
|
:type miter_outer: typing.Literal['SHARP','PATCH','ARC']
|
|
120
|
-
:param miter_inner:
|
|
122
|
+
:param miter_inner: Outer miter kind.
|
|
121
123
|
:type miter_inner: typing.Literal['SHARP','PATCH','ARC']
|
|
122
|
-
:param spread:
|
|
124
|
+
:param spread: Amount to offset beveled edge.
|
|
123
125
|
:type spread: float
|
|
124
126
|
:param custom_profile: CurveProfile, if None ignored
|
|
125
127
|
:type custom_profile: bpy.types.bpy_struct | None
|
|
126
128
|
:param vmesh_method: The method to use to create meshes at intersections.
|
|
127
129
|
:type vmesh_method: typing.Literal['ADJ','CUTOFF']
|
|
128
|
-
:return: faces:
|
|
130
|
+
:return: faces: Output faces.
|
|
129
131
|
|
|
130
132
|
type list of (`bmesh.types.BMFace`)
|
|
131
133
|
|
|
132
|
-
edges:
|
|
134
|
+
edges: Output edges.
|
|
133
135
|
|
|
134
136
|
type list of (`bmesh.types.BMEdge`)
|
|
135
137
|
|
|
136
|
-
verts:
|
|
138
|
+
verts: Output verts.
|
|
137
139
|
|
|
138
140
|
type list of (`bmesh.types.BMVert`)
|
|
139
141
|
:rtype: dict[str, typing.Any]
|
|
@@ -150,12 +152,12 @@ def bisect_edges(
|
|
|
150
152
|
|
|
151
153
|
:param bm: The bmesh to operate on.
|
|
152
154
|
:type bm: bmesh.types.BMesh
|
|
153
|
-
:param edges:
|
|
155
|
+
:param edges: Input edges.
|
|
154
156
|
:type edges: list[bmesh.types.BMEdge]
|
|
155
|
-
:param cuts:
|
|
157
|
+
:param cuts: Number of cuts.
|
|
156
158
|
:type cuts: int
|
|
157
159
|
:param edge_percents: Undocumented.
|
|
158
|
-
:return: geom_split:
|
|
160
|
+
:return: geom_split: Newly created vertices and edges.
|
|
159
161
|
|
|
160
162
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
161
163
|
:rtype: dict[str, typing.Any]
|
|
@@ -177,25 +179,25 @@ def bisect_plane(
|
|
|
177
179
|
|
|
178
180
|
:param bm: The bmesh to operate on.
|
|
179
181
|
:type bm: bmesh.types.BMesh
|
|
180
|
-
:param geom:
|
|
182
|
+
:param geom: Input geometry.
|
|
181
183
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
182
|
-
:param dist:
|
|
184
|
+
:param dist: Minimum distance when testing if a vert is exactly on the plane.
|
|
183
185
|
:type dist: float
|
|
184
|
-
:param plane_co:
|
|
186
|
+
:param plane_co: Point on the plane.
|
|
185
187
|
:type plane_co: collections.abc.Sequence[float] | mathutils.Vector
|
|
186
|
-
:param plane_no:
|
|
188
|
+
:param plane_no: Direction of the plane.
|
|
187
189
|
:type plane_no: collections.abc.Sequence[float] | mathutils.Vector
|
|
188
|
-
:param use_snap_center:
|
|
190
|
+
:param use_snap_center: Snap axis aligned verts to the center.
|
|
189
191
|
:type use_snap_center: bool
|
|
190
|
-
:param clear_outer:
|
|
192
|
+
:param clear_outer: When enabled. remove all geometry on the positive side of the plane.
|
|
191
193
|
:type clear_outer: bool
|
|
192
|
-
:param clear_inner:
|
|
194
|
+
:param clear_inner: When enabled. remove all geometry on the negative side of the plane.
|
|
193
195
|
:type clear_inner: bool
|
|
194
|
-
:return: geom_cut:
|
|
196
|
+
:return: geom_cut: Output geometry aligned with the plane (new and existing).
|
|
195
197
|
|
|
196
198
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`)
|
|
197
199
|
|
|
198
|
-
geom:
|
|
200
|
+
geom: Input and output geometry (result of cut).
|
|
199
201
|
|
|
200
202
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
201
203
|
:rtype: dict[str, typing.Any]
|
|
@@ -203,14 +205,14 @@ def bisect_plane(
|
|
|
203
205
|
|
|
204
206
|
def bmesh_to_mesh(
|
|
205
207
|
bm: bmesh.types.BMesh, mesh: bpy.types.Mesh, object: bpy.types.Object
|
|
206
|
-
):
|
|
207
|
-
"""BMesh to Mesh.Converts a bmesh to a Mesh. This is reserved for exiting
|
|
208
|
+
) -> None:
|
|
209
|
+
"""BMesh to Mesh.Converts a bmesh to a Mesh. This is reserved for exiting edit-mode.
|
|
208
210
|
|
|
209
211
|
:param bm: The bmesh to operate on.
|
|
210
212
|
:type bm: bmesh.types.BMesh
|
|
211
|
-
:param mesh:
|
|
213
|
+
:param mesh: Pointer to a mesh structure to fill in.
|
|
212
214
|
:type mesh: bpy.types.Mesh
|
|
213
|
-
:param object:
|
|
215
|
+
:param object: Pointer to an object structure.
|
|
214
216
|
:type object: bpy.types.Object
|
|
215
217
|
"""
|
|
216
218
|
|
|
@@ -227,23 +229,23 @@ def bridge_loops(
|
|
|
227
229
|
|
|
228
230
|
:param bm: The bmesh to operate on.
|
|
229
231
|
:type bm: bmesh.types.BMesh
|
|
230
|
-
:param edges:
|
|
232
|
+
:param edges: Input edges.
|
|
231
233
|
:type edges: list[bmesh.types.BMEdge]
|
|
232
234
|
:param use_pairs: Undocumented.
|
|
233
235
|
:type use_pairs: bool
|
|
234
236
|
:param use_cyclic: Undocumented.
|
|
235
237
|
:type use_cyclic: bool
|
|
236
|
-
:param use_merge:
|
|
238
|
+
:param use_merge: Merge rather than creating faces.
|
|
237
239
|
:type use_merge: bool
|
|
238
240
|
:param merge_factor: merge factor
|
|
239
241
|
:type merge_factor: float
|
|
240
|
-
:param twist_offset:
|
|
242
|
+
:param twist_offset: Twist offset for closed loops.
|
|
241
243
|
:type twist_offset: int
|
|
242
|
-
:return: faces:
|
|
244
|
+
:return: faces: New faces.
|
|
243
245
|
|
|
244
246
|
type list of (`bmesh.types.BMFace`)
|
|
245
247
|
|
|
246
|
-
edges:
|
|
248
|
+
edges: New edges.
|
|
247
249
|
|
|
248
250
|
type list of (`bmesh.types.BMEdge`)
|
|
249
251
|
:rtype: dict[str, typing.Any]
|
|
@@ -251,23 +253,23 @@ def bridge_loops(
|
|
|
251
253
|
|
|
252
254
|
def collapse(
|
|
253
255
|
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], uvs: bool = False
|
|
254
|
-
):
|
|
256
|
+
) -> None:
|
|
255
257
|
"""Collapse Connected.Collapses connected vertices
|
|
256
258
|
|
|
257
259
|
:param bm: The bmesh to operate on.
|
|
258
260
|
:type bm: bmesh.types.BMesh
|
|
259
|
-
:param edges:
|
|
261
|
+
:param edges: Input edges.
|
|
260
262
|
:type edges: list[bmesh.types.BMEdge]
|
|
261
|
-
:param uvs:
|
|
263
|
+
:param uvs: Also collapse UVs and such.
|
|
262
264
|
:type uvs: bool
|
|
263
265
|
"""
|
|
264
266
|
|
|
265
|
-
def collapse_uvs(bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []):
|
|
267
|
+
def collapse_uvs(bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []) -> None:
|
|
266
268
|
"""Collapse Connected UVs.Collapses connected UV vertices.
|
|
267
269
|
|
|
268
270
|
:param bm: The bmesh to operate on.
|
|
269
271
|
:type bm: bmesh.types.BMesh
|
|
270
|
-
:param edges:
|
|
272
|
+
:param edges: Input edges.
|
|
271
273
|
:type edges: list[bmesh.types.BMEdge]
|
|
272
274
|
"""
|
|
273
275
|
|
|
@@ -281,11 +283,11 @@ def connect_vert_pair(
|
|
|
281
283
|
|
|
282
284
|
:param bm: The bmesh to operate on.
|
|
283
285
|
:type bm: bmesh.types.BMesh
|
|
284
|
-
:param verts:
|
|
286
|
+
:param verts: Input vertices.
|
|
285
287
|
:type verts: list[bmesh.types.BMVert]
|
|
286
|
-
:param verts_exclude:
|
|
288
|
+
:param verts_exclude: Input vertices to explicitly exclude from connecting.
|
|
287
289
|
:type verts_exclude: list[bmesh.types.BMVert]
|
|
288
|
-
:param faces_exclude:
|
|
290
|
+
:param faces_exclude: Input faces to explicitly exclude from connecting.
|
|
289
291
|
:type faces_exclude: list[bmesh.types.BMFace]
|
|
290
292
|
:return: edges:
|
|
291
293
|
|
|
@@ -303,11 +305,11 @@ def connect_verts(
|
|
|
303
305
|
|
|
304
306
|
:param bm: The bmesh to operate on.
|
|
305
307
|
:type bm: bmesh.types.BMesh
|
|
306
|
-
:param verts:
|
|
308
|
+
:param verts: Input vertices.
|
|
307
309
|
:type verts: list[bmesh.types.BMVert]
|
|
308
|
-
:param faces_exclude:
|
|
310
|
+
:param faces_exclude: Input faces to explicitly exclude from connecting.
|
|
309
311
|
:type faces_exclude: list[bmesh.types.BMFace]
|
|
310
|
-
:param check_degenerate:
|
|
312
|
+
:param check_degenerate: Prevent splits with overlaps & intersections.
|
|
311
313
|
:type check_degenerate: bool
|
|
312
314
|
:return: edges:
|
|
313
315
|
|
|
@@ -322,7 +324,7 @@ def connect_verts_concave(
|
|
|
322
324
|
|
|
323
325
|
:param bm: The bmesh to operate on.
|
|
324
326
|
:type bm: bmesh.types.BMesh
|
|
325
|
-
:param faces:
|
|
327
|
+
:param faces: Input faces.
|
|
326
328
|
:type faces: list[bmesh.types.BMFace]
|
|
327
329
|
:return: edges:
|
|
328
330
|
|
|
@@ -341,9 +343,9 @@ def connect_verts_nonplanar(
|
|
|
341
343
|
|
|
342
344
|
:param bm: The bmesh to operate on.
|
|
343
345
|
:type bm: bmesh.types.BMesh
|
|
344
|
-
:param angle_limit:
|
|
346
|
+
:param angle_limit: Total rotation angle (radians).
|
|
345
347
|
:type angle_limit: float
|
|
346
|
-
:param faces:
|
|
348
|
+
:param faces: Input faces.
|
|
347
349
|
:type faces: list[bmesh.types.BMFace]
|
|
348
350
|
:return: edges:
|
|
349
351
|
|
|
@@ -370,17 +372,17 @@ def contextual_create(
|
|
|
370
372
|
|
|
371
373
|
:param bm: The bmesh to operate on.
|
|
372
374
|
:type bm: bmesh.types.BMesh
|
|
373
|
-
:param geom:
|
|
375
|
+
:param geom: Input geometry.
|
|
374
376
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
375
|
-
:param mat_nr:
|
|
377
|
+
:param mat_nr: Material to use.
|
|
376
378
|
:type mat_nr: int
|
|
377
|
-
:param use_smooth:
|
|
379
|
+
:param use_smooth: Smooth to use.
|
|
378
380
|
:type use_smooth: bool
|
|
379
|
-
:return: faces:
|
|
381
|
+
:return: faces: Newly-made face(s).
|
|
380
382
|
|
|
381
383
|
type list of (`bmesh.types.BMFace`)
|
|
382
384
|
|
|
383
|
-
edges:
|
|
385
|
+
edges: Newly-made edge(s).
|
|
384
386
|
|
|
385
387
|
type list of (`bmesh.types.BMEdge`)
|
|
386
388
|
:rtype: dict[str, typing.Any]
|
|
@@ -403,9 +405,9 @@ def convex_hull(
|
|
|
403
405
|
|
|
404
406
|
:param bm: The bmesh to operate on.
|
|
405
407
|
:type bm: bmesh.types.BMesh
|
|
406
|
-
:param input:
|
|
408
|
+
:param input: Input geometry.
|
|
407
409
|
:type input: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
408
|
-
:param use_existing_faces:
|
|
410
|
+
:param use_existing_faces: Skip hull triangles that are covered by a pre-existing face.
|
|
409
411
|
:type use_existing_faces: bool
|
|
410
412
|
:return: geom:
|
|
411
413
|
|
|
@@ -439,19 +441,19 @@ def create_circle(
|
|
|
439
441
|
|
|
440
442
|
:param bm: The bmesh to operate on.
|
|
441
443
|
:type bm: bmesh.types.BMesh
|
|
442
|
-
:param cap_ends:
|
|
444
|
+
:param cap_ends: Whether or not to fill in the ends with faces.
|
|
443
445
|
:type cap_ends: bool
|
|
444
|
-
:param cap_tris:
|
|
446
|
+
:param cap_tris: Fill ends with triangles instead of ngons.
|
|
445
447
|
:type cap_tris: bool
|
|
446
|
-
:param segments:
|
|
448
|
+
:param segments: Number of vertices in the circle.
|
|
447
449
|
:type segments: int
|
|
448
450
|
:param radius: Radius of the circle.
|
|
449
451
|
:type radius: float
|
|
450
|
-
:param matrix:
|
|
452
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
451
453
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
452
|
-
:param calc_uvs:
|
|
454
|
+
:param calc_uvs: Calculate default UVs.
|
|
453
455
|
:type calc_uvs: bool
|
|
454
|
-
:return: verts:
|
|
456
|
+
:return: verts: Output verts.
|
|
455
457
|
|
|
456
458
|
type list of (`bmesh.types.BMVert`)
|
|
457
459
|
:rtype: dict[str, typing.Any]
|
|
@@ -473,23 +475,23 @@ def create_cone(
|
|
|
473
475
|
|
|
474
476
|
:param bm: The bmesh to operate on.
|
|
475
477
|
:type bm: bmesh.types.BMesh
|
|
476
|
-
:param cap_ends:
|
|
478
|
+
:param cap_ends: Whether or not to fill in the ends with faces.
|
|
477
479
|
:type cap_ends: bool
|
|
478
|
-
:param cap_tris:
|
|
480
|
+
:param cap_tris: Fill ends with triangles instead of ngons.
|
|
479
481
|
:type cap_tris: bool
|
|
480
|
-
:param segments:
|
|
482
|
+
:param segments: Number of vertices in the base circle.
|
|
481
483
|
:type segments: int
|
|
482
|
-
:param radius1:
|
|
484
|
+
:param radius1: Radius of one end.
|
|
483
485
|
:type radius1: float
|
|
484
|
-
:param radius2:
|
|
486
|
+
:param radius2: Radius of the opposite.
|
|
485
487
|
:type radius2: float
|
|
486
|
-
:param depth:
|
|
488
|
+
:param depth: Distance between ends.
|
|
487
489
|
:type depth: float
|
|
488
|
-
:param matrix:
|
|
490
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
489
491
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
490
|
-
:param calc_uvs:
|
|
492
|
+
:param calc_uvs: Calculate default UVs.
|
|
491
493
|
:type calc_uvs: bool
|
|
492
|
-
:return: verts:
|
|
494
|
+
:return: verts: Output verts.
|
|
493
495
|
|
|
494
496
|
type list of (`bmesh.types.BMVert`)
|
|
495
497
|
:rtype: dict[str, typing.Any]
|
|
@@ -506,13 +508,13 @@ def create_cube(
|
|
|
506
508
|
|
|
507
509
|
:param bm: The bmesh to operate on.
|
|
508
510
|
:type bm: bmesh.types.BMesh
|
|
509
|
-
:param size:
|
|
511
|
+
:param size: Size of the cube.
|
|
510
512
|
:type size: float
|
|
511
|
-
:param matrix:
|
|
513
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
512
514
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
513
|
-
:param calc_uvs:
|
|
515
|
+
:param calc_uvs: Calculate default UVs.
|
|
514
516
|
:type calc_uvs: bool
|
|
515
|
-
:return: verts:
|
|
517
|
+
:return: verts: Output verts.
|
|
516
518
|
|
|
517
519
|
type list of (`bmesh.types.BMVert`)
|
|
518
520
|
:rtype: dict[str, typing.Any]
|
|
@@ -531,17 +533,17 @@ def create_grid(
|
|
|
531
533
|
|
|
532
534
|
:param bm: The bmesh to operate on.
|
|
533
535
|
:type bm: bmesh.types.BMesh
|
|
534
|
-
:param x_segments:
|
|
536
|
+
:param x_segments: Number of x segments.
|
|
535
537
|
:type x_segments: int
|
|
536
|
-
:param y_segments:
|
|
538
|
+
:param y_segments: Number of y segments.
|
|
537
539
|
:type y_segments: int
|
|
538
|
-
:param size:
|
|
540
|
+
:param size: Size of the grid.
|
|
539
541
|
:type size: float
|
|
540
|
-
:param matrix:
|
|
542
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
541
543
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
542
|
-
:param calc_uvs:
|
|
544
|
+
:param calc_uvs: Calculate default UVs.
|
|
543
545
|
:type calc_uvs: bool
|
|
544
|
-
:return: verts:
|
|
546
|
+
:return: verts: Output verts.
|
|
545
547
|
|
|
546
548
|
type list of (`bmesh.types.BMVert`)
|
|
547
549
|
:rtype: dict[str, typing.Any]
|
|
@@ -559,15 +561,15 @@ def create_icosphere(
|
|
|
559
561
|
|
|
560
562
|
:param bm: The bmesh to operate on.
|
|
561
563
|
:type bm: bmesh.types.BMesh
|
|
562
|
-
:param subdivisions:
|
|
564
|
+
:param subdivisions: How many times to recursively subdivide the sphere.
|
|
563
565
|
:type subdivisions: int
|
|
564
|
-
:param radius:
|
|
566
|
+
:param radius: Radius.
|
|
565
567
|
:type radius: float
|
|
566
|
-
:param matrix:
|
|
568
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
567
569
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
568
|
-
:param calc_uvs:
|
|
570
|
+
:param calc_uvs: Calculate default UVs.
|
|
569
571
|
:type calc_uvs: bool
|
|
570
|
-
:return: verts:
|
|
572
|
+
:return: verts: Output verts.
|
|
571
573
|
|
|
572
574
|
type list of (`bmesh.types.BMVert`)
|
|
573
575
|
:rtype: dict[str, typing.Any]
|
|
@@ -583,11 +585,11 @@ def create_monkey(
|
|
|
583
585
|
|
|
584
586
|
:param bm: The bmesh to operate on.
|
|
585
587
|
:type bm: bmesh.types.BMesh
|
|
586
|
-
:param matrix:
|
|
588
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
587
589
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
588
|
-
:param calc_uvs:
|
|
590
|
+
:param calc_uvs: Calculate default UVs.
|
|
589
591
|
:type calc_uvs: bool
|
|
590
|
-
:return: verts:
|
|
592
|
+
:return: verts: Output verts.
|
|
591
593
|
|
|
592
594
|
type list of (`bmesh.types.BMVert`)
|
|
593
595
|
:rtype: dict[str, typing.Any]
|
|
@@ -606,17 +608,17 @@ def create_uvsphere(
|
|
|
606
608
|
|
|
607
609
|
:param bm: The bmesh to operate on.
|
|
608
610
|
:type bm: bmesh.types.BMesh
|
|
609
|
-
:param u_segments:
|
|
611
|
+
:param u_segments: Number of u segments.
|
|
610
612
|
:type u_segments: int
|
|
611
|
-
:param v_segments:
|
|
613
|
+
:param v_segments: Number of v segment.
|
|
612
614
|
:type v_segments: int
|
|
613
|
-
:param radius:
|
|
615
|
+
:param radius: Radius.
|
|
614
616
|
:type radius: float
|
|
615
|
-
:param matrix:
|
|
617
|
+
:param matrix: Matrix to multiply the new geometry with.
|
|
616
618
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
617
|
-
:param calc_uvs:
|
|
619
|
+
:param calc_uvs: Calculate default UVs.
|
|
618
620
|
:type calc_uvs: bool
|
|
619
|
-
:return: verts:
|
|
621
|
+
:return: verts: Output verts.
|
|
620
622
|
|
|
621
623
|
type list of (`bmesh.types.BMVert`)
|
|
622
624
|
:rtype: dict[str, typing.Any]
|
|
@@ -631,9 +633,9 @@ def create_vert(
|
|
|
631
633
|
|
|
632
634
|
:param bm: The bmesh to operate on.
|
|
633
635
|
:type bm: bmesh.types.BMesh
|
|
634
|
-
:param co:
|
|
636
|
+
:param co: The coordinate of the new vert.
|
|
635
637
|
:type co: collections.abc.Sequence[float] | mathutils.Vector
|
|
636
|
-
:return: vert:
|
|
638
|
+
:return: vert: The new vert.
|
|
637
639
|
|
|
638
640
|
type list of (`bmesh.types.BMVert`)
|
|
639
641
|
:rtype: dict[str, typing.Any]
|
|
@@ -653,27 +655,27 @@ def delete(
|
|
|
653
655
|
"FACES_KEEP_BOUNDARY",
|
|
654
656
|
"TAGGED_ONLY",
|
|
655
657
|
] = "VERTS",
|
|
656
|
-
):
|
|
658
|
+
) -> None:
|
|
657
659
|
"""Delete Geometry.Utility operator to delete geometry.
|
|
658
660
|
|
|
659
661
|
:param bm: The bmesh to operate on.
|
|
660
662
|
:type bm: bmesh.types.BMesh
|
|
661
|
-
:param geom:
|
|
663
|
+
:param geom: Input geometry.
|
|
662
664
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
663
|
-
:param context:
|
|
665
|
+
:param context: Geometry types to delete.
|
|
664
666
|
:type context: typing.Literal['VERTS','EDGES','FACES_ONLY','EDGES_FACES','FACES','FACES_KEEP_BOUNDARY','TAGGED_ONLY']
|
|
665
667
|
"""
|
|
666
668
|
|
|
667
669
|
def dissolve_degenerate(
|
|
668
670
|
bm: bmesh.types.BMesh, dist: float = 0, edges: list[bmesh.types.BMEdge] = []
|
|
669
|
-
):
|
|
671
|
+
) -> None:
|
|
670
672
|
"""Degenerate Dissolve.Dissolve edges with no length, faces with no area.
|
|
671
673
|
|
|
672
674
|
:param bm: The bmesh to operate on.
|
|
673
675
|
:type bm: bmesh.types.BMesh
|
|
674
|
-
:param dist:
|
|
676
|
+
:param dist: Maximum distance to consider degenerate.
|
|
675
677
|
:type dist: float
|
|
676
|
-
:param edges:
|
|
678
|
+
:param edges: Input edges.
|
|
677
679
|
:type edges: list[bmesh.types.BMEdge]
|
|
678
680
|
"""
|
|
679
681
|
|
|
@@ -682,17 +684,20 @@ def dissolve_edges(
|
|
|
682
684
|
edges: list[bmesh.types.BMEdge] = [],
|
|
683
685
|
use_verts: bool = False,
|
|
684
686
|
use_face_split: bool = False,
|
|
687
|
+
angle_threshold: float = 0,
|
|
685
688
|
) -> dict[str, typing.Any]:
|
|
686
689
|
"""Dissolve Edges.
|
|
687
690
|
|
|
688
691
|
:param bm: The bmesh to operate on.
|
|
689
692
|
:type bm: bmesh.types.BMesh
|
|
690
|
-
:param edges:
|
|
693
|
+
:param edges: Input edges.
|
|
691
694
|
:type edges: list[bmesh.types.BMEdge]
|
|
692
|
-
:param use_verts:
|
|
695
|
+
:param use_verts: Dissolve verts left between only 2 edges.
|
|
693
696
|
:type use_verts: bool
|
|
694
|
-
:param use_face_split:
|
|
697
|
+
:param use_face_split: Split off face corners to maintain surrounding geometry.
|
|
695
698
|
:type use_face_split: bool
|
|
699
|
+
:param angle_threshold: Do not dissolve verts between 2 edges when their angle exceeds this threshold.
|
|
700
|
+
:type angle_threshold: float
|
|
696
701
|
:return: region:
|
|
697
702
|
|
|
698
703
|
type list of (`bmesh.types.BMFace`)
|
|
@@ -706,9 +711,9 @@ def dissolve_faces(
|
|
|
706
711
|
|
|
707
712
|
:param bm: The bmesh to operate on.
|
|
708
713
|
:type bm: bmesh.types.BMesh
|
|
709
|
-
:param faces:
|
|
714
|
+
:param faces: Input faces.
|
|
710
715
|
:type faces: list[bmesh.types.BMFace]
|
|
711
|
-
:param use_verts:
|
|
716
|
+
:param use_verts: Dissolve verts left between only 2 edges.
|
|
712
717
|
:type use_verts: bool
|
|
713
718
|
:return: region:
|
|
714
719
|
|
|
@@ -728,15 +733,15 @@ def dissolve_limit(
|
|
|
728
733
|
|
|
729
734
|
:param bm: The bmesh to operate on.
|
|
730
735
|
:type bm: bmesh.types.BMesh
|
|
731
|
-
:param angle_limit:
|
|
736
|
+
:param angle_limit: Total rotation angle (radians).
|
|
732
737
|
:type angle_limit: float
|
|
733
|
-
:param use_dissolve_boundaries:
|
|
738
|
+
:param use_dissolve_boundaries: Dissolve all vertices in between face boundaries.
|
|
734
739
|
:type use_dissolve_boundaries: bool
|
|
735
|
-
:param verts:
|
|
740
|
+
:param verts: Input vertices.
|
|
736
741
|
:type verts: list[bmesh.types.BMVert]
|
|
737
|
-
:param edges:
|
|
742
|
+
:param edges: Input edges.
|
|
738
743
|
:type edges: list[bmesh.types.BMEdge]
|
|
739
|
-
:param delimit:
|
|
744
|
+
:param delimit: Delimit dissolve operation.
|
|
740
745
|
:return: region:
|
|
741
746
|
|
|
742
747
|
type list of (`bmesh.types.BMFace`)
|
|
@@ -748,16 +753,16 @@ def dissolve_verts(
|
|
|
748
753
|
verts: list[bmesh.types.BMVert] = [],
|
|
749
754
|
use_face_split: bool = False,
|
|
750
755
|
use_boundary_tear: bool = False,
|
|
751
|
-
):
|
|
756
|
+
) -> None:
|
|
752
757
|
"""Dissolve Verts.
|
|
753
758
|
|
|
754
759
|
:param bm: The bmesh to operate on.
|
|
755
760
|
:type bm: bmesh.types.BMesh
|
|
756
|
-
:param verts:
|
|
761
|
+
:param verts: Input vertices.
|
|
757
762
|
:type verts: list[bmesh.types.BMVert]
|
|
758
|
-
:param use_face_split:
|
|
763
|
+
:param use_face_split: Split off face corners to maintain surrounding geometry.
|
|
759
764
|
:type use_face_split: bool
|
|
760
|
-
:param use_boundary_tear:
|
|
765
|
+
:param use_boundary_tear: Split off face corners instead of merging faces.
|
|
761
766
|
:type use_boundary_tear: bool
|
|
762
767
|
"""
|
|
763
768
|
|
|
@@ -775,9 +780,9 @@ def duplicate(
|
|
|
775
780
|
|
|
776
781
|
:param bm: The bmesh to operate on.
|
|
777
782
|
:type bm: bmesh.types.BMesh
|
|
778
|
-
:param geom:
|
|
783
|
+
:param geom: Input geometry.
|
|
779
784
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
780
|
-
:param dest:
|
|
785
|
+
:param dest: Destination bmesh, if None will use current on.
|
|
781
786
|
:type dest: bmesh.types.BMesh | None
|
|
782
787
|
:param use_select_history: Undocumented.
|
|
783
788
|
:type use_select_history: bool
|
|
@@ -823,13 +828,13 @@ def edgeloop_fill(
|
|
|
823
828
|
|
|
824
829
|
:param bm: The bmesh to operate on.
|
|
825
830
|
:type bm: bmesh.types.BMesh
|
|
826
|
-
:param edges:
|
|
831
|
+
:param edges: Input edges.
|
|
827
832
|
:type edges: list[bmesh.types.BMEdge]
|
|
828
|
-
:param mat_nr:
|
|
833
|
+
:param mat_nr: Material to use.
|
|
829
834
|
:type mat_nr: int
|
|
830
|
-
:param use_smooth:
|
|
835
|
+
:param use_smooth: Smooth state to use.
|
|
831
836
|
:type use_smooth: bool
|
|
832
|
-
:return: faces:
|
|
837
|
+
:return: faces: New faces.
|
|
833
838
|
|
|
834
839
|
type list of (`bmesh.types.BMFace`)
|
|
835
840
|
:rtype: dict[str, typing.Any]
|
|
@@ -846,15 +851,15 @@ def edgenet_fill(
|
|
|
846
851
|
|
|
847
852
|
:param bm: The bmesh to operate on.
|
|
848
853
|
:type bm: bmesh.types.BMesh
|
|
849
|
-
:param edges:
|
|
854
|
+
:param edges: Input edges.
|
|
850
855
|
:type edges: list[bmesh.types.BMEdge]
|
|
851
|
-
:param mat_nr:
|
|
856
|
+
:param mat_nr: Material to use.
|
|
852
857
|
:type mat_nr: int
|
|
853
|
-
:param use_smooth:
|
|
858
|
+
:param use_smooth: Smooth state to use.
|
|
854
859
|
:type use_smooth: bool
|
|
855
|
-
:param sides:
|
|
860
|
+
:param sides: Number of sides.
|
|
856
861
|
:type sides: int
|
|
857
|
-
:return: faces:
|
|
862
|
+
:return: faces: New faces.
|
|
858
863
|
|
|
859
864
|
type list of (`bmesh.types.BMFace`)
|
|
860
865
|
:rtype: dict[str, typing.Any]
|
|
@@ -868,9 +873,9 @@ def edgenet_prepare(
|
|
|
868
873
|
|
|
869
874
|
:param bm: The bmesh to operate on.
|
|
870
875
|
:type bm: bmesh.types.BMesh
|
|
871
|
-
:param edges:
|
|
876
|
+
:param edges: Input edges.
|
|
872
877
|
:type edges: list[bmesh.types.BMEdge]
|
|
873
|
-
:return: edges:
|
|
878
|
+
:return: edges: New edges.
|
|
874
879
|
|
|
875
880
|
type list of (`bmesh.types.BMEdge`)
|
|
876
881
|
:rtype: dict[str, typing.Any]
|
|
@@ -886,13 +891,13 @@ def extrude_discrete_faces(
|
|
|
886
891
|
|
|
887
892
|
:param bm: The bmesh to operate on.
|
|
888
893
|
:type bm: bmesh.types.BMesh
|
|
889
|
-
:param faces:
|
|
894
|
+
:param faces: Input faces.
|
|
890
895
|
:type faces: list[bmesh.types.BMFace]
|
|
891
896
|
:param use_normal_flip: Create faces with reversed direction.
|
|
892
897
|
:type use_normal_flip: bool
|
|
893
|
-
:param use_select_history:
|
|
898
|
+
:param use_select_history: Pass to duplicate.
|
|
894
899
|
:type use_select_history: bool
|
|
895
|
-
:return: faces:
|
|
900
|
+
:return: faces: Output faces.
|
|
896
901
|
|
|
897
902
|
type list of (`bmesh.types.BMFace`)
|
|
898
903
|
:rtype: dict[str, typing.Any]
|
|
@@ -909,13 +914,13 @@ def extrude_edge_only(
|
|
|
909
914
|
|
|
910
915
|
:param bm: The bmesh to operate on.
|
|
911
916
|
:type bm: bmesh.types.BMesh
|
|
912
|
-
:param edges:
|
|
917
|
+
:param edges: Input vertices.
|
|
913
918
|
:type edges: list[bmesh.types.BMEdge]
|
|
914
919
|
:param use_normal_flip: Create faces with reversed direction.
|
|
915
920
|
:type use_normal_flip: bool
|
|
916
|
-
:param use_select_history:
|
|
921
|
+
:param use_select_history: Pass to duplicate.
|
|
917
922
|
:type use_select_history: bool
|
|
918
|
-
:return: geom:
|
|
923
|
+
:return: geom: Output geometry.
|
|
919
924
|
|
|
920
925
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
921
926
|
:rtype: dict[str, typing.Any]
|
|
@@ -937,10 +942,10 @@ def extrude_face_region(
|
|
|
937
942
|
|
|
938
943
|
:param bm: The bmesh to operate on.
|
|
939
944
|
:type bm: bmesh.types.BMesh
|
|
940
|
-
:param geom:
|
|
945
|
+
:param geom: Edges and faces.
|
|
941
946
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
942
|
-
:param edges_exclude:
|
|
943
|
-
:param use_keep_orig:
|
|
947
|
+
:param edges_exclude: Input edges to explicitly exclude from extrusion.
|
|
948
|
+
:param use_keep_orig: Keep original geometry (requires geom to include edges).
|
|
944
949
|
:type use_keep_orig: bool
|
|
945
950
|
:param use_normal_flip: Create faces with reversed direction.
|
|
946
951
|
:type use_normal_flip: bool
|
|
@@ -948,7 +953,7 @@ def extrude_face_region(
|
|
|
948
953
|
:type use_normal_from_adjacent: bool
|
|
949
954
|
:param use_dissolve_ortho_edges: Dissolve edges whose faces form a flat surface.
|
|
950
955
|
:type use_dissolve_ortho_edges: bool
|
|
951
|
-
:param use_select_history:
|
|
956
|
+
:param use_select_history: Pass to duplicate.
|
|
952
957
|
:type use_select_history: bool
|
|
953
958
|
:return: geom:
|
|
954
959
|
|
|
@@ -965,15 +970,15 @@ def extrude_vert_indiv(
|
|
|
965
970
|
|
|
966
971
|
:param bm: The bmesh to operate on.
|
|
967
972
|
:type bm: bmesh.types.BMesh
|
|
968
|
-
:param verts:
|
|
973
|
+
:param verts: Input vertices.
|
|
969
974
|
:type verts: list[bmesh.types.BMVert]
|
|
970
|
-
:param use_select_history:
|
|
975
|
+
:param use_select_history: Pass to duplicate.
|
|
971
976
|
:type use_select_history: bool
|
|
972
|
-
:return: edges:
|
|
977
|
+
:return: edges: Output wire edges.
|
|
973
978
|
|
|
974
979
|
type list of (`bmesh.types.BMEdge`)
|
|
975
980
|
|
|
976
|
-
verts:
|
|
981
|
+
verts: Output vertices.
|
|
977
982
|
|
|
978
983
|
type list of (`bmesh.types.BMVert`)
|
|
979
984
|
:rtype: dict[str, typing.Any]
|
|
@@ -989,13 +994,13 @@ def face_attribute_fill(
|
|
|
989
994
|
|
|
990
995
|
:param bm: The bmesh to operate on.
|
|
991
996
|
:type bm: bmesh.types.BMesh
|
|
992
|
-
:param faces:
|
|
997
|
+
:param faces: Input faces.
|
|
993
998
|
:type faces: list[bmesh.types.BMFace]
|
|
994
|
-
:param use_normals:
|
|
999
|
+
:param use_normals: Copy face winding.
|
|
995
1000
|
:type use_normals: bool
|
|
996
|
-
:param use_data:
|
|
1001
|
+
:param use_data: Copy face data.
|
|
997
1002
|
:type use_data: bool
|
|
998
|
-
:return: faces_fail:
|
|
1003
|
+
:return: faces_fail: Faces that could not be handled.
|
|
999
1004
|
|
|
1000
1005
|
type list of (`bmesh.types.BMFace`)
|
|
1001
1006
|
:rtype: dict[str, typing.Any]
|
|
@@ -1013,11 +1018,11 @@ def find_doubles(
|
|
|
1013
1018
|
|
|
1014
1019
|
:param bm: The bmesh to operate on.
|
|
1015
1020
|
:type bm: bmesh.types.BMesh
|
|
1016
|
-
:param verts:
|
|
1021
|
+
:param verts: Input vertices.
|
|
1017
1022
|
:type verts: list[bmesh.types.BMVert]
|
|
1018
|
-
:param keep_verts:
|
|
1023
|
+
:param keep_verts: List of verts to keep.
|
|
1019
1024
|
:type keep_verts: list[bmesh.types.BMVert]
|
|
1020
|
-
:param dist:
|
|
1025
|
+
:param dist: Maximum distance.
|
|
1021
1026
|
:type dist: float
|
|
1022
1027
|
:return: targetmap:
|
|
1023
1028
|
|
|
@@ -1025,12 +1030,14 @@ def find_doubles(
|
|
|
1025
1030
|
:rtype: dict[str, typing.Any]
|
|
1026
1031
|
"""
|
|
1027
1032
|
|
|
1028
|
-
def flip_quad_tessellation(
|
|
1033
|
+
def flip_quad_tessellation(
|
|
1034
|
+
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []
|
|
1035
|
+
) -> None:
|
|
1029
1036
|
"""Flip Quad TessellationFlip the tessellation direction of the selected quads.
|
|
1030
1037
|
|
|
1031
1038
|
:param bm: The bmesh to operate on.
|
|
1032
1039
|
:type bm: bmesh.types.BMesh
|
|
1033
|
-
:param faces:
|
|
1040
|
+
:param faces: Input faces.
|
|
1034
1041
|
:type faces: list[bmesh.types.BMFace]
|
|
1035
1042
|
"""
|
|
1036
1043
|
|
|
@@ -1045,15 +1052,15 @@ def grid_fill(
|
|
|
1045
1052
|
|
|
1046
1053
|
:param bm: The bmesh to operate on.
|
|
1047
1054
|
:type bm: bmesh.types.BMesh
|
|
1048
|
-
:param edges:
|
|
1055
|
+
:param edges: Input edges.
|
|
1049
1056
|
:type edges: list[bmesh.types.BMEdge]
|
|
1050
|
-
:param mat_nr:
|
|
1057
|
+
:param mat_nr: Material to use.
|
|
1051
1058
|
:type mat_nr: int
|
|
1052
|
-
:param use_smooth:
|
|
1059
|
+
:param use_smooth: Smooth state to use.
|
|
1053
1060
|
:type use_smooth: bool
|
|
1054
|
-
:param use_interp_simple:
|
|
1061
|
+
:param use_interp_simple: Use simple interpolation.
|
|
1055
1062
|
:type use_interp_simple: bool
|
|
1056
|
-
:return: faces:
|
|
1063
|
+
:return: faces: New faces.
|
|
1057
1064
|
|
|
1058
1065
|
type list of (`bmesh.types.BMFace`)
|
|
1059
1066
|
:rtype: dict[str, typing.Any]
|
|
@@ -1066,11 +1073,11 @@ def holes_fill(
|
|
|
1066
1073
|
|
|
1067
1074
|
:param bm: The bmesh to operate on.
|
|
1068
1075
|
:type bm: bmesh.types.BMesh
|
|
1069
|
-
:param edges:
|
|
1076
|
+
:param edges: Input edges.
|
|
1070
1077
|
:type edges: list[bmesh.types.BMEdge]
|
|
1071
|
-
:param sides:
|
|
1078
|
+
:param sides: Number of face sides to fill.
|
|
1072
1079
|
:type sides: int
|
|
1073
|
-
:return: faces:
|
|
1080
|
+
:return: faces: New faces.
|
|
1074
1081
|
|
|
1075
1082
|
type list of (`bmesh.types.BMFace`)
|
|
1076
1083
|
:rtype: dict[str, typing.Any]
|
|
@@ -1089,19 +1096,19 @@ def inset_individual(
|
|
|
1089
1096
|
|
|
1090
1097
|
:param bm: The bmesh to operate on.
|
|
1091
1098
|
:type bm: bmesh.types.BMesh
|
|
1092
|
-
:param faces:
|
|
1099
|
+
:param faces: Input faces.
|
|
1093
1100
|
:type faces: list[bmesh.types.BMFace]
|
|
1094
|
-
:param thickness:
|
|
1101
|
+
:param thickness: Thickness.
|
|
1095
1102
|
:type thickness: float
|
|
1096
|
-
:param depth:
|
|
1103
|
+
:param depth: Depth.
|
|
1097
1104
|
:type depth: float
|
|
1098
|
-
:param use_even_offset:
|
|
1105
|
+
:param use_even_offset: Scale the offset to give more even thickness.
|
|
1099
1106
|
:type use_even_offset: bool
|
|
1100
|
-
:param use_interpolate:
|
|
1107
|
+
:param use_interpolate: Blend face data across the inset.
|
|
1101
1108
|
:type use_interpolate: bool
|
|
1102
|
-
:param use_relative_offset:
|
|
1109
|
+
:param use_relative_offset: Scale the offset by surrounding geometry.
|
|
1103
1110
|
:type use_relative_offset: bool
|
|
1104
|
-
:return: faces:
|
|
1111
|
+
:return: faces: Output faces.
|
|
1105
1112
|
|
|
1106
1113
|
type list of (`bmesh.types.BMFace`)
|
|
1107
1114
|
:rtype: dict[str, typing.Any]
|
|
@@ -1124,27 +1131,27 @@ def inset_region(
|
|
|
1124
1131
|
|
|
1125
1132
|
:param bm: The bmesh to operate on.
|
|
1126
1133
|
:type bm: bmesh.types.BMesh
|
|
1127
|
-
:param faces:
|
|
1134
|
+
:param faces: Input faces.
|
|
1128
1135
|
:type faces: list[bmesh.types.BMFace]
|
|
1129
|
-
:param faces_exclude:
|
|
1136
|
+
:param faces_exclude: Input faces to explicitly exclude from inset.
|
|
1130
1137
|
:type faces_exclude: list[bmesh.types.BMFace]
|
|
1131
|
-
:param use_boundary:
|
|
1138
|
+
:param use_boundary: Inset face boundaries.
|
|
1132
1139
|
:type use_boundary: bool
|
|
1133
|
-
:param use_even_offset:
|
|
1140
|
+
:param use_even_offset: Scale the offset to give more even thickness.
|
|
1134
1141
|
:type use_even_offset: bool
|
|
1135
|
-
:param use_interpolate:
|
|
1142
|
+
:param use_interpolate: Blend face data across the inset.
|
|
1136
1143
|
:type use_interpolate: bool
|
|
1137
|
-
:param use_relative_offset:
|
|
1144
|
+
:param use_relative_offset: Scale the offset by surrounding geometry.
|
|
1138
1145
|
:type use_relative_offset: bool
|
|
1139
|
-
:param use_edge_rail:
|
|
1146
|
+
:param use_edge_rail: Inset the region along existing edges.
|
|
1140
1147
|
:type use_edge_rail: bool
|
|
1141
|
-
:param thickness:
|
|
1148
|
+
:param thickness: Thickness.
|
|
1142
1149
|
:type thickness: float
|
|
1143
|
-
:param depth:
|
|
1150
|
+
:param depth: Depth.
|
|
1144
1151
|
:type depth: float
|
|
1145
|
-
:param use_outset:
|
|
1152
|
+
:param use_outset: Outset rather than inset.
|
|
1146
1153
|
:type use_outset: bool
|
|
1147
|
-
:return: faces:
|
|
1154
|
+
:return: faces: Output faces.
|
|
1148
1155
|
|
|
1149
1156
|
type list of (`bmesh.types.BMFace`)
|
|
1150
1157
|
:rtype: dict[str, typing.Any]
|
|
@@ -1170,7 +1177,7 @@ def join_triangles(
|
|
|
1170
1177
|
|
|
1171
1178
|
:param bm: The bmesh to operate on.
|
|
1172
1179
|
:type bm: bmesh.types.BMesh
|
|
1173
|
-
:param faces:
|
|
1180
|
+
:param faces: Input geometry.
|
|
1174
1181
|
:type faces: list[bmesh.types.BMFace]
|
|
1175
1182
|
:param cmp_seam: Compare seam
|
|
1176
1183
|
:type cmp_seam: bool
|
|
@@ -1178,9 +1185,9 @@ def join_triangles(
|
|
|
1178
1185
|
:type cmp_sharp: bool
|
|
1179
1186
|
:param cmp_uvs: Compare UVs
|
|
1180
1187
|
:type cmp_uvs: bool
|
|
1181
|
-
:param cmp_vcols:
|
|
1188
|
+
:param cmp_vcols: Compare VCols.
|
|
1182
1189
|
:type cmp_vcols: bool
|
|
1183
|
-
:param cmp_materials:
|
|
1190
|
+
:param cmp_materials: Compare materials.
|
|
1184
1191
|
:type cmp_materials: bool
|
|
1185
1192
|
:param angle_face_threshold: Undocumented.
|
|
1186
1193
|
:type angle_face_threshold: float
|
|
@@ -1194,7 +1201,7 @@ def join_triangles(
|
|
|
1194
1201
|
:type merge_limit: int
|
|
1195
1202
|
:param neighbor_debug: Undocumented.
|
|
1196
1203
|
:type neighbor_debug: int
|
|
1197
|
-
:return: faces:
|
|
1204
|
+
:return: faces: Joined faces.
|
|
1198
1205
|
|
|
1199
1206
|
type list of (`bmesh.types.BMFace`)
|
|
1200
1207
|
:rtype: dict[str, typing.Any]
|
|
@@ -1205,17 +1212,17 @@ def mesh_to_bmesh(
|
|
|
1205
1212
|
mesh: bpy.types.Mesh,
|
|
1206
1213
|
object: bpy.types.Object,
|
|
1207
1214
|
use_shapekey: bool = False,
|
|
1208
|
-
):
|
|
1215
|
+
) -> None:
|
|
1209
1216
|
"""Mesh to BMesh.Load the contents of a mesh into the bmesh. this BMOP is private, it's
|
|
1210
|
-
reserved exclusively for entering
|
|
1217
|
+
reserved exclusively for entering edit-mode.
|
|
1211
1218
|
|
|
1212
1219
|
:param bm: The bmesh to operate on.
|
|
1213
1220
|
:type bm: bmesh.types.BMesh
|
|
1214
|
-
:param mesh:
|
|
1221
|
+
:param mesh: Pointer to a Mesh structure.
|
|
1215
1222
|
:type mesh: bpy.types.Mesh
|
|
1216
|
-
:param object:
|
|
1223
|
+
:param object: Pointer to an Object structure.
|
|
1217
1224
|
:type object: bpy.types.Object
|
|
1218
|
-
:param use_shapekey:
|
|
1225
|
+
:param use_shapekey: Load active shapekey coordinates into verts.
|
|
1219
1226
|
:type use_shapekey: bool
|
|
1220
1227
|
"""
|
|
1221
1228
|
|
|
@@ -1239,23 +1246,23 @@ def mirror(
|
|
|
1239
1246
|
|
|
1240
1247
|
:param bm: The bmesh to operate on.
|
|
1241
1248
|
:type bm: bmesh.types.BMesh
|
|
1242
|
-
:param geom:
|
|
1249
|
+
:param geom: Input geometry.
|
|
1243
1250
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
1244
|
-
:param matrix:
|
|
1251
|
+
:param matrix: Matrix defining the mirror transformation.
|
|
1245
1252
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1246
|
-
:param merge_dist:
|
|
1253
|
+
:param merge_dist: Maximum distance for merging. does no merging if 0.
|
|
1247
1254
|
:type merge_dist: float
|
|
1248
|
-
:param axis:
|
|
1255
|
+
:param axis: The axis to use.
|
|
1249
1256
|
:type axis: typing.Literal['X','Y','Z']
|
|
1250
|
-
:param mirror_u:
|
|
1257
|
+
:param mirror_u: Mirror UVs across the u axis.
|
|
1251
1258
|
:type mirror_u: bool
|
|
1252
|
-
:param mirror_v:
|
|
1259
|
+
:param mirror_v: Mirror UVs across the v axis.
|
|
1253
1260
|
:type mirror_v: bool
|
|
1254
|
-
:param mirror_udim:
|
|
1261
|
+
:param mirror_udim: Mirror UVs in each tile.
|
|
1255
1262
|
:type mirror_udim: bool
|
|
1256
1263
|
:param use_shapekey: Transform shape keys too.
|
|
1257
1264
|
:type use_shapekey: bool
|
|
1258
|
-
:return: geom:
|
|
1265
|
+
:return: geom: Output geometry, mirrored.
|
|
1259
1266
|
|
|
1260
1267
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1261
1268
|
:rtype: dict[str, typing.Any]
|
|
@@ -1263,15 +1270,15 @@ def mirror(
|
|
|
1263
1270
|
|
|
1264
1271
|
def object_load_bmesh(
|
|
1265
1272
|
bm: bmesh.types.BMesh, scene: bpy.types.Scene, object: bpy.types.Object
|
|
1266
|
-
):
|
|
1273
|
+
) -> None:
|
|
1267
1274
|
"""Object Load BMesh.Loads a bmesh into an object/mesh. This is a "private"
|
|
1268
1275
|
BMOP.
|
|
1269
1276
|
|
|
1270
1277
|
:param bm: The bmesh to operate on.
|
|
1271
1278
|
:type bm: bmesh.types.BMesh
|
|
1272
|
-
:param scene:
|
|
1279
|
+
:param scene: Pointer to an scene structure.
|
|
1273
1280
|
:type scene: bpy.types.Scene
|
|
1274
|
-
:param object:
|
|
1281
|
+
:param object: Pointer to an object structure.
|
|
1275
1282
|
:type object: bpy.types.Object
|
|
1276
1283
|
"""
|
|
1277
1284
|
|
|
@@ -1284,11 +1291,11 @@ def offset_edgeloops(
|
|
|
1284
1291
|
|
|
1285
1292
|
:param bm: The bmesh to operate on.
|
|
1286
1293
|
:type bm: bmesh.types.BMesh
|
|
1287
|
-
:param edges:
|
|
1294
|
+
:param edges: Input edges.
|
|
1288
1295
|
:type edges: list[bmesh.types.BMEdge]
|
|
1289
|
-
:param use_cap_endpoint:
|
|
1296
|
+
:param use_cap_endpoint: Extend loop around end-points.
|
|
1290
1297
|
:type use_cap_endpoint: bool
|
|
1291
|
-
:return: edges:
|
|
1298
|
+
:return: edges: Output edges.
|
|
1292
1299
|
|
|
1293
1300
|
type list of (`bmesh.types.BMEdge`)
|
|
1294
1301
|
:rtype: dict[str, typing.Any]
|
|
@@ -1304,13 +1311,13 @@ def planar_faces(
|
|
|
1304
1311
|
|
|
1305
1312
|
:param bm: The bmesh to operate on.
|
|
1306
1313
|
:type bm: bmesh.types.BMesh
|
|
1307
|
-
:param faces:
|
|
1314
|
+
:param faces: Input geometry.
|
|
1308
1315
|
:type faces: list[bmesh.types.BMFace]
|
|
1309
1316
|
:param iterations: Number of times to flatten faces (for when connected faces are used)
|
|
1310
1317
|
:type iterations: int
|
|
1311
1318
|
:param factor: Influence for making planar each iteration
|
|
1312
1319
|
:type factor: float
|
|
1313
|
-
:return: geom:
|
|
1320
|
+
:return: geom: Output slot, computed boundary geometry.
|
|
1314
1321
|
|
|
1315
1322
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1316
1323
|
:rtype: dict[str, typing.Any]
|
|
@@ -1320,12 +1327,12 @@ def pointmerge(
|
|
|
1320
1327
|
bm: bmesh.types.BMesh,
|
|
1321
1328
|
verts: list[bmesh.types.BMVert] = [],
|
|
1322
1329
|
merge_co: collections.abc.Sequence[float] | mathutils.Vector = mathutils.Vector(),
|
|
1323
|
-
):
|
|
1330
|
+
) -> None:
|
|
1324
1331
|
"""Point Merge.Merge verts together at a point.
|
|
1325
1332
|
|
|
1326
1333
|
:param bm: The bmesh to operate on.
|
|
1327
1334
|
:type bm: bmesh.types.BMesh
|
|
1328
|
-
:param verts:
|
|
1335
|
+
:param verts: Input vertices (all verts will be merged into the first).
|
|
1329
1336
|
:type verts: list[bmesh.types.BMVert]
|
|
1330
1337
|
:param merge_co: Position to merge at.
|
|
1331
1338
|
:type merge_co: collections.abc.Sequence[float] | mathutils.Vector
|
|
@@ -1335,14 +1342,14 @@ def pointmerge_facedata(
|
|
|
1335
1342
|
bm: bmesh.types.BMesh,
|
|
1336
1343
|
verts: list[bmesh.types.BMVert] = [],
|
|
1337
1344
|
vert_snap: bmesh.types.BMVert | None = None,
|
|
1338
|
-
):
|
|
1345
|
+
) -> None:
|
|
1339
1346
|
"""Face-Data Point Merge.Merge uv/vcols at a specific vertex.
|
|
1340
1347
|
|
|
1341
1348
|
:param bm: The bmesh to operate on.
|
|
1342
1349
|
:type bm: bmesh.types.BMesh
|
|
1343
|
-
:param verts:
|
|
1350
|
+
:param verts: Input vertices.
|
|
1344
1351
|
:type verts: list[bmesh.types.BMVert]
|
|
1345
|
-
:param vert_snap:
|
|
1352
|
+
:param vert_snap: Snap vertex.
|
|
1346
1353
|
:type vert_snap: bmesh.types.BMVert | None
|
|
1347
1354
|
"""
|
|
1348
1355
|
|
|
@@ -1357,30 +1364,32 @@ def poke(
|
|
|
1357
1364
|
|
|
1358
1365
|
:param bm: The bmesh to operate on.
|
|
1359
1366
|
:type bm: bmesh.types.BMesh
|
|
1360
|
-
:param faces:
|
|
1367
|
+
:param faces: Input faces.
|
|
1361
1368
|
:type faces: list[bmesh.types.BMFace]
|
|
1362
|
-
:param offset:
|
|
1369
|
+
:param offset: Center vertex offset along normal.
|
|
1363
1370
|
:type offset: float
|
|
1364
|
-
:param center_mode:
|
|
1371
|
+
:param center_mode: Calculation mode for center vertex.
|
|
1365
1372
|
:type center_mode: typing.Literal['MEAN_WEIGHTED','MEAN','BOUNDS']
|
|
1366
|
-
:param use_relative_offset:
|
|
1373
|
+
:param use_relative_offset: Apply offset.
|
|
1367
1374
|
:type use_relative_offset: bool
|
|
1368
|
-
:return: verts:
|
|
1375
|
+
:return: verts: Output verts.
|
|
1369
1376
|
|
|
1370
1377
|
type list of (`bmesh.types.BMVert`)
|
|
1371
1378
|
|
|
1372
|
-
faces:
|
|
1379
|
+
faces: Output faces.
|
|
1373
1380
|
|
|
1374
1381
|
type list of (`bmesh.types.BMFace`)
|
|
1375
1382
|
:rtype: dict[str, typing.Any]
|
|
1376
1383
|
"""
|
|
1377
1384
|
|
|
1378
|
-
def recalc_face_normals(
|
|
1385
|
+
def recalc_face_normals(
|
|
1386
|
+
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []
|
|
1387
|
+
) -> None:
|
|
1379
1388
|
"""Right-Hand Faces.Computes an "outside" normal for the specified input faces.
|
|
1380
1389
|
|
|
1381
1390
|
:param bm: The bmesh to operate on.
|
|
1382
1391
|
:type bm: bmesh.types.BMesh
|
|
1383
|
-
:param faces:
|
|
1392
|
+
:param faces: Input faces.
|
|
1384
1393
|
:type faces: list[bmesh.types.BMFace]
|
|
1385
1394
|
"""
|
|
1386
1395
|
|
|
@@ -1400,15 +1409,15 @@ def region_extend(
|
|
|
1400
1409
|
|
|
1401
1410
|
:param bm: The bmesh to operate on.
|
|
1402
1411
|
:type bm: bmesh.types.BMesh
|
|
1403
|
-
:param geom:
|
|
1412
|
+
:param geom: Input geometry.
|
|
1404
1413
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
1405
|
-
:param use_contract:
|
|
1414
|
+
:param use_contract: Find boundary inside the regions, not outside.
|
|
1406
1415
|
:type use_contract: bool
|
|
1407
|
-
:param use_faces:
|
|
1416
|
+
:param use_faces: Extend from faces instead of edges.
|
|
1408
1417
|
:type use_faces: bool
|
|
1409
|
-
:param use_face_step:
|
|
1418
|
+
:param use_face_step: Step over connected faces.
|
|
1410
1419
|
:type use_face_step: bool
|
|
1411
|
-
:return: geom:
|
|
1420
|
+
:return: geom: Output slot, computed boundary geometry.
|
|
1412
1421
|
|
|
1413
1422
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1414
1423
|
:rtype: dict[str, typing.Any]
|
|
@@ -1416,28 +1425,28 @@ def region_extend(
|
|
|
1416
1425
|
|
|
1417
1426
|
def remove_doubles(
|
|
1418
1427
|
bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = [], dist: float = 0
|
|
1419
|
-
):
|
|
1428
|
+
) -> None:
|
|
1420
1429
|
"""Remove Doubles.Finds groups of vertices closer than dist and merges them together,
|
|
1421
1430
|
using the weld verts BMOP.
|
|
1422
1431
|
|
|
1423
1432
|
:param bm: The bmesh to operate on.
|
|
1424
1433
|
:type bm: bmesh.types.BMesh
|
|
1425
|
-
:param verts:
|
|
1434
|
+
:param verts: Input verts.
|
|
1426
1435
|
:type verts: list[bmesh.types.BMVert]
|
|
1427
|
-
:param dist:
|
|
1436
|
+
:param dist: Minimum distance.
|
|
1428
1437
|
:type dist: float
|
|
1429
1438
|
"""
|
|
1430
1439
|
|
|
1431
1440
|
def reverse_colors(
|
|
1432
1441
|
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], color_index: int = 0
|
|
1433
|
-
):
|
|
1442
|
+
) -> None:
|
|
1434
1443
|
"""Color ReverseReverse the loop colors.
|
|
1435
1444
|
|
|
1436
1445
|
:param bm: The bmesh to operate on.
|
|
1437
1446
|
:type bm: bmesh.types.BMesh
|
|
1438
|
-
:param faces:
|
|
1447
|
+
:param faces: Input faces.
|
|
1439
1448
|
:type faces: list[bmesh.types.BMFace]
|
|
1440
|
-
:param color_index:
|
|
1449
|
+
:param color_index: Index into color attribute list.
|
|
1441
1450
|
:type color_index: int
|
|
1442
1451
|
"""
|
|
1443
1452
|
|
|
@@ -1445,24 +1454,24 @@ def reverse_faces(
|
|
|
1445
1454
|
bm: bmesh.types.BMesh,
|
|
1446
1455
|
faces: list[bmesh.types.BMFace] = [],
|
|
1447
1456
|
flip_multires: bool = False,
|
|
1448
|
-
):
|
|
1457
|
+
) -> None:
|
|
1449
1458
|
"""Reverse Faces.Reverses the winding (vertex order) of faces.
|
|
1450
1459
|
This has the effect of flipping the normal.
|
|
1451
1460
|
|
|
1452
1461
|
:param bm: The bmesh to operate on.
|
|
1453
1462
|
:type bm: bmesh.types.BMesh
|
|
1454
|
-
:param faces:
|
|
1463
|
+
:param faces: Input faces.
|
|
1455
1464
|
:type faces: list[bmesh.types.BMFace]
|
|
1456
|
-
:param flip_multires:
|
|
1465
|
+
:param flip_multires: Maintain multi-res offset.
|
|
1457
1466
|
:type flip_multires: bool
|
|
1458
1467
|
"""
|
|
1459
1468
|
|
|
1460
|
-
def reverse_uvs(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
|
|
1469
|
+
def reverse_uvs(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []) -> None:
|
|
1461
1470
|
"""UV Reverse.Reverse the UVs
|
|
1462
1471
|
|
|
1463
1472
|
:param bm: The bmesh to operate on.
|
|
1464
1473
|
:type bm: bmesh.types.BMesh
|
|
1465
|
-
:param faces:
|
|
1474
|
+
:param faces: Input faces.
|
|
1466
1475
|
:type faces: list[bmesh.types.BMFace]
|
|
1467
1476
|
"""
|
|
1468
1477
|
|
|
@@ -1475,18 +1484,18 @@ def rotate(
|
|
|
1475
1484
|
space: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
1476
1485
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
1477
1486
|
use_shapekey: bool = False,
|
|
1478
|
-
):
|
|
1487
|
+
) -> None:
|
|
1479
1488
|
"""Rotate.Rotate vertices around a center, using a 3x3 rotation matrix.
|
|
1480
1489
|
|
|
1481
1490
|
:param bm: The bmesh to operate on.
|
|
1482
1491
|
:type bm: bmesh.types.BMesh
|
|
1483
|
-
:param cent:
|
|
1492
|
+
:param cent: Center of rotation.
|
|
1484
1493
|
:type cent: collections.abc.Sequence[float] | mathutils.Vector
|
|
1485
|
-
:param matrix:
|
|
1494
|
+
:param matrix: Matrix defining rotation.
|
|
1486
1495
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1487
|
-
:param verts:
|
|
1496
|
+
:param verts: Input vertices.
|
|
1488
1497
|
:type verts: list[bmesh.types.BMVert]
|
|
1489
|
-
:param space:
|
|
1498
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1490
1499
|
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1491
1500
|
:param use_shapekey: Transform shape keys too.
|
|
1492
1501
|
:type use_shapekey: bool
|
|
@@ -1497,16 +1506,16 @@ def rotate_colors(
|
|
|
1497
1506
|
faces: list[bmesh.types.BMFace] = [],
|
|
1498
1507
|
use_ccw: bool = False,
|
|
1499
1508
|
color_index: int = 0,
|
|
1500
|
-
):
|
|
1509
|
+
) -> None:
|
|
1501
1510
|
"""Color Rotation.Cycle the loop colors
|
|
1502
1511
|
|
|
1503
1512
|
:param bm: The bmesh to operate on.
|
|
1504
1513
|
:type bm: bmesh.types.BMesh
|
|
1505
|
-
:param faces:
|
|
1514
|
+
:param faces: Input faces.
|
|
1506
1515
|
:type faces: list[bmesh.types.BMFace]
|
|
1507
|
-
:param use_ccw:
|
|
1516
|
+
:param use_ccw: Rotate counter-clockwise if true, otherwise clockwise.
|
|
1508
1517
|
:type use_ccw: bool
|
|
1509
|
-
:param color_index:
|
|
1518
|
+
:param color_index: Index into color attribute list.
|
|
1510
1519
|
:type color_index: int
|
|
1511
1520
|
"""
|
|
1512
1521
|
|
|
@@ -1514,15 +1523,15 @@ def rotate_edges(
|
|
|
1514
1523
|
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], use_ccw: bool = False
|
|
1515
1524
|
) -> dict[str, typing.Any]:
|
|
1516
1525
|
"""Edge Rotate.Rotates edges topologically. Also known as "spin edge" to some people.
|
|
1517
|
-
Simple example: [/] becomes [|] then [].
|
|
1526
|
+
Simple example: [/] becomes [|] then [\].
|
|
1518
1527
|
|
|
1519
1528
|
:param bm: The bmesh to operate on.
|
|
1520
1529
|
:type bm: bmesh.types.BMesh
|
|
1521
|
-
:param edges:
|
|
1530
|
+
:param edges: Input edges.
|
|
1522
1531
|
:type edges: list[bmesh.types.BMEdge]
|
|
1523
|
-
:param use_ccw:
|
|
1532
|
+
:param use_ccw: Rotate edge counter-clockwise if true, otherwise clockwise.
|
|
1524
1533
|
:type use_ccw: bool
|
|
1525
|
-
:return: edges:
|
|
1534
|
+
:return: edges: Newly spun edges.
|
|
1526
1535
|
|
|
1527
1536
|
type list of (`bmesh.types.BMEdge`)
|
|
1528
1537
|
:rtype: dict[str, typing.Any]
|
|
@@ -1530,14 +1539,14 @@ def rotate_edges(
|
|
|
1530
1539
|
|
|
1531
1540
|
def rotate_uvs(
|
|
1532
1541
|
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], use_ccw: bool = False
|
|
1533
|
-
):
|
|
1542
|
+
) -> None:
|
|
1534
1543
|
"""UV Rotation.Cycle the loop UVs
|
|
1535
1544
|
|
|
1536
1545
|
:param bm: The bmesh to operate on.
|
|
1537
1546
|
:type bm: bmesh.types.BMesh
|
|
1538
|
-
:param faces:
|
|
1547
|
+
:param faces: Input faces.
|
|
1539
1548
|
:type faces: list[bmesh.types.BMFace]
|
|
1540
|
-
:param use_ccw:
|
|
1549
|
+
:param use_ccw: Rotate counter-clockwise if true, otherwise clockwise.
|
|
1541
1550
|
:type use_ccw: bool
|
|
1542
1551
|
"""
|
|
1543
1552
|
|
|
@@ -1548,16 +1557,16 @@ def scale(
|
|
|
1548
1557
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
1549
1558
|
verts: list[bmesh.types.BMVert] = [],
|
|
1550
1559
|
use_shapekey: bool = False,
|
|
1551
|
-
):
|
|
1560
|
+
) -> None:
|
|
1552
1561
|
"""Scale.Scales vertices by an offset.
|
|
1553
1562
|
|
|
1554
1563
|
:param bm: The bmesh to operate on.
|
|
1555
1564
|
:type bm: bmesh.types.BMesh
|
|
1556
|
-
:param vec:
|
|
1565
|
+
:param vec: Scale factor.
|
|
1557
1566
|
:type vec: collections.abc.Sequence[float] | mathutils.Vector
|
|
1558
|
-
:param space:
|
|
1567
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1559
1568
|
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1560
|
-
:param verts:
|
|
1569
|
+
:param verts: Input vertices.
|
|
1561
1570
|
:type verts: list[bmesh.types.BMVert]
|
|
1562
1571
|
:param use_shapekey: Transform shape keys too.
|
|
1563
1572
|
:type use_shapekey: bool
|
|
@@ -1572,25 +1581,25 @@ def smooth_laplacian_vert(
|
|
|
1572
1581
|
use_y: bool = False,
|
|
1573
1582
|
use_z: bool = False,
|
|
1574
1583
|
preserve_volume: bool = False,
|
|
1575
|
-
):
|
|
1584
|
+
) -> None:
|
|
1576
1585
|
"""Vertex Smooth Laplacian.Smooths vertices by using Laplacian smoothing propose by.
|
|
1577
1586
|
Desbrun, et al. Implicit Fairing of Irregular Meshes using Diffusion and Curvature Flow.
|
|
1578
1587
|
|
|
1579
1588
|
:param bm: The bmesh to operate on.
|
|
1580
1589
|
:type bm: bmesh.types.BMesh
|
|
1581
|
-
:param verts:
|
|
1590
|
+
:param verts: Input vertices.
|
|
1582
1591
|
:type verts: list[bmesh.types.BMVert]
|
|
1583
|
-
:param lambda_factor:
|
|
1592
|
+
:param lambda_factor: Lambda parameter.
|
|
1584
1593
|
:type lambda_factor: float
|
|
1585
|
-
:param lambda_border:
|
|
1594
|
+
:param lambda_border: Lambda param in border.
|
|
1586
1595
|
:type lambda_border: float
|
|
1587
|
-
:param use_x: Smooth object along X axis
|
|
1596
|
+
:param use_x: Smooth object along X axis.
|
|
1588
1597
|
:type use_x: bool
|
|
1589
|
-
:param use_y: Smooth object along Y axis
|
|
1598
|
+
:param use_y: Smooth object along Y axis.
|
|
1590
1599
|
:type use_y: bool
|
|
1591
|
-
:param use_z: Smooth object along Z axis
|
|
1600
|
+
:param use_z: Smooth object along Z axis.
|
|
1592
1601
|
:type use_z: bool
|
|
1593
|
-
:param preserve_volume: Apply volume preservation after smooth
|
|
1602
|
+
:param preserve_volume: Apply volume preservation after smooth.
|
|
1594
1603
|
:type preserve_volume: bool
|
|
1595
1604
|
"""
|
|
1596
1605
|
|
|
@@ -1605,28 +1614,28 @@ def smooth_vert(
|
|
|
1605
1614
|
use_axis_x: bool = False,
|
|
1606
1615
|
use_axis_y: bool = False,
|
|
1607
1616
|
use_axis_z: bool = False,
|
|
1608
|
-
):
|
|
1617
|
+
) -> None:
|
|
1609
1618
|
"""Vertex Smooth.Smooths vertices by using a basic vertex averaging scheme.
|
|
1610
1619
|
|
|
1611
1620
|
:param bm: The bmesh to operate on.
|
|
1612
1621
|
:type bm: bmesh.types.BMesh
|
|
1613
|
-
:param verts:
|
|
1622
|
+
:param verts: Input vertices.
|
|
1614
1623
|
:type verts: list[bmesh.types.BMVert]
|
|
1615
|
-
:param factor:
|
|
1624
|
+
:param factor: Smoothing factor.
|
|
1616
1625
|
:type factor: float
|
|
1617
|
-
:param mirror_clip_x:
|
|
1626
|
+
:param mirror_clip_x: Set vertices close to the x axis before the operation to 0.
|
|
1618
1627
|
:type mirror_clip_x: bool
|
|
1619
|
-
:param mirror_clip_y:
|
|
1628
|
+
:param mirror_clip_y: Set vertices close to the y axis before the operation to 0.
|
|
1620
1629
|
:type mirror_clip_y: bool
|
|
1621
|
-
:param mirror_clip_z:
|
|
1630
|
+
:param mirror_clip_z: Set vertices close to the z axis before the operation to 0.
|
|
1622
1631
|
:type mirror_clip_z: bool
|
|
1623
|
-
:param clip_dist:
|
|
1632
|
+
:param clip_dist: Clipping threshold for the above three slots.
|
|
1624
1633
|
:type clip_dist: float
|
|
1625
|
-
:param use_axis_x:
|
|
1634
|
+
:param use_axis_x: Smooth vertices along X axis.
|
|
1626
1635
|
:type use_axis_x: bool
|
|
1627
|
-
:param use_axis_y:
|
|
1636
|
+
:param use_axis_y: Smooth vertices along Y axis.
|
|
1628
1637
|
:type use_axis_y: bool
|
|
1629
|
-
:param use_axis_z:
|
|
1638
|
+
:param use_axis_z: Smooth vertices along Z axis.
|
|
1630
1639
|
:type use_axis_z: bool
|
|
1631
1640
|
"""
|
|
1632
1641
|
|
|
@@ -1641,9 +1650,9 @@ def solidify(
|
|
|
1641
1650
|
|
|
1642
1651
|
:param bm: The bmesh to operate on.
|
|
1643
1652
|
:type bm: bmesh.types.BMesh
|
|
1644
|
-
:param geom:
|
|
1653
|
+
:param geom: Input geometry.
|
|
1645
1654
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
1646
|
-
:param thickness:
|
|
1655
|
+
:param thickness: Thickness.
|
|
1647
1656
|
:type thickness: float
|
|
1648
1657
|
:return: geom:
|
|
1649
1658
|
|
|
@@ -1672,27 +1681,27 @@ def spin(
|
|
|
1672
1681
|
|
|
1673
1682
|
:param bm: The bmesh to operate on.
|
|
1674
1683
|
:type bm: bmesh.types.BMesh
|
|
1675
|
-
:param geom:
|
|
1684
|
+
:param geom: Input geometry.
|
|
1676
1685
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
1677
|
-
:param cent:
|
|
1686
|
+
:param cent: Rotation center.
|
|
1678
1687
|
:type cent: collections.abc.Sequence[float] | mathutils.Vector
|
|
1679
|
-
:param axis:
|
|
1688
|
+
:param axis: Rotation axis.
|
|
1680
1689
|
:type axis: collections.abc.Sequence[float] | mathutils.Vector
|
|
1681
|
-
:param dvec:
|
|
1690
|
+
:param dvec: Translation delta per step.
|
|
1682
1691
|
:type dvec: collections.abc.Sequence[float] | mathutils.Vector
|
|
1683
|
-
:param angle:
|
|
1692
|
+
:param angle: Total rotation angle (radians).
|
|
1684
1693
|
:type angle: float
|
|
1685
|
-
:param space:
|
|
1694
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1686
1695
|
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1687
|
-
:param steps:
|
|
1696
|
+
:param steps: Number of steps.
|
|
1688
1697
|
:type steps: int
|
|
1689
1698
|
:param use_merge: Merge first/last when the angle is a full revolution.
|
|
1690
1699
|
:type use_merge: bool
|
|
1691
1700
|
:param use_normal_flip: Create faces with reversed direction.
|
|
1692
1701
|
:type use_normal_flip: bool
|
|
1693
|
-
:param use_duplicate:
|
|
1702
|
+
:param use_duplicate: Duplicate or extrude?.
|
|
1694
1703
|
:type use_duplicate: bool
|
|
1695
|
-
:return: geom_last:
|
|
1704
|
+
:return: geom_last: Result of last step.
|
|
1696
1705
|
|
|
1697
1706
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1698
1707
|
:rtype: dict[str, typing.Any]
|
|
@@ -1711,11 +1720,11 @@ def split(
|
|
|
1711
1720
|
|
|
1712
1721
|
:param bm: The bmesh to operate on.
|
|
1713
1722
|
:type bm: bmesh.types.BMesh
|
|
1714
|
-
:param geom:
|
|
1723
|
+
:param geom: Input geometry.
|
|
1715
1724
|
:type geom: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
1716
|
-
:param dest:
|
|
1725
|
+
:param dest: Destination bmesh, if None will use current one.
|
|
1717
1726
|
:type dest: bmesh.types.BMesh | None
|
|
1718
|
-
:param use_only_faces:
|
|
1727
|
+
:param use_only_faces: When enabled. don't duplicate loose verts/edges.
|
|
1719
1728
|
:type use_only_faces: bool
|
|
1720
1729
|
:return: geom:
|
|
1721
1730
|
|
|
@@ -1741,13 +1750,13 @@ def split_edges(
|
|
|
1741
1750
|
|
|
1742
1751
|
:param bm: The bmesh to operate on.
|
|
1743
1752
|
:type bm: bmesh.types.BMesh
|
|
1744
|
-
:param edges:
|
|
1753
|
+
:param edges: Input edges.
|
|
1745
1754
|
:type edges: list[bmesh.types.BMEdge]
|
|
1746
|
-
:param verts:
|
|
1755
|
+
:param verts: Optional tag verts, use to have greater control of splits.
|
|
1747
1756
|
:type verts: list[bmesh.types.BMVert]
|
|
1748
|
-
:param use_verts:
|
|
1757
|
+
:param use_verts: Use 'verts' for splitting, else just find verts to split from edges.
|
|
1749
1758
|
:type use_verts: bool
|
|
1750
|
-
:return: edges:
|
|
1759
|
+
:return: edges: Old output disconnected edges.
|
|
1751
1760
|
|
|
1752
1761
|
type list of (`bmesh.types.BMEdge`)
|
|
1753
1762
|
:rtype: dict[str, typing.Any]
|
|
@@ -1768,19 +1777,19 @@ def subdivide_edgering(
|
|
|
1768
1777
|
|
|
1769
1778
|
:param bm: The bmesh to operate on.
|
|
1770
1779
|
:type bm: bmesh.types.BMesh
|
|
1771
|
-
:param edges:
|
|
1780
|
+
:param edges: Input vertices.
|
|
1772
1781
|
:type edges: list[bmesh.types.BMEdge]
|
|
1773
|
-
:param interp_mode:
|
|
1782
|
+
:param interp_mode: Interpolation method.
|
|
1774
1783
|
:type interp_mode: typing.Literal['LINEAR','PATH','SURFACE']
|
|
1775
|
-
:param smooth:
|
|
1784
|
+
:param smooth: Smoothness factor.
|
|
1776
1785
|
:type smooth: float
|
|
1777
|
-
:param cuts:
|
|
1786
|
+
:param cuts: Number of cuts.
|
|
1778
1787
|
:type cuts: int
|
|
1779
|
-
:param profile_shape:
|
|
1788
|
+
:param profile_shape: Profile shape type.
|
|
1780
1789
|
:type profile_shape: typing.Literal['SMOOTH','SPHERE','ROOT','SHARP','LINEAR','INVERSE_SQUARE']
|
|
1781
|
-
:param profile_shape_factor:
|
|
1790
|
+
:param profile_shape_factor: How much intermediary new edges are shrunk/expanded.
|
|
1782
1791
|
:type profile_shape_factor: float
|
|
1783
|
-
:return: faces:
|
|
1792
|
+
:return: faces: Output faces.
|
|
1784
1793
|
|
|
1785
1794
|
type list of (`bmesh.types.BMFace`)
|
|
1786
1795
|
:rtype: dict[str, typing.Any]
|
|
@@ -1813,33 +1822,33 @@ def subdivide_edges(
|
|
|
1813
1822
|
|
|
1814
1823
|
:param bm: The bmesh to operate on.
|
|
1815
1824
|
:type bm: bmesh.types.BMesh
|
|
1816
|
-
:param edges:
|
|
1825
|
+
:param edges: Input edges.
|
|
1817
1826
|
:type edges: list[bmesh.types.BMEdge]
|
|
1818
|
-
:param smooth:
|
|
1827
|
+
:param smooth: Smoothness factor.
|
|
1819
1828
|
:type smooth: float
|
|
1820
|
-
:param smooth_falloff:
|
|
1829
|
+
:param smooth_falloff: Smooth falloff type.
|
|
1821
1830
|
:type smooth_falloff: typing.Literal['SMOOTH','SPHERE','ROOT','SHARP','LINEAR','INVERSE_SQUARE']
|
|
1822
|
-
:param fractal:
|
|
1831
|
+
:param fractal: Fractal randomness factor.
|
|
1823
1832
|
:type fractal: float
|
|
1824
|
-
:param along_normal:
|
|
1833
|
+
:param along_normal: Apply fractal displacement along normal only.
|
|
1825
1834
|
:type along_normal: float
|
|
1826
|
-
:param cuts:
|
|
1835
|
+
:param cuts: Number of cuts.
|
|
1827
1836
|
:type cuts: int
|
|
1828
|
-
:param seed:
|
|
1837
|
+
:param seed: Seed for the random number generator.
|
|
1829
1838
|
:type seed: int
|
|
1830
|
-
:param custom_patterns:
|
|
1839
|
+
:param custom_patterns: Uses custom pointers.
|
|
1831
1840
|
:param edge_percents: Undocumented.
|
|
1832
|
-
:param quad_corner_type:
|
|
1841
|
+
:param quad_corner_type: Quad corner type.
|
|
1833
1842
|
:type quad_corner_type: typing.Literal['STRAIGHT_CUT','INNER_VERT','PATH','FAN']
|
|
1834
|
-
:param use_grid_fill:
|
|
1843
|
+
:param use_grid_fill: Fill in fully-selected faces with a grid.
|
|
1835
1844
|
:type use_grid_fill: bool
|
|
1836
|
-
:param use_single_edge:
|
|
1845
|
+
:param use_single_edge: Tessellate the case of one edge selected in a quad or triangle.
|
|
1837
1846
|
:type use_single_edge: bool
|
|
1838
1847
|
:param use_only_quads: Only subdivide quads (for loop-cut).
|
|
1839
1848
|
:type use_only_quads: bool
|
|
1840
|
-
:param use_sphere:
|
|
1849
|
+
:param use_sphere: For making new primitives only.
|
|
1841
1850
|
:type use_sphere: bool
|
|
1842
|
-
:param use_smooth_even:
|
|
1851
|
+
:param use_smooth_even: Maintain even offset when smoothing.
|
|
1843
1852
|
:type use_smooth_even: bool
|
|
1844
1853
|
:return: geom_inner:
|
|
1845
1854
|
|
|
@@ -1849,7 +1858,7 @@ def subdivide_edges(
|
|
|
1849
1858
|
|
|
1850
1859
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1851
1860
|
|
|
1852
|
-
geom:
|
|
1861
|
+
geom: Contains all output geometry.
|
|
1853
1862
|
|
|
1854
1863
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1855
1864
|
:rtype: dict[str, typing.Any]
|
|
@@ -1871,11 +1880,11 @@ def symmetrize(
|
|
|
1871
1880
|
|
|
1872
1881
|
:param bm: The bmesh to operate on.
|
|
1873
1882
|
:type bm: bmesh.types.BMesh
|
|
1874
|
-
:param input:
|
|
1883
|
+
:param input: Input geometry.
|
|
1875
1884
|
:type input: list[bmesh.types.BMEdge] | list[bmesh.types.BMFace] | list[bmesh.types.BMVert]
|
|
1876
|
-
:param direction:
|
|
1885
|
+
:param direction: Axis to use.
|
|
1877
1886
|
:type direction: typing.Literal['-X','-Y','-Z','X','Y','Z']
|
|
1878
|
-
:param dist:
|
|
1887
|
+
:param dist: Minimum distance.
|
|
1879
1888
|
:type dist: float
|
|
1880
1889
|
:param use_shapekey: Transform shape keys too.
|
|
1881
1890
|
:type use_shapekey: bool
|
|
@@ -1893,17 +1902,17 @@ def transform(
|
|
|
1893
1902
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
1894
1903
|
verts: list[bmesh.types.BMVert] = [],
|
|
1895
1904
|
use_shapekey: bool = False,
|
|
1896
|
-
):
|
|
1905
|
+
) -> None:
|
|
1897
1906
|
"""Transform.Transforms a set of vertices by a matrix. Multiplies
|
|
1898
1907
|
the vertex coordinates with the matrix.
|
|
1899
1908
|
|
|
1900
1909
|
:param bm: The bmesh to operate on.
|
|
1901
1910
|
:type bm: bmesh.types.BMesh
|
|
1902
|
-
:param matrix:
|
|
1911
|
+
:param matrix: Transform matrix.
|
|
1903
1912
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1904
|
-
:param space:
|
|
1913
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1905
1914
|
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1906
|
-
:param verts:
|
|
1915
|
+
:param verts: Input vertices.
|
|
1907
1916
|
:type verts: list[bmesh.types.BMVert]
|
|
1908
1917
|
:param use_shapekey: Transform shape keys too.
|
|
1909
1918
|
:type use_shapekey: bool
|
|
@@ -1916,16 +1925,16 @@ def translate(
|
|
|
1916
1925
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
1917
1926
|
verts: list[bmesh.types.BMVert] = [],
|
|
1918
1927
|
use_shapekey: bool = False,
|
|
1919
|
-
):
|
|
1928
|
+
) -> None:
|
|
1920
1929
|
"""Translate.Translate vertices by an offset.
|
|
1921
1930
|
|
|
1922
1931
|
:param bm: The bmesh to operate on.
|
|
1923
1932
|
:type bm: bmesh.types.BMesh
|
|
1924
|
-
:param vec:
|
|
1933
|
+
:param vec: Translation offset.
|
|
1925
1934
|
:type vec: collections.abc.Sequence[float] | mathutils.Vector
|
|
1926
|
-
:param space:
|
|
1935
|
+
:param space: Matrix to define the space (typically object matrix).
|
|
1927
1936
|
:type space: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1928
|
-
:param verts:
|
|
1937
|
+
:param verts: Input vertices.
|
|
1929
1938
|
:type verts: list[bmesh.types.BMVert]
|
|
1930
1939
|
:param use_shapekey: Transform shape keys too.
|
|
1931
1940
|
:type use_shapekey: bool
|
|
@@ -1942,15 +1951,15 @@ def triangle_fill(
|
|
|
1942
1951
|
|
|
1943
1952
|
:param bm: The bmesh to operate on.
|
|
1944
1953
|
:type bm: bmesh.types.BMesh
|
|
1945
|
-
:param use_beauty:
|
|
1954
|
+
:param use_beauty: Use best triangulation division.
|
|
1946
1955
|
:type use_beauty: bool
|
|
1947
|
-
:param use_dissolve:
|
|
1956
|
+
:param use_dissolve: Dissolve resulting faces.
|
|
1948
1957
|
:type use_dissolve: bool
|
|
1949
|
-
:param edges:
|
|
1958
|
+
:param edges: Input edges.
|
|
1950
1959
|
:type edges: list[bmesh.types.BMEdge]
|
|
1951
|
-
:param normal:
|
|
1960
|
+
:param normal: Optionally pass the fill normal to use.
|
|
1952
1961
|
:type normal: collections.abc.Sequence[float] | mathutils.Vector
|
|
1953
|
-
:return: geom:
|
|
1962
|
+
:return: geom: New faces and edges.
|
|
1954
1963
|
|
|
1955
1964
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1956
1965
|
:rtype: dict[str, typing.Any]
|
|
@@ -1968,11 +1977,11 @@ def triangulate(
|
|
|
1968
1977
|
|
|
1969
1978
|
:param bm: The bmesh to operate on.
|
|
1970
1979
|
:type bm: bmesh.types.BMesh
|
|
1971
|
-
:param faces:
|
|
1980
|
+
:param faces: Input faces.
|
|
1972
1981
|
:type faces: list[bmesh.types.BMFace]
|
|
1973
|
-
:param quad_method:
|
|
1982
|
+
:param quad_method: Method for splitting the quads into triangles.
|
|
1974
1983
|
:type quad_method: typing.Literal['BEAUTY','FIXED','ALTERNATE','SHORT_EDGE','LONG_EDGE']
|
|
1975
|
-
:param ngon_method:
|
|
1984
|
+
:param ngon_method: Method for splitting the polygons into triangles.
|
|
1976
1985
|
:type ngon_method: typing.Literal['BEAUTY','EAR_CLIP']
|
|
1977
1986
|
:return: edges:
|
|
1978
1987
|
|
|
@@ -1986,7 +1995,7 @@ def triangulate(
|
|
|
1986
1995
|
|
|
1987
1996
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1988
1997
|
|
|
1989
|
-
face_map_double:
|
|
1998
|
+
face_map_double: Duplicate faces.
|
|
1990
1999
|
|
|
1991
2000
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1992
2001
|
:rtype: dict[str, typing.Any]
|
|
@@ -1994,25 +2003,25 @@ def triangulate(
|
|
|
1994
2003
|
|
|
1995
2004
|
def unsubdivide(
|
|
1996
2005
|
bm: bmesh.types.BMesh, verts: list[bmesh.types.BMVert] = [], iterations: int = 0
|
|
1997
|
-
):
|
|
2006
|
+
) -> None:
|
|
1998
2007
|
"""Un-Subdivide.Reduce detail in geometry containing grids.
|
|
1999
2008
|
|
|
2000
2009
|
:param bm: The bmesh to operate on.
|
|
2001
2010
|
:type bm: bmesh.types.BMesh
|
|
2002
|
-
:param verts:
|
|
2011
|
+
:param verts: Input vertices.
|
|
2003
2012
|
:type verts: list[bmesh.types.BMVert]
|
|
2004
|
-
:param iterations:
|
|
2013
|
+
:param iterations: Number of times to unsubdivide.
|
|
2005
2014
|
:type iterations: int
|
|
2006
2015
|
"""
|
|
2007
2016
|
|
|
2008
|
-
def weld_verts(bm: bmesh.types.BMesh, targetmap={}):
|
|
2017
|
+
def weld_verts(bm: bmesh.types.BMesh, targetmap={}) -> None:
|
|
2009
2018
|
"""Weld Verts.Welds verts together (kind-of like remove doubles, merge, etc, all of which
|
|
2010
2019
|
use or will use this BMOP). You pass in mappings from vertices to the vertices
|
|
2011
2020
|
they weld with.
|
|
2012
2021
|
|
|
2013
2022
|
:param bm: The bmesh to operate on.
|
|
2014
2023
|
:type bm: bmesh.types.BMesh
|
|
2015
|
-
:param targetmap:
|
|
2024
|
+
:param targetmap: Maps welded vertices to verts they should weld to.
|
|
2016
2025
|
"""
|
|
2017
2026
|
|
|
2018
2027
|
def wireframe(
|
|
@@ -2032,27 +2041,27 @@ def wireframe(
|
|
|
2032
2041
|
|
|
2033
2042
|
:param bm: The bmesh to operate on.
|
|
2034
2043
|
:type bm: bmesh.types.BMesh
|
|
2035
|
-
:param faces:
|
|
2044
|
+
:param faces: Input faces.
|
|
2036
2045
|
:type faces: list[bmesh.types.BMFace]
|
|
2037
|
-
:param thickness:
|
|
2046
|
+
:param thickness: Thickness.
|
|
2038
2047
|
:type thickness: float
|
|
2039
|
-
:param offset:
|
|
2048
|
+
:param offset: Offset the thickness from the center.
|
|
2040
2049
|
:type offset: float
|
|
2041
|
-
:param use_replace:
|
|
2050
|
+
:param use_replace: Remove original geometry.
|
|
2042
2051
|
:type use_replace: bool
|
|
2043
|
-
:param use_boundary:
|
|
2052
|
+
:param use_boundary: Inset face boundaries.
|
|
2044
2053
|
:type use_boundary: bool
|
|
2045
|
-
:param use_even_offset:
|
|
2054
|
+
:param use_even_offset: Scale the offset to give more even thickness.
|
|
2046
2055
|
:type use_even_offset: bool
|
|
2047
|
-
:param use_crease:
|
|
2056
|
+
:param use_crease: Crease hub edges for improved subdivision surface.
|
|
2048
2057
|
:type use_crease: bool
|
|
2049
|
-
:param crease_weight:
|
|
2058
|
+
:param crease_weight: The mean crease weight for resulting edges.
|
|
2050
2059
|
:type crease_weight: float
|
|
2051
|
-
:param use_relative_offset:
|
|
2060
|
+
:param use_relative_offset: Scale the offset by surrounding geometry.
|
|
2052
2061
|
:type use_relative_offset: bool
|
|
2053
|
-
:param material_offset:
|
|
2062
|
+
:param material_offset: Offset material index of generated faces.
|
|
2054
2063
|
:type material_offset: int
|
|
2055
|
-
:return: faces:
|
|
2064
|
+
:return: faces: Output faces.
|
|
2056
2065
|
|
|
2057
2066
|
type list of (`bmesh.types.BMFace`)
|
|
2058
2067
|
:rtype: dict[str, typing.Any]
|