fake-bpy-module-latest 20260113__py3-none-any.whl → 20260114__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/autocomplete/complete_calltip/__init__.pyi +0 -13
- _bl_console_utils/autocomplete/complete_import/__init__.pyi +0 -5
- _bl_console_utils/autocomplete/complete_namespace/__init__.pyi +0 -11
- _bl_console_utils/autocomplete/intellisense/__init__.pyi +0 -10
- _bpy_types/__init__.pyi +1 -122
- _rna_info/__init__.pyi +0 -1
- addon_utils/__init__.pyi +0 -13
- aud/__init__.pyi +0 -146
- bl_math/__init__.pyi +0 -12
- bl_operators/add_mesh_torus/__init__.pyi +0 -2
- bl_operators/anim/__init__.pyi +0 -26
- bl_operators/assets/__init__.pyi +0 -6
- bl_operators/bone_selection_sets/__init__.pyi +0 -28
- bl_operators/clip/__init__.pyi +0 -20
- bl_operators/connect_to_output/__init__.pyi +0 -2
- bl_operators/console/__init__.pyi +0 -10
- bl_operators/constraint/__init__.pyi +0 -8
- bl_operators/copy_global_transform/__init__.pyi +0 -10
- bl_operators/file/__init__.pyi +0 -6
- bl_operators/freestyle/__init__.pyi +0 -8
- bl_operators/geometry_nodes/__init__.pyi +0 -8
- bl_operators/grease_pencil/__init__.pyi +0 -2
- bl_operators/image/__init__.pyi +0 -10
- bl_operators/image_as_planes/__init__.pyi +0 -4
- bl_operators/mesh/__init__.pyi +0 -4
- bl_operators/node/__init__.pyi +0 -44
- bl_operators/object/__init__.pyi +0 -30
- bl_operators/object_align/__init__.pyi +0 -2
- bl_operators/object_quick_effects/__init__.pyi +0 -8
- bl_operators/object_randomize_transform/__init__.pyi +0 -2
- bl_operators/presets/__init__.pyi +0 -50
- bl_operators/rigidbody/__init__.pyi +0 -6
- bl_operators/screen_play_rendered_anim/__init__.pyi +0 -2
- bl_operators/sequencer/__init__.pyi +0 -16
- bl_operators/spreadsheet/__init__.pyi +0 -2
- bl_operators/userpref/__init__.pyi +0 -50
- bl_operators/uvcalc_follow_active/__init__.pyi +0 -2
- bl_operators/uvcalc_lightmap/__init__.pyi +0 -2
- bl_operators/uvcalc_transform/__init__.pyi +0 -4
- bl_operators/vertexpaint_dirt/__init__.pyi +0 -2
- bl_operators/view3d/__init__.pyi +0 -16
- bl_operators/wm/__init__.pyi +0 -92
- bl_operators/world/__init__.pyi +0 -2
- bl_ui/__init__.pyi +0 -4
- bl_ui/anim/__init__.pyi +0 -2
- bl_ui/asset_shelf/__init__.pyi +0 -2
- bl_ui/generic_ui_list/__init__.pyi +1 -17
- bl_ui/node_add_menu/__init__.pyi +0 -10
- bl_ui/node_add_menu_compositor/__init__.pyi +0 -38
- bl_ui/node_add_menu_geometry/__init__.pyi +0 -112
- bl_ui/node_add_menu_shader/__init__.pyi +0 -20
- bl_ui/node_add_menu_texture/__init__.pyi +0 -16
- bl_ui/properties_collection/__init__.pyi +0 -14
- bl_ui/properties_constraint/__init__.pyi +0 -154
- bl_ui/properties_data_armature/__init__.pyi +0 -36
- bl_ui/properties_data_bone/__init__.pyi +0 -20
- bl_ui/properties_data_camera/__init__.pyi +0 -30
- bl_ui/properties_data_curve/__init__.pyi +0 -30
- bl_ui/properties_data_curves/__init__.pyi +0 -16
- bl_ui/properties_data_empty/__init__.pyi +0 -4
- bl_ui/properties_data_grease_pencil/__init__.pyi +0 -40
- bl_ui/properties_data_lattice/__init__.pyi +0 -8
- bl_ui/properties_data_light/__init__.pyi +0 -20
- bl_ui/properties_data_lightprobe/__init__.pyi +0 -28
- bl_ui/properties_data_mesh/__init__.pyi +0 -42
- bl_ui/properties_data_metaball/__init__.pyi +0 -12
- bl_ui/properties_data_modifier/__init__.pyi +0 -18
- bl_ui/properties_data_pointcloud/__init__.pyi +0 -12
- bl_ui/properties_data_shaderfx/__init__.pyi +0 -2
- bl_ui/properties_data_speaker/__init__.pyi +0 -12
- bl_ui/properties_data_volume/__init__.pyi +0 -18
- bl_ui/properties_freestyle/__init__.pyi +0 -50
- bl_ui/properties_grease_pencil_common/__init__.pyi +0 -14
- bl_ui/properties_mask_common/__init__.pyi +0 -14
- bl_ui/properties_material/__init__.pyi +0 -32
- bl_ui/properties_material_gpencil/__init__.pyi +0 -22
- bl_ui/properties_object/__init__.pyi +0 -44
- bl_ui/properties_output/__init__.pyi +0 -40
- bl_ui/properties_paint_common/__init__.pyi +0 -4
- bl_ui/properties_particle/__init__.pyi +0 -106
- bl_ui/properties_physics_cloth/__init__.pyi +0 -28
- bl_ui/properties_physics_common/__init__.pyi +0 -2
- bl_ui/properties_physics_dynamicpaint/__init__.pyi +0 -44
- bl_ui/properties_physics_field/__init__.pyi +0 -20
- bl_ui/properties_physics_fluid/__init__.pyi +0 -56
- bl_ui/properties_physics_geometry_nodes/__init__.pyi +0 -2
- bl_ui/properties_physics_rigidbody/__init__.pyi +0 -16
- bl_ui/properties_physics_rigidbody_constraint/__init__.pyi +0 -26
- bl_ui/properties_physics_softbody/__init__.pyi +0 -30
- bl_ui/properties_render/__init__.pyi +0 -90
- bl_ui/properties_scene/__init__.pyi +0 -34
- bl_ui/properties_strip/__init__.pyi +0 -42
- bl_ui/properties_strip_modifier/__init__.pyi +0 -2
- bl_ui/properties_texture/__init__.pyi +0 -54
- bl_ui/properties_view_layer/__init__.pyi +0 -28
- bl_ui/properties_workspace/__init__.pyi +0 -8
- bl_ui/properties_world/__init__.pyi +0 -22
- bl_ui/space_clip/__init__.pyi +0 -150
- bl_ui/space_console/__init__.pyi +0 -12
- bl_ui/space_dopesheet/__init__.pyi +0 -64
- bl_ui/space_filebrowser/__init__.pyi +0 -60
- bl_ui/space_graph/__init__.pyi +0 -44
- bl_ui/space_image/__init__.pyi +0 -142
- bl_ui/space_info/__init__.pyi +0 -12
- bl_ui/space_nla/__init__.pyi +0 -36
- bl_ui/space_node/__init__.pyi +0 -66
- bl_ui/space_outliner/__init__.pyi +0 -30
- bl_ui/space_properties/__init__.pyi +0 -8
- bl_ui/space_sequencer/__init__.pyi +0 -136
- bl_ui/space_spreadsheet/__init__.pyi +0 -6
- bl_ui/space_statusbar/__init__.pyi +0 -2
- bl_ui/space_text/__init__.pyi +0 -32
- bl_ui/space_time/__init__.pyi +0 -12
- bl_ui/space_topbar/__init__.pyi +0 -52
- bl_ui/space_userpref/__init__.pyi +0 -186
- bl_ui/space_view3d/__init__.pyi +0 -536
- bl_ui/space_view3d_sidebar/__init__.pyi +0 -8
- bl_ui/space_view3d_toolbar/__init__.pyi +0 -162
- blf/__init__.pyi +0 -47
- bmesh/__init__.pyi +0 -7
- bmesh/geometry/__init__.pyi +0 -3
- bmesh/ops/__init__.pyi +0 -451
- bmesh/types/__init__.pyi +65 -427
- bmesh/utils/__init__.pyi +0 -44
- bpy/app/__init__.pyi +0 -5
- bpy/app/icons/__init__.pyi +0 -6
- bpy/app/timers/__init__.pyi +0 -6
- bpy/app/translations/__init__.pyi +0 -15
- bpy/msgbus/__init__.pyi +1 -4
- bpy/ops/action/__init__.pyi +15 -165
- bpy/ops/anim/__init__.pyi +27 -274
- bpy/ops/armature/__init__.pyi +17 -191
- bpy/ops/asset/__init__.pyi +11 -97
- bpy/ops/boid/__init__.pyi +7 -38
- bpy/ops/brush/__init__.pyi +3 -72
- bpy/ops/buttons/__init__.pyi +4 -71
- bpy/ops/cachefile/__init__.pyi +2 -63
- bpy/ops/camera/__init__.pyi +0 -11
- bpy/ops/clip/__init__.pyi +43 -427
- bpy/ops/cloth/__init__.pyi +0 -5
- bpy/ops/collection/__init__.pyi +2 -34
- bpy/ops/console/__init__.pyi +10 -88
- bpy/ops/constraint/__init__.pyi +3 -80
- bpy/ops/curve/__init__.pyi +23 -254
- bpy/ops/curves/__init__.pyi +15 -164
- bpy/ops/cycles/__init__.pyi +1 -14
- bpy/ops/dpaint/__init__.pyi +3 -21
- bpy/ops/ed/__init__.pyi +10 -82
- bpy/ops/export_anim/__init__.pyi +0 -11
- bpy/ops/export_scene/__init__.pyi +0 -154
- bpy/ops/extensions/__init__.pyi +15 -150
- bpy/ops/file/__init__.pyi +27 -217
- bpy/ops/fluid/__init__.pyi +13 -70
- bpy/ops/font/__init__.pyi +10 -134
- bpy/ops/geometry/__init__.pyi +3 -41
- bpy/ops/gizmogroup/__init__.pyi +1 -12
- bpy/ops/gpencil/__init__.pyi +5 -38
- bpy/ops/graph/__init__.pyi +18 -316
- bpy/ops/grease_pencil/__init__.pyi +27 -522
- bpy/ops/image/__init__.pyi +19 -379
- bpy/ops/import_anim/__init__.pyi +0 -14
- bpy/ops/import_curve/__init__.pyi +0 -6
- bpy/ops/import_scene/__init__.pyi +0 -50
- bpy/ops/info/__init__.pyi +4 -35
- bpy/ops/lattice/__init__.pyi +3 -33
- bpy/ops/marker/__init__.pyi +2 -50
- bpy/ops/mask/__init__.pyi +17 -176
- bpy/ops/material/__init__.pyi +3 -15
- bpy/ops/mball/__init__.pyi +1 -30
- bpy/ops/mesh/__init__.pyi +30 -913
- bpy/ops/nla/__init__.pyi +19 -183
- bpy/ops/node/__init__.pyi +53 -745
- bpy/ops/object/__init__.pyi +75 -1285
- bpy/ops/outliner/__init__.pyi +47 -327
- bpy/ops/paint/__init__.pyi +14 -279
- bpy/ops/paintcurve/__init__.pyi +4 -36
- bpy/ops/palette/__init__.pyi +3 -27
- bpy/ops/particle/__init__.pyi +20 -160
- bpy/ops/pointcloud/__init__.pyi +3 -35
- bpy/ops/pose/__init__.pyi +25 -230
- bpy/ops/poselib/__init__.pyi +4 -47
- bpy/ops/preferences/__init__.pyi +9 -177
- bpy/ops/ptcache/__init__.pyi +5 -31
- bpy/ops/render/__init__.pyi +3 -70
- bpy/ops/rigidbody/__init__.pyi +6 -56
- bpy/ops/scene/__init__.pyi +22 -167
- bpy/ops/screen/__init__.pyi +19 -214
- bpy/ops/script/__init__.pyi +1 -12
- bpy/ops/sculpt/__init__.pyi +7 -271
- bpy/ops/sculpt_curves/__init__.pyi +1 -20
- bpy/ops/sequencer/__init__.pyi +36 -672
- bpy/ops/sound/__init__.pyi +3 -109
- bpy/ops/spreadsheet/__init__.pyi +5 -32
- bpy/ops/surface/__init__.pyi +0 -48
- bpy/ops/text/__init__.pyi +25 -226
- bpy/ops/text_editor/__init__.pyi +0 -5
- bpy/ops/texture/__init__.pyi +3 -18
- bpy/ops/transform/__init__.pyi +2 -381
- bpy/ops/ui/__init__.pyi +21 -158
- bpy/ops/uilist/__init__.pyi +0 -13
- bpy/ops/uv/__init__.pyi +9 -316
- bpy/ops/view2d/__init__.pyi +3 -73
- bpy/ops/view3d/__init__.pyi +37 -339
- bpy/ops/wm/__init__.pyi +25 -1308
- bpy/ops/workspace/__init__.pyi +7 -39
- bpy/ops/world/__init__.pyi +2 -10
- bpy/path/__init__.pyi +0 -34
- bpy/props/__init__.pyi +12 -148
- bpy/types/__init__.pyi +9867 -55713
- bpy/utils/__init__.pyi +2 -73
- bpy/utils/previews/__init__.pyi +0 -9
- bpy/utils/units/__init__.pyi +0 -12
- bpy_extras/anim_utils/__init__.pyi +0 -8
- bpy_extras/bmesh_utils/__init__.pyi +0 -1
- bpy_extras/id_map_utils/__init__.pyi +4 -5
- bpy_extras/image_utils/__init__.pyi +0 -9
- bpy_extras/io_utils/__init__.pyi +2 -22
- bpy_extras/mesh_utils/__init__.pyi +0 -12
- bpy_extras/object_utils/__init__.pyi +0 -14
- bpy_extras/view3d_utils/__init__.pyi +0 -18
- {fake_bpy_module_latest-20260113.dist-info → fake_bpy_module_latest-20260114.dist-info}/METADATA +2 -1
- fake_bpy_module_latest-20260114.dist-info/RECORD +382 -0
- freestyle/chainingiterators/__init__.pyi +0 -22
- freestyle/functions/__init__.pyi +0 -139
- freestyle/predicates/__init__.pyi +0 -51
- freestyle/shaders/__init__.pyi +0 -65
- freestyle/types/__init__.pyi +139 -777
- freestyle/utils/ContextFunctions/__init__.pyi +0 -23
- freestyle/utils/__init__.pyi +0 -6
- gpu/capabilities/__init__.pyi +0 -21
- gpu/matrix/__init__.pyi +0 -9
- gpu/platform/__init__.pyi +0 -5
- gpu/shader/__init__.pyi +0 -5
- gpu/state/__init__.pyi +0 -29
- gpu/texture/__init__.pyi +0 -2
- gpu/types/__init__.pyi +10 -149
- gpu_extras/batch/__init__.pyi +0 -4
- gpu_extras/presets/__init__.pyi +0 -9
- idprop/types/__init__.pyi +0 -4
- imbuf/__init__.pyi +0 -7
- imbuf/types/__init__.pyi +5 -25
- keyingsets_builtins/__init__.pyi +0 -44
- mathutils/__init__.pyi +46 -2160
- mathutils/bvhtree/__init__.pyi +1 -24
- mathutils/geometry/__init__.pyi +0 -129
- mathutils/interpolate/__init__.pyi +0 -3
- mathutils/kdtree/__init__.pyi +0 -11
- mathutils/noise/__init__.pyi +0 -62
- fake_bpy_module_latest-20260113.dist-info/RECORD +0 -382
- {fake_bpy_module_latest-20260113.dist-info → fake_bpy_module_latest-20260114.dist-info}/WHEEL +0 -0
- {fake_bpy_module_latest-20260113.dist-info → fake_bpy_module_latest-20260114.dist-info}/top_level.txt +0 -0
bmesh/types/__init__.pyi
CHANGED
|
@@ -47,10 +47,8 @@ class BMDeformVert:
|
|
|
47
47
|
when not found (matches Pythons dictionary function of the same name).
|
|
48
48
|
|
|
49
49
|
:param key: The key associated with deform weight.
|
|
50
|
-
:type key: int
|
|
51
50
|
:param default: Optional argument for the value to return if
|
|
52
51
|
key is not found.
|
|
53
|
-
:type default: typing.Any | None
|
|
54
52
|
"""
|
|
55
53
|
|
|
56
54
|
def items(self) -> list[tuple[int, float]]:
|
|
@@ -58,7 +56,6 @@ class BMDeformVert:
|
|
|
58
56
|
(matching Pythons dict.items() functionality).
|
|
59
57
|
|
|
60
58
|
:return: (key, value) pairs for each deform weight of this vertex.
|
|
61
|
-
:rtype: list[tuple[int, float]]
|
|
62
59
|
"""
|
|
63
60
|
|
|
64
61
|
def keys(self) -> list[int]:
|
|
@@ -66,7 +63,6 @@ class BMDeformVert:
|
|
|
66
63
|
(matching Pythons dict.keys() functionality).
|
|
67
64
|
|
|
68
65
|
:return: the deform group this vertex uses
|
|
69
|
-
:rtype: list[int]
|
|
70
66
|
"""
|
|
71
67
|
|
|
72
68
|
def values(self) -> list[float]:
|
|
@@ -74,59 +70,34 @@ class BMDeformVert:
|
|
|
74
70
|
(matching Pythons dict.values() functionality).
|
|
75
71
|
|
|
76
72
|
:return: The weights that influence this vertex
|
|
77
|
-
:rtype: list[float]
|
|
78
73
|
"""
|
|
79
74
|
|
|
80
75
|
class BMEdge:
|
|
81
76
|
"""The BMesh edge connecting 2 verts"""
|
|
82
77
|
|
|
83
78
|
hide: bool
|
|
84
|
-
""" Hidden state of this element.
|
|
85
|
-
|
|
86
|
-
:type: bool
|
|
87
|
-
"""
|
|
79
|
+
""" Hidden state of this element."""
|
|
88
80
|
|
|
89
81
|
index: int
|
|
90
|
-
""" Index of this element.
|
|
91
|
-
|
|
92
|
-
:type: int
|
|
93
|
-
"""
|
|
82
|
+
""" Index of this element."""
|
|
94
83
|
|
|
95
84
|
is_boundary: bool
|
|
96
|
-
""" True when this edge is at the boundary of a face (read-only).
|
|
97
|
-
|
|
98
|
-
:type: bool
|
|
99
|
-
"""
|
|
85
|
+
""" True when this edge is at the boundary of a face (read-only)."""
|
|
100
86
|
|
|
101
87
|
is_contiguous: bool
|
|
102
|
-
""" True when this edge is manifold, between two faces with the same winding (read-only).
|
|
103
|
-
|
|
104
|
-
:type: bool
|
|
105
|
-
"""
|
|
88
|
+
""" True when this edge is manifold, between two faces with the same winding (read-only)."""
|
|
106
89
|
|
|
107
90
|
is_convex: bool
|
|
108
|
-
""" True when this edge joins two convex faces, depends on a valid face normal (read-only).
|
|
109
|
-
|
|
110
|
-
:type: bool
|
|
111
|
-
"""
|
|
91
|
+
""" True when this edge joins two convex faces, depends on a valid face normal (read-only)."""
|
|
112
92
|
|
|
113
93
|
is_manifold: bool
|
|
114
|
-
""" True when this edge is manifold (read-only).
|
|
115
|
-
|
|
116
|
-
:type: bool
|
|
117
|
-
"""
|
|
94
|
+
""" True when this edge is manifold (read-only)."""
|
|
118
95
|
|
|
119
96
|
is_valid: bool
|
|
120
|
-
""" True when this element is valid (hasn't been removed).
|
|
121
|
-
|
|
122
|
-
:type: bool
|
|
123
|
-
"""
|
|
97
|
+
""" True when this element is valid (hasn't been removed)."""
|
|
124
98
|
|
|
125
99
|
is_wire: bool
|
|
126
|
-
""" True when this edge is not connected to any faces (read-only).
|
|
127
|
-
|
|
128
|
-
:type: bool
|
|
129
|
-
"""
|
|
100
|
+
""" True when this edge is not connected to any faces (read-only)."""
|
|
130
101
|
|
|
131
102
|
link_faces: typing.Any
|
|
132
103
|
""" Faces connected to this edge, (read-only)."""
|
|
@@ -135,28 +106,16 @@ class BMEdge:
|
|
|
135
106
|
""" Loops connected to this edge, (read-only)."""
|
|
136
107
|
|
|
137
108
|
seam: bool
|
|
138
|
-
""" Seam for UV unwrapping.
|
|
139
|
-
|
|
140
|
-
:type: bool
|
|
141
|
-
"""
|
|
109
|
+
""" Seam for UV unwrapping."""
|
|
142
110
|
|
|
143
111
|
select: bool
|
|
144
|
-
""" Selected state of this element.
|
|
145
|
-
|
|
146
|
-
:type: bool
|
|
147
|
-
"""
|
|
112
|
+
""" Selected state of this element."""
|
|
148
113
|
|
|
149
114
|
smooth: bool
|
|
150
|
-
""" Smooth state of this element.
|
|
151
|
-
|
|
152
|
-
:type: bool
|
|
153
|
-
"""
|
|
115
|
+
""" Smooth state of this element."""
|
|
154
116
|
|
|
155
117
|
tag: bool
|
|
156
|
-
""" Generic attribute scripts can use for own logic
|
|
157
|
-
|
|
158
|
-
:type: bool
|
|
159
|
-
"""
|
|
118
|
+
""" Generic attribute scripts can use for own logic"""
|
|
160
119
|
|
|
161
120
|
verts: typing.Any
|
|
162
121
|
""" Verts this edge uses (always 2), (read-only)."""
|
|
@@ -166,9 +125,7 @@ class BMEdge:
|
|
|
166
125
|
|
|
167
126
|
:param fallback: return this when the edge doesnt have 2 faces
|
|
168
127
|
(instead of raising a `ValueError`).
|
|
169
|
-
:type fallback: typing.Any | None
|
|
170
128
|
:return: The angle between 2 connected faces in radians.
|
|
171
|
-
:rtype: float
|
|
172
129
|
"""
|
|
173
130
|
|
|
174
131
|
def calc_face_angle_signed(self, fallback: typing.Any | None = None) -> float:
|
|
@@ -176,16 +133,13 @@ class BMEdge:
|
|
|
176
133
|
|
|
177
134
|
:param fallback: return this when the edge doesnt have 2 faces
|
|
178
135
|
(instead of raising a `ValueError`).
|
|
179
|
-
:type fallback: typing.Any | None
|
|
180
136
|
:return: The angle between 2 connected faces in radians (negative for concave join).
|
|
181
|
-
:rtype: float
|
|
182
137
|
"""
|
|
183
138
|
|
|
184
139
|
def calc_length(self) -> float:
|
|
185
140
|
"""
|
|
186
141
|
|
|
187
142
|
:return: The length between both verts.
|
|
188
|
-
:rtype: float
|
|
189
143
|
"""
|
|
190
144
|
|
|
191
145
|
def calc_tangent(self, loop: BMLoop) -> mathutils.Vector:
|
|
@@ -193,16 +147,13 @@ class BMEdge:
|
|
|
193
147
|
This uses the face normal for calculation.
|
|
194
148
|
|
|
195
149
|
:param loop: The loop used for tangent calculation.
|
|
196
|
-
:type loop: BMLoop
|
|
197
150
|
:return: a normalized vector.
|
|
198
|
-
:rtype: mathutils.Vector
|
|
199
151
|
"""
|
|
200
152
|
|
|
201
153
|
def copy_from(self, other: typing_extensions.Self) -> None:
|
|
202
154
|
"""Copy values from another element of matching type.
|
|
203
155
|
|
|
204
156
|
:param other:
|
|
205
|
-
:type other: typing_extensions.Self
|
|
206
157
|
"""
|
|
207
158
|
|
|
208
159
|
def hide_set(self, hide: bool) -> None:
|
|
@@ -210,7 +161,6 @@ class BMEdge:
|
|
|
210
161
|
This is different from the hide attribute because it updates the selection and hide state of associated geometry.
|
|
211
162
|
|
|
212
163
|
:param hide: Hidden or visible.
|
|
213
|
-
:type hide: bool
|
|
214
164
|
"""
|
|
215
165
|
|
|
216
166
|
def normal_update(self) -> None:
|
|
@@ -220,9 +170,7 @@ class BMEdge:
|
|
|
220
170
|
"""Return the other vertex on this edge or None if the vertex is not used by this edge.
|
|
221
171
|
|
|
222
172
|
:param vert: a vert in this edge.
|
|
223
|
-
:type vert: BMVert
|
|
224
173
|
:return: The edges other vert.
|
|
225
|
-
:rtype: BMVert | None
|
|
226
174
|
"""
|
|
227
175
|
|
|
228
176
|
def select_set(self, select: bool) -> None:
|
|
@@ -230,7 +178,6 @@ class BMEdge:
|
|
|
230
178
|
This is different from the select attribute because it updates the selection state of associated geometry.
|
|
231
179
|
|
|
232
180
|
:param select: Select or de-select.
|
|
233
|
-
:type select: bool
|
|
234
181
|
"""
|
|
235
182
|
|
|
236
183
|
def __getitem__[_GenericType1](
|
|
@@ -239,9 +186,7 @@ class BMEdge:
|
|
|
239
186
|
"""
|
|
240
187
|
|
|
241
188
|
:param key:
|
|
242
|
-
:type key: BMLayerItem[_GenericType1]
|
|
243
189
|
:return:
|
|
244
|
-
:rtype: _GenericType1
|
|
245
190
|
"""
|
|
246
191
|
|
|
247
192
|
def __setitem__[_GenericType1](
|
|
@@ -250,24 +195,18 @@ class BMEdge:
|
|
|
250
195
|
"""
|
|
251
196
|
|
|
252
197
|
:param key:
|
|
253
|
-
:type key: BMLayerItem[_GenericType1]
|
|
254
198
|
:param value:
|
|
255
|
-
:type value: _GenericType1
|
|
256
199
|
"""
|
|
257
200
|
|
|
258
201
|
def __delitem__[_GenericType1](self, key: BMLayerItem[_GenericType1]) -> None:
|
|
259
202
|
"""
|
|
260
203
|
|
|
261
204
|
:param key:
|
|
262
|
-
:type key: BMLayerItem[_GenericType1]
|
|
263
205
|
"""
|
|
264
206
|
|
|
265
207
|
class BMEdgeSeq:
|
|
266
208
|
layers: BMLayerAccessEdge
|
|
267
|
-
""" custom-data layers (read-only).
|
|
268
|
-
|
|
269
|
-
:type: BMLayerAccessEdge
|
|
270
|
-
"""
|
|
209
|
+
""" custom-data layers (read-only)."""
|
|
271
210
|
|
|
272
211
|
def ensure_lookup_table(self) -> None:
|
|
273
212
|
"""Ensure internal data needed for int subscription is initialized with verts/edges/faces, eg bm.verts[index].This needs to be called again after adding/removing data in this sequence."""
|
|
@@ -280,11 +219,8 @@ class BMEdgeSeq:
|
|
|
280
219
|
"""Return an edge which uses the verts passed.
|
|
281
220
|
|
|
282
221
|
:param verts: Sequence of verts.
|
|
283
|
-
:type verts: collections.abc.Sequence[BMVert]
|
|
284
222
|
:param fallback: Return this value if nothing is found.
|
|
285
|
-
:type fallback: typing.Any | None
|
|
286
223
|
:return: The edge found or None
|
|
287
|
-
:rtype: BMEdge
|
|
288
224
|
"""
|
|
289
225
|
|
|
290
226
|
def index_update(self) -> None:
|
|
@@ -296,18 +232,14 @@ class BMEdgeSeq:
|
|
|
296
232
|
"""Create a new edge from a given pair of verts.
|
|
297
233
|
|
|
298
234
|
:param verts: Vertex pair.
|
|
299
|
-
:type verts: collections.abc.Sequence[BMVert]
|
|
300
235
|
:param example: Existing edge to initialize settings (optional argument).
|
|
301
|
-
:type example: BMEdge | None
|
|
302
236
|
:return: The newly created edge.
|
|
303
|
-
:rtype: BMEdge
|
|
304
237
|
"""
|
|
305
238
|
|
|
306
239
|
def remove(self, edge: BMEdge) -> None:
|
|
307
240
|
"""Remove an edge.
|
|
308
241
|
|
|
309
242
|
:param edge: The edge to remove.
|
|
310
|
-
:type edge: BMEdge
|
|
311
243
|
"""
|
|
312
244
|
|
|
313
245
|
def sort(
|
|
@@ -322,9 +254,7 @@ class BMEdgeSeq:
|
|
|
322
254
|
Indices of elements are not changed, `bmesh.types.BMElemSeq.index_update` can be used for that.
|
|
323
255
|
|
|
324
256
|
:param key: The key that sets the ordering of the elements.
|
|
325
|
-
:type key: None | collections.abc.Callable[[BMVert | BMEdge | BMFace], int] | None
|
|
326
257
|
:param reverse: Reverse the order of the elements
|
|
327
|
-
:type reverse: bool
|
|
328
258
|
"""
|
|
329
259
|
|
|
330
260
|
@typing.overload
|
|
@@ -332,9 +262,7 @@ class BMEdgeSeq:
|
|
|
332
262
|
"""
|
|
333
263
|
|
|
334
264
|
:param key:
|
|
335
|
-
:type key: int
|
|
336
265
|
:return:
|
|
337
|
-
:rtype: BMEdge
|
|
338
266
|
"""
|
|
339
267
|
|
|
340
268
|
@typing.overload
|
|
@@ -342,33 +270,26 @@ class BMEdgeSeq:
|
|
|
342
270
|
"""
|
|
343
271
|
|
|
344
272
|
:param key:
|
|
345
|
-
:type key: slice
|
|
346
273
|
:return:
|
|
347
|
-
:rtype: list[BMEdge]
|
|
348
274
|
"""
|
|
349
275
|
|
|
350
276
|
def __iter__(self) -> BMIter[BMEdge]:
|
|
351
277
|
"""
|
|
352
278
|
|
|
353
279
|
:return:
|
|
354
|
-
:rtype: BMIter[BMEdge]
|
|
355
280
|
"""
|
|
356
281
|
|
|
357
282
|
def __len__(self) -> int:
|
|
358
283
|
"""
|
|
359
284
|
|
|
360
285
|
:return:
|
|
361
|
-
:rtype: int
|
|
362
286
|
"""
|
|
363
287
|
|
|
364
288
|
class BMEditSelIter: ...
|
|
365
289
|
|
|
366
290
|
class BMEditSelSeq:
|
|
367
291
|
active: BMEdge | BMFace | BMVert
|
|
368
|
-
""" The last selected element or None (read-only).
|
|
369
|
-
|
|
370
|
-
:type: BMEdge | BMFace | BMVert
|
|
371
|
-
"""
|
|
292
|
+
""" The last selected element or None (read-only)."""
|
|
372
293
|
|
|
373
294
|
def add(self, element) -> None:
|
|
374
295
|
"""Add an element to the selection history (no action taken if its already added).
|
|
@@ -408,9 +329,7 @@ class BMElemSeq[_GenericType1]:
|
|
|
408
329
|
"""
|
|
409
330
|
|
|
410
331
|
:param key:
|
|
411
|
-
:type key: int
|
|
412
332
|
:return:
|
|
413
|
-
:rtype: _GenericType1
|
|
414
333
|
"""
|
|
415
334
|
|
|
416
335
|
@typing.overload
|
|
@@ -418,23 +337,19 @@ class BMElemSeq[_GenericType1]:
|
|
|
418
337
|
"""
|
|
419
338
|
|
|
420
339
|
:param key:
|
|
421
|
-
:type key: slice
|
|
422
340
|
:return:
|
|
423
|
-
:rtype: list[_GenericType1]
|
|
424
341
|
"""
|
|
425
342
|
|
|
426
343
|
def __iter__(self) -> BMIter[_GenericType1]:
|
|
427
344
|
"""
|
|
428
345
|
|
|
429
346
|
:return:
|
|
430
|
-
:rtype: BMIter[_GenericType1]
|
|
431
347
|
"""
|
|
432
348
|
|
|
433
349
|
def __len__(self) -> int:
|
|
434
350
|
"""
|
|
435
351
|
|
|
436
352
|
:return:
|
|
437
|
-
:rtype: int
|
|
438
353
|
"""
|
|
439
354
|
|
|
440
355
|
class BMFace:
|
|
@@ -444,61 +359,34 @@ class BMFace:
|
|
|
444
359
|
""" Edges of this face, (read-only)."""
|
|
445
360
|
|
|
446
361
|
hide: bool
|
|
447
|
-
""" Hidden state of this element.
|
|
448
|
-
|
|
449
|
-
:type: bool
|
|
450
|
-
"""
|
|
362
|
+
""" Hidden state of this element."""
|
|
451
363
|
|
|
452
364
|
index: int
|
|
453
|
-
""" Index of this element.
|
|
454
|
-
|
|
455
|
-
:type: int
|
|
456
|
-
"""
|
|
365
|
+
""" Index of this element."""
|
|
457
366
|
|
|
458
367
|
is_valid: bool
|
|
459
|
-
""" True when this element is valid (hasn't been removed).
|
|
460
|
-
|
|
461
|
-
:type: bool
|
|
462
|
-
"""
|
|
368
|
+
""" True when this element is valid (hasn't been removed)."""
|
|
463
369
|
|
|
464
370
|
loops: typing.Any
|
|
465
371
|
""" Loops of this face, (read-only)."""
|
|
466
372
|
|
|
467
373
|
material_index: int
|
|
468
|
-
""" The face's material index.
|
|
469
|
-
|
|
470
|
-
:type: int
|
|
471
|
-
"""
|
|
374
|
+
""" The face's material index."""
|
|
472
375
|
|
|
473
376
|
normal: mathutils.Vector
|
|
474
|
-
""" The normal for this face as a 3D, wrapped vector.
|
|
475
|
-
|
|
476
|
-
:type: mathutils.Vector
|
|
477
|
-
"""
|
|
377
|
+
""" The normal for this face as a 3D, wrapped vector."""
|
|
478
378
|
|
|
479
379
|
select: bool
|
|
480
|
-
""" Selected state of this element.
|
|
481
|
-
|
|
482
|
-
:type: bool
|
|
483
|
-
"""
|
|
380
|
+
""" Selected state of this element."""
|
|
484
381
|
|
|
485
382
|
smooth: bool
|
|
486
|
-
""" Smooth state of this element.
|
|
487
|
-
|
|
488
|
-
:type: bool
|
|
489
|
-
"""
|
|
383
|
+
""" Smooth state of this element."""
|
|
490
384
|
|
|
491
385
|
tag: bool
|
|
492
|
-
""" Generic attribute scripts can use for own logic
|
|
493
|
-
|
|
494
|
-
:type: bool
|
|
495
|
-
"""
|
|
386
|
+
""" Generic attribute scripts can use for own logic"""
|
|
496
387
|
|
|
497
388
|
uv_select: bool
|
|
498
|
-
""" UV selected state of this element.
|
|
499
|
-
|
|
500
|
-
:type: bool
|
|
501
|
-
"""
|
|
389
|
+
""" UV selected state of this element."""
|
|
502
390
|
|
|
503
391
|
verts: typing.Any
|
|
504
392
|
""" Verts of this face, (read-only)."""
|
|
@@ -507,81 +395,68 @@ class BMFace:
|
|
|
507
395
|
"""Return the area of the face.
|
|
508
396
|
|
|
509
397
|
:return: Return the area of the face.
|
|
510
|
-
:rtype: float
|
|
511
398
|
"""
|
|
512
399
|
|
|
513
400
|
def calc_center_bounds(self) -> mathutils.Vector:
|
|
514
401
|
"""Return bounds center of the face.
|
|
515
402
|
|
|
516
403
|
:return: a 3D vector.
|
|
517
|
-
:rtype: mathutils.Vector
|
|
518
404
|
"""
|
|
519
405
|
|
|
520
406
|
def calc_center_median(self) -> mathutils.Vector:
|
|
521
407
|
"""Return median center of the face.
|
|
522
408
|
|
|
523
409
|
:return: a 3D vector.
|
|
524
|
-
:rtype: mathutils.Vector
|
|
525
410
|
"""
|
|
526
411
|
|
|
527
412
|
def calc_center_median_weighted(self) -> mathutils.Vector:
|
|
528
413
|
"""Return median center of the face weighted by edge lengths.
|
|
529
414
|
|
|
530
415
|
:return: a 3D vector.
|
|
531
|
-
:rtype: mathutils.Vector
|
|
532
416
|
"""
|
|
533
417
|
|
|
534
418
|
def calc_perimeter(self) -> float:
|
|
535
419
|
"""Return the perimeter of the face.
|
|
536
420
|
|
|
537
421
|
:return: Return the perimeter of the face.
|
|
538
|
-
:rtype: float
|
|
539
422
|
"""
|
|
540
423
|
|
|
541
424
|
def calc_tangent_edge(self) -> mathutils.Vector:
|
|
542
425
|
"""Return face tangent based on longest edge.
|
|
543
426
|
|
|
544
427
|
:return: a normalized vector.
|
|
545
|
-
:rtype: mathutils.Vector
|
|
546
428
|
"""
|
|
547
429
|
|
|
548
430
|
def calc_tangent_edge_diagonal(self) -> mathutils.Vector:
|
|
549
431
|
"""Return face tangent based on the edge farthest from any vertex.
|
|
550
432
|
|
|
551
433
|
:return: a normalized vector.
|
|
552
|
-
:rtype: mathutils.Vector
|
|
553
434
|
"""
|
|
554
435
|
|
|
555
436
|
def calc_tangent_edge_pair(self) -> mathutils.Vector:
|
|
556
437
|
"""Return face tangent based on the two longest disconnected edges.
|
|
557
438
|
|
|
558
439
|
:return: a normalized vector.
|
|
559
|
-
:rtype: mathutils.Vector
|
|
560
440
|
"""
|
|
561
441
|
|
|
562
442
|
def calc_tangent_vert_diagonal(self) -> mathutils.Vector:
|
|
563
443
|
"""Return face tangent based on the two most distant vertices.
|
|
564
444
|
|
|
565
445
|
:return: a normalized vector.
|
|
566
|
-
:rtype: mathutils.Vector
|
|
567
446
|
"""
|
|
568
447
|
|
|
569
448
|
def copy(self, *, verts: bool = True, edges: bool = True) -> typing_extensions.Self:
|
|
570
449
|
"""Make a copy of this face.
|
|
571
450
|
|
|
572
451
|
:param verts: When set, the faces verts will be duplicated too.
|
|
573
|
-
:type verts: bool
|
|
574
452
|
:param edges: When set, the faces edges will be duplicated too.
|
|
575
|
-
:type edges: bool
|
|
576
453
|
:return: The newly created face.
|
|
577
|
-
:rtype: typing_extensions.Self
|
|
578
454
|
"""
|
|
579
455
|
|
|
580
456
|
def copy_from(self, other: typing_extensions.Self) -> None:
|
|
581
457
|
"""Copy values from another element of matching type.
|
|
582
458
|
|
|
583
459
|
:param other:
|
|
584
|
-
:type other: typing_extensions.Self
|
|
585
460
|
"""
|
|
586
461
|
|
|
587
462
|
def copy_from_face_interp(
|
|
@@ -590,9 +465,7 @@ class BMFace:
|
|
|
590
465
|
"""Interpolate the customdata from another face onto this one (faces should overlap).
|
|
591
466
|
|
|
592
467
|
:param face: The face to interpolate data from.
|
|
593
|
-
:type face: typing_extensions.Self
|
|
594
468
|
:param vert: When True, also copy vertex data.
|
|
595
|
-
:type vert: bool
|
|
596
469
|
"""
|
|
597
470
|
|
|
598
471
|
def hide_set(self, hide: bool) -> None:
|
|
@@ -600,7 +473,6 @@ class BMFace:
|
|
|
600
473
|
This is different from the hide attribute because it updates the selection and hide state of associated geometry.
|
|
601
474
|
|
|
602
475
|
:param hide: Hidden or visible.
|
|
603
|
-
:type hide: bool
|
|
604
476
|
"""
|
|
605
477
|
|
|
606
478
|
def normal_flip(self) -> None:
|
|
@@ -617,14 +489,12 @@ class BMFace:
|
|
|
617
489
|
This is different from the select attribute because it updates the selection state of associated geometry.
|
|
618
490
|
|
|
619
491
|
:param select: Select or de-select.
|
|
620
|
-
:type select: bool
|
|
621
492
|
"""
|
|
622
493
|
|
|
623
494
|
def uv_select_set(self, select: bool) -> None:
|
|
624
495
|
"""Select the face.
|
|
625
496
|
|
|
626
497
|
:param select: Select or de-select.
|
|
627
|
-
:type select: bool
|
|
628
498
|
"""
|
|
629
499
|
|
|
630
500
|
def __getitem__[_GenericType1](
|
|
@@ -633,9 +503,7 @@ class BMFace:
|
|
|
633
503
|
"""
|
|
634
504
|
|
|
635
505
|
:param key:
|
|
636
|
-
:type key: BMLayerItem[_GenericType1]
|
|
637
506
|
:return:
|
|
638
|
-
:rtype: _GenericType1
|
|
639
507
|
"""
|
|
640
508
|
|
|
641
509
|
def __setitem__[_GenericType1](
|
|
@@ -644,30 +512,21 @@ class BMFace:
|
|
|
644
512
|
"""
|
|
645
513
|
|
|
646
514
|
:param key:
|
|
647
|
-
:type key: BMLayerItem[_GenericType1]
|
|
648
515
|
:param value:
|
|
649
|
-
:type value: _GenericType1
|
|
650
516
|
"""
|
|
651
517
|
|
|
652
518
|
def __delitem__[_GenericType1](self, key: BMLayerItem[_GenericType1]) -> None:
|
|
653
519
|
"""
|
|
654
520
|
|
|
655
521
|
:param key:
|
|
656
|
-
:type key: BMLayerItem[_GenericType1]
|
|
657
522
|
"""
|
|
658
523
|
|
|
659
524
|
class BMFaceSeq:
|
|
660
525
|
active: BMFace | None
|
|
661
|
-
""" active face.
|
|
662
|
-
|
|
663
|
-
:type: BMFace | None
|
|
664
|
-
"""
|
|
526
|
+
""" active face."""
|
|
665
527
|
|
|
666
528
|
layers: BMLayerAccessFace
|
|
667
|
-
""" custom-data layers (read-only).
|
|
668
|
-
|
|
669
|
-
:type: BMLayerAccessFace
|
|
670
|
-
"""
|
|
529
|
+
""" custom-data layers (read-only)."""
|
|
671
530
|
|
|
672
531
|
def ensure_lookup_table(self) -> None:
|
|
673
532
|
"""Ensure internal data needed for int subscription is initialized with verts/edges/faces, eg bm.verts[index].This needs to be called again after adding/removing data in this sequence."""
|
|
@@ -680,11 +539,8 @@ class BMFaceSeq:
|
|
|
680
539
|
"""Return a face which uses the verts passed.
|
|
681
540
|
|
|
682
541
|
:param verts: Sequence of verts.
|
|
683
|
-
:type verts: collections.abc.Sequence[BMVert]
|
|
684
542
|
:param fallback: Return this value if nothing is found.
|
|
685
|
-
:type fallback: typing.Any | None
|
|
686
543
|
:return: The face found or None
|
|
687
|
-
:rtype: BMFace
|
|
688
544
|
"""
|
|
689
545
|
|
|
690
546
|
def index_update(self) -> None:
|
|
@@ -696,18 +552,14 @@ class BMFaceSeq:
|
|
|
696
552
|
"""Create a new face from a given set of verts.
|
|
697
553
|
|
|
698
554
|
:param verts: Sequence of 3 or more verts.
|
|
699
|
-
:type verts: collections.abc.Sequence[BMVert]
|
|
700
555
|
:param example: Existing face to initialize settings (optional argument).
|
|
701
|
-
:type example: BMFace | None
|
|
702
556
|
:return: The newly created face.
|
|
703
|
-
:rtype: BMFace
|
|
704
557
|
"""
|
|
705
558
|
|
|
706
559
|
def remove(self, face: BMFace) -> None:
|
|
707
560
|
"""Remove a face.
|
|
708
561
|
|
|
709
562
|
:param face: The face to remove.
|
|
710
|
-
:type face: BMFace
|
|
711
563
|
"""
|
|
712
564
|
|
|
713
565
|
def sort(
|
|
@@ -722,9 +574,7 @@ class BMFaceSeq:
|
|
|
722
574
|
Indices of elements are not changed, `bmesh.types.BMElemSeq.index_update` can be used for that.
|
|
723
575
|
|
|
724
576
|
:param key: The key that sets the ordering of the elements.
|
|
725
|
-
:type key: None | collections.abc.Callable[[BMVert | BMEdge | BMFace], int] | None
|
|
726
577
|
:param reverse: Reverse the order of the elements
|
|
727
|
-
:type reverse: bool
|
|
728
578
|
"""
|
|
729
579
|
|
|
730
580
|
@typing.overload
|
|
@@ -732,9 +582,7 @@ class BMFaceSeq:
|
|
|
732
582
|
"""
|
|
733
583
|
|
|
734
584
|
:param key:
|
|
735
|
-
:type key: int
|
|
736
585
|
:return:
|
|
737
|
-
:rtype: BMFace
|
|
738
586
|
"""
|
|
739
587
|
|
|
740
588
|
@typing.overload
|
|
@@ -742,23 +590,19 @@ class BMFaceSeq:
|
|
|
742
590
|
"""
|
|
743
591
|
|
|
744
592
|
:param key:
|
|
745
|
-
:type key: slice
|
|
746
593
|
:return:
|
|
747
|
-
:rtype: list[BMFace]
|
|
748
594
|
"""
|
|
749
595
|
|
|
750
596
|
def __iter__(self) -> BMIter[BMFace]:
|
|
751
597
|
"""
|
|
752
598
|
|
|
753
599
|
:return:
|
|
754
|
-
:rtype: BMIter[BMFace]
|
|
755
600
|
"""
|
|
756
601
|
|
|
757
602
|
def __len__(self) -> int:
|
|
758
603
|
"""
|
|
759
604
|
|
|
760
605
|
:return:
|
|
761
|
-
:rtype: int
|
|
762
606
|
"""
|
|
763
607
|
|
|
764
608
|
class BMIter[_GenericType1]:
|
|
@@ -770,14 +614,12 @@ class BMIter[_GenericType1]:
|
|
|
770
614
|
"""
|
|
771
615
|
|
|
772
616
|
:return:
|
|
773
|
-
:rtype: BMIter[_GenericType1]
|
|
774
617
|
"""
|
|
775
618
|
|
|
776
619
|
def __next__(self) -> _GenericType1:
|
|
777
620
|
"""
|
|
778
621
|
|
|
779
622
|
:return:
|
|
780
|
-
:rtype: _GenericType1
|
|
781
623
|
"""
|
|
782
624
|
|
|
783
625
|
class BMLayerAccessEdge:
|
|
@@ -892,16 +734,8 @@ class BMLayerCollection[_GenericType1]:
|
|
|
892
734
|
"""Gives access to a collection of custom-data layers of the same type and behaves like Python dictionaries, except for the ability to do list like index access."""
|
|
893
735
|
|
|
894
736
|
active: BMLayerItem[_GenericType1]
|
|
895
|
-
"""
|
|
896
|
-
|
|
897
|
-
:type: BMLayerItem[_GenericType1]
|
|
898
|
-
"""
|
|
899
|
-
|
|
900
737
|
is_singleton: bool
|
|
901
|
-
""" True if there can exists only one layer of this type (read-only).
|
|
902
|
-
|
|
903
|
-
:type: bool
|
|
904
|
-
"""
|
|
738
|
+
""" True if there can exists only one layer of this type (read-only)."""
|
|
905
739
|
|
|
906
740
|
def get[_GenericType2](
|
|
907
741
|
self, key: str, default: _GenericType2 = None
|
|
@@ -910,12 +744,9 @@ class BMLayerCollection[_GenericType1]:
|
|
|
910
744
|
when not found (matches Pythons dictionary function of the same name).
|
|
911
745
|
|
|
912
746
|
:param key: The key associated with the layer.
|
|
913
|
-
:type key: str
|
|
914
747
|
:param default: Optional argument for the value to return if
|
|
915
748
|
key is not found.
|
|
916
|
-
:type default: _GenericType2
|
|
917
749
|
:return:
|
|
918
|
-
:rtype: BMLayerItem[_GenericType1] | _GenericType2
|
|
919
750
|
"""
|
|
920
751
|
|
|
921
752
|
def items(self) -> list[str, BMLayerItem[_GenericType1]]:
|
|
@@ -923,7 +754,6 @@ class BMLayerCollection[_GenericType1]:
|
|
|
923
754
|
(matching Pythons dict.items() functionality).
|
|
924
755
|
|
|
925
756
|
:return: (key, value) pairs for each member of this collection.
|
|
926
|
-
:rtype: list[str, BMLayerItem[_GenericType1]]
|
|
927
757
|
"""
|
|
928
758
|
|
|
929
759
|
def keys(self) -> list[str]:
|
|
@@ -931,23 +761,19 @@ class BMLayerCollection[_GenericType1]:
|
|
|
931
761
|
(matching Pythons dict.keys() functionality).
|
|
932
762
|
|
|
933
763
|
:return: the identifiers for each member of this collection.
|
|
934
|
-
:rtype: list[str]
|
|
935
764
|
"""
|
|
936
765
|
|
|
937
766
|
def new(self, name: str | None = "") -> BMLayerItem[_GenericType1]:
|
|
938
767
|
"""Create a new layer
|
|
939
768
|
|
|
940
769
|
:param name: Optional name argument (will be made unique).
|
|
941
|
-
:type name: str | None
|
|
942
770
|
:return: The newly created layer.
|
|
943
|
-
:rtype: BMLayerItem[_GenericType1]
|
|
944
771
|
"""
|
|
945
772
|
|
|
946
773
|
def remove(self, layer: BMLayerItem[_GenericType1]) -> None:
|
|
947
774
|
"""Remove a layer
|
|
948
775
|
|
|
949
776
|
:param layer: The layer to remove.
|
|
950
|
-
:type layer: BMLayerItem[_GenericType1]
|
|
951
777
|
"""
|
|
952
778
|
|
|
953
779
|
def values(self) -> list[BMLayerItem[_GenericType1]]:
|
|
@@ -955,122 +781,76 @@ class BMLayerCollection[_GenericType1]:
|
|
|
955
781
|
(matching Pythons dict.values() functionality).
|
|
956
782
|
|
|
957
783
|
:return: the members of this collection.
|
|
958
|
-
:rtype: list[BMLayerItem[_GenericType1]]
|
|
959
784
|
"""
|
|
960
785
|
|
|
961
786
|
def verify(self) -> BMLayerItem[_GenericType1]:
|
|
962
787
|
"""Create a new layer or return an existing active layer
|
|
963
788
|
|
|
964
789
|
:return: The newly verified layer.
|
|
965
|
-
:rtype: BMLayerItem[_GenericType1]
|
|
966
790
|
"""
|
|
967
791
|
|
|
968
792
|
class BMLayerItem[_GenericType1]:
|
|
969
793
|
"""Exposes a single custom data layer, their main purpose is for use as item accessors to custom-data when used with vert/edge/face/loop data."""
|
|
970
794
|
|
|
971
795
|
name: str
|
|
972
|
-
""" The layers unique name (read-only).
|
|
973
|
-
|
|
974
|
-
:type: str
|
|
975
|
-
"""
|
|
796
|
+
""" The layers unique name (read-only)."""
|
|
976
797
|
|
|
977
798
|
def copy_from(self, other: typing_extensions.Self) -> None:
|
|
978
799
|
"""Copy data from another layer.
|
|
979
800
|
|
|
980
801
|
:param other: Another layer to copy from.
|
|
981
|
-
:type other: typing_extensions.Self
|
|
982
802
|
"""
|
|
983
803
|
|
|
984
804
|
class BMLoop:
|
|
985
805
|
"""This is normally accessed from `bmesh.types.BMFace.loops` where each face loop represents a corner of the face."""
|
|
986
806
|
|
|
987
807
|
edge: BMEdge
|
|
988
|
-
""" The loop's edge (between this loop and the next), (read-only).
|
|
989
|
-
|
|
990
|
-
:type: BMEdge
|
|
991
|
-
"""
|
|
808
|
+
""" The loop's edge (between this loop and the next), (read-only)."""
|
|
992
809
|
|
|
993
810
|
face: BMFace
|
|
994
|
-
""" The face this loop makes (read-only).
|
|
995
|
-
|
|
996
|
-
:type: BMFace
|
|
997
|
-
"""
|
|
811
|
+
""" The face this loop makes (read-only)."""
|
|
998
812
|
|
|
999
813
|
index: int
|
|
1000
|
-
""" Index of this element.
|
|
1001
|
-
|
|
1002
|
-
:type: int
|
|
1003
|
-
"""
|
|
814
|
+
""" Index of this element."""
|
|
1004
815
|
|
|
1005
816
|
is_convex: bool
|
|
1006
|
-
""" True when this loop is at the convex corner of a face, depends on a valid face normal (read-only).
|
|
1007
|
-
|
|
1008
|
-
:type: bool
|
|
1009
|
-
"""
|
|
817
|
+
""" True when this loop is at the convex corner of a face, depends on a valid face normal (read-only)."""
|
|
1010
818
|
|
|
1011
819
|
is_valid: bool
|
|
1012
|
-
""" True when this element is valid (hasn't been removed).
|
|
1013
|
-
|
|
1014
|
-
:type: bool
|
|
1015
|
-
"""
|
|
820
|
+
""" True when this element is valid (hasn't been removed)."""
|
|
1016
821
|
|
|
1017
822
|
link_loop_next: typing_extensions.Self
|
|
1018
|
-
""" The next face corner (read-only).
|
|
1019
|
-
|
|
1020
|
-
:type: typing_extensions.Self
|
|
1021
|
-
"""
|
|
823
|
+
""" The next face corner (read-only)."""
|
|
1022
824
|
|
|
1023
825
|
link_loop_prev: typing_extensions.Self
|
|
1024
|
-
""" The previous face corner (read-only).
|
|
1025
|
-
|
|
1026
|
-
:type: typing_extensions.Self
|
|
1027
|
-
"""
|
|
826
|
+
""" The previous face corner (read-only)."""
|
|
1028
827
|
|
|
1029
828
|
link_loop_radial_next: typing_extensions.Self
|
|
1030
|
-
""" The next loop around the edge (read-only).
|
|
1031
|
-
|
|
1032
|
-
:type: typing_extensions.Self
|
|
1033
|
-
"""
|
|
829
|
+
""" The next loop around the edge (read-only)."""
|
|
1034
830
|
|
|
1035
831
|
link_loop_radial_prev: typing_extensions.Self
|
|
1036
|
-
""" The previous loop around the edge (read-only).
|
|
1037
|
-
|
|
1038
|
-
:type: typing_extensions.Self
|
|
1039
|
-
"""
|
|
832
|
+
""" The previous loop around the edge (read-only)."""
|
|
1040
833
|
|
|
1041
834
|
link_loops: typing.Any
|
|
1042
835
|
""" Loops connected to this loop, (read-only)."""
|
|
1043
836
|
|
|
1044
837
|
tag: bool
|
|
1045
|
-
""" Generic attribute scripts can use for own logic
|
|
1046
|
-
|
|
1047
|
-
:type: bool
|
|
1048
|
-
"""
|
|
838
|
+
""" Generic attribute scripts can use for own logic"""
|
|
1049
839
|
|
|
1050
840
|
uv_select_edge: bool
|
|
1051
|
-
""" UV selected state of this element.
|
|
1052
|
-
|
|
1053
|
-
:type: bool
|
|
1054
|
-
"""
|
|
841
|
+
""" UV selected state of this element."""
|
|
1055
842
|
|
|
1056
843
|
uv_select_vert: bool
|
|
1057
|
-
""" UV selected state of this element.
|
|
1058
|
-
|
|
1059
|
-
:type: bool
|
|
1060
|
-
"""
|
|
844
|
+
""" UV selected state of this element."""
|
|
1061
845
|
|
|
1062
846
|
vert: BMVert
|
|
1063
|
-
""" The loop's vertex (read-only).
|
|
1064
|
-
|
|
1065
|
-
:type: BMVert
|
|
1066
|
-
"""
|
|
847
|
+
""" The loop's vertex (read-only)."""
|
|
1067
848
|
|
|
1068
849
|
def calc_angle(self) -> float:
|
|
1069
850
|
"""Return the angle at this loops corner of the face.
|
|
1070
851
|
This is calculated so sharper corners give lower angles.
|
|
1071
852
|
|
|
1072
853
|
:return: The angle in radians.
|
|
1073
|
-
:rtype: float
|
|
1074
854
|
"""
|
|
1075
855
|
|
|
1076
856
|
def calc_normal(self) -> mathutils.Vector:
|
|
@@ -1078,7 +858,6 @@ class BMLoop:
|
|
|
1078
858
|
Falls back to the face normal for straight lines.
|
|
1079
859
|
|
|
1080
860
|
:return: a normalized vector.
|
|
1081
|
-
:rtype: mathutils.Vector
|
|
1082
861
|
"""
|
|
1083
862
|
|
|
1084
863
|
def calc_tangent(self) -> mathutils.Vector:
|
|
@@ -1086,14 +865,12 @@ class BMLoop:
|
|
|
1086
865
|
Falls back to the face normal for straight lines.
|
|
1087
866
|
|
|
1088
867
|
:return: a normalized vector.
|
|
1089
|
-
:rtype: mathutils.Vector
|
|
1090
868
|
"""
|
|
1091
869
|
|
|
1092
870
|
def copy_from(self, other: typing_extensions.Self) -> None:
|
|
1093
871
|
"""Copy values from another element of matching type.
|
|
1094
872
|
|
|
1095
873
|
:param other:
|
|
1096
|
-
:type other: typing_extensions.Self
|
|
1097
874
|
"""
|
|
1098
875
|
|
|
1099
876
|
def copy_from_face_interp(
|
|
@@ -1102,25 +879,20 @@ class BMLoop:
|
|
|
1102
879
|
"""Interpolate the customdata from a face onto this loop (the loops vert should overlap the face).
|
|
1103
880
|
|
|
1104
881
|
:param face: The face to interpolate data from.
|
|
1105
|
-
:type face: BMFace
|
|
1106
882
|
:param vert: When enabled, interpolate the loops vertex data (optional).
|
|
1107
|
-
:type vert: bool
|
|
1108
883
|
:param multires: When enabled, interpolate the loops multires data (optional).
|
|
1109
|
-
:type multires: bool
|
|
1110
884
|
"""
|
|
1111
885
|
|
|
1112
886
|
def uv_select_edge_set(self, select: bool) -> None:
|
|
1113
887
|
"""Set the UV edge selection state.
|
|
1114
888
|
|
|
1115
889
|
:param select: Select or de-select.
|
|
1116
|
-
:type select: bool
|
|
1117
890
|
"""
|
|
1118
891
|
|
|
1119
892
|
def uv_select_vert_set(self, select: bool) -> None:
|
|
1120
893
|
"""Select the UV vertex.
|
|
1121
894
|
|
|
1122
895
|
:param select: Select or de-select.
|
|
1123
|
-
:type select: bool
|
|
1124
896
|
"""
|
|
1125
897
|
|
|
1126
898
|
def __getitem__[_GenericType1](
|
|
@@ -1129,9 +901,7 @@ class BMLoop:
|
|
|
1129
901
|
"""
|
|
1130
902
|
|
|
1131
903
|
:param key:
|
|
1132
|
-
:type key: BMLayerItem[_GenericType1]
|
|
1133
904
|
:return:
|
|
1134
|
-
:rtype: _GenericType1
|
|
1135
905
|
"""
|
|
1136
906
|
|
|
1137
907
|
def __setitem__[_GenericType1](
|
|
@@ -1140,33 +910,25 @@ class BMLoop:
|
|
|
1140
910
|
"""
|
|
1141
911
|
|
|
1142
912
|
:param key:
|
|
1143
|
-
:type key: BMLayerItem[_GenericType1]
|
|
1144
913
|
:param value:
|
|
1145
|
-
:type value: _GenericType1
|
|
1146
914
|
"""
|
|
1147
915
|
|
|
1148
916
|
def __delitem__[_GenericType1](self, key: BMLayerItem[_GenericType1]) -> None:
|
|
1149
917
|
"""
|
|
1150
918
|
|
|
1151
919
|
:param key:
|
|
1152
|
-
:type key: BMLayerItem[_GenericType1]
|
|
1153
920
|
"""
|
|
1154
921
|
|
|
1155
922
|
class BMLoopSeq:
|
|
1156
923
|
layers: BMLayerAccessLoop
|
|
1157
|
-
""" custom-data layers (read-only).
|
|
1158
|
-
|
|
1159
|
-
:type: BMLayerAccessLoop
|
|
1160
|
-
"""
|
|
924
|
+
""" custom-data layers (read-only)."""
|
|
1161
925
|
|
|
1162
926
|
@typing.overload
|
|
1163
927
|
def __getitem__(self, key: int) -> BMLoop:
|
|
1164
928
|
"""
|
|
1165
929
|
|
|
1166
930
|
:param key:
|
|
1167
|
-
:type key: int
|
|
1168
931
|
:return:
|
|
1169
|
-
:rtype: BMLoop
|
|
1170
932
|
"""
|
|
1171
933
|
|
|
1172
934
|
@typing.overload
|
|
@@ -1174,82 +936,51 @@ class BMLoopSeq:
|
|
|
1174
936
|
"""
|
|
1175
937
|
|
|
1176
938
|
:param key:
|
|
1177
|
-
:type key: slice
|
|
1178
939
|
:return:
|
|
1179
|
-
:rtype: list[BMLoop]
|
|
1180
940
|
"""
|
|
1181
941
|
|
|
1182
942
|
def __iter__(self) -> BMIter[BMLoop]:
|
|
1183
943
|
"""
|
|
1184
944
|
|
|
1185
945
|
:return:
|
|
1186
|
-
:rtype: BMIter[BMLoop]
|
|
1187
946
|
"""
|
|
1188
947
|
|
|
1189
948
|
def __len__(self) -> int:
|
|
1190
949
|
"""
|
|
1191
950
|
|
|
1192
951
|
:return:
|
|
1193
|
-
:rtype: int
|
|
1194
952
|
"""
|
|
1195
953
|
|
|
1196
954
|
class BMLoopUV:
|
|
1197
955
|
pin_uv: bool
|
|
1198
|
-
""" UV pin state.
|
|
1199
|
-
|
|
1200
|
-
:type: bool
|
|
1201
|
-
"""
|
|
956
|
+
""" UV pin state."""
|
|
1202
957
|
|
|
1203
958
|
uv: mathutils.Vector
|
|
1204
|
-
""" Loops UV (as a 2D Vector).
|
|
1205
|
-
|
|
1206
|
-
:type: mathutils.Vector
|
|
1207
|
-
"""
|
|
959
|
+
""" Loops UV (as a 2D Vector)."""
|
|
1208
960
|
|
|
1209
961
|
class BMVert:
|
|
1210
962
|
"""The BMesh vertex type"""
|
|
1211
963
|
|
|
1212
964
|
co: mathutils.Vector
|
|
1213
|
-
""" The coordinates for this vertex as a 3D, wrapped vector.
|
|
1214
|
-
|
|
1215
|
-
:type: mathutils.Vector
|
|
1216
|
-
"""
|
|
965
|
+
""" The coordinates for this vertex as a 3D, wrapped vector."""
|
|
1217
966
|
|
|
1218
967
|
hide: bool
|
|
1219
|
-
""" Hidden state of this element.
|
|
1220
|
-
|
|
1221
|
-
:type: bool
|
|
1222
|
-
"""
|
|
968
|
+
""" Hidden state of this element."""
|
|
1223
969
|
|
|
1224
970
|
index: int
|
|
1225
|
-
""" Index of this element.
|
|
1226
|
-
|
|
1227
|
-
:type: int
|
|
1228
|
-
"""
|
|
971
|
+
""" Index of this element."""
|
|
1229
972
|
|
|
1230
973
|
is_boundary: bool
|
|
1231
|
-
""" True when this vertex is connected to boundary edges (read-only).
|
|
1232
|
-
|
|
1233
|
-
:type: bool
|
|
1234
|
-
"""
|
|
974
|
+
""" True when this vertex is connected to boundary edges (read-only)."""
|
|
1235
975
|
|
|
1236
976
|
is_manifold: bool
|
|
1237
|
-
""" True when this vertex is manifold (read-only).
|
|
1238
|
-
|
|
1239
|
-
:type: bool
|
|
1240
|
-
"""
|
|
977
|
+
""" True when this vertex is manifold (read-only)."""
|
|
1241
978
|
|
|
1242
979
|
is_valid: bool
|
|
1243
|
-
""" True when this element is valid (hasn't been removed).
|
|
1244
|
-
|
|
1245
|
-
:type: bool
|
|
1246
|
-
"""
|
|
980
|
+
""" True when this element is valid (hasn't been removed)."""
|
|
1247
981
|
|
|
1248
982
|
is_wire: bool
|
|
1249
|
-
""" True when this vertex is not connected to any faces (read-only).
|
|
1250
|
-
|
|
1251
|
-
:type: bool
|
|
1252
|
-
"""
|
|
983
|
+
""" True when this vertex is not connected to any faces (read-only)."""
|
|
1253
984
|
|
|
1254
985
|
link_edges: typing.Any
|
|
1255
986
|
""" Edges connected to this vertex (read-only)."""
|
|
@@ -1261,31 +992,20 @@ class BMVert:
|
|
|
1261
992
|
""" Loops that use this vertex (read-only)."""
|
|
1262
993
|
|
|
1263
994
|
normal: mathutils.Vector
|
|
1264
|
-
""" The normal for this vertex as a 3D, wrapped vector.
|
|
1265
|
-
|
|
1266
|
-
:type: mathutils.Vector
|
|
1267
|
-
"""
|
|
995
|
+
""" The normal for this vertex as a 3D, wrapped vector."""
|
|
1268
996
|
|
|
1269
997
|
select: bool
|
|
1270
|
-
""" Selected state of this element.
|
|
1271
|
-
|
|
1272
|
-
:type: bool
|
|
1273
|
-
"""
|
|
998
|
+
""" Selected state of this element."""
|
|
1274
999
|
|
|
1275
1000
|
tag: bool
|
|
1276
|
-
""" Generic attribute scripts can use for own logic
|
|
1277
|
-
|
|
1278
|
-
:type: bool
|
|
1279
|
-
"""
|
|
1001
|
+
""" Generic attribute scripts can use for own logic"""
|
|
1280
1002
|
|
|
1281
1003
|
def calc_edge_angle(self, fallback: typing.Any | None = None) -> float:
|
|
1282
1004
|
"""Return the angle between this verts two connected edges.
|
|
1283
1005
|
|
|
1284
1006
|
:param fallback: return this when the vert doesnt have 2 edges
|
|
1285
1007
|
(instead of raising a `ValueError`).
|
|
1286
|
-
:type fallback: typing.Any | None
|
|
1287
1008
|
:return: Angle between edges in radians.
|
|
1288
|
-
:rtype: float
|
|
1289
1009
|
"""
|
|
1290
1010
|
|
|
1291
1011
|
def calc_shell_factor(self) -> float:
|
|
@@ -1294,21 +1014,18 @@ class BMVert:
|
|
|
1294
1014
|
This is used to maintain shell thickness when offsetting verts along their normals.
|
|
1295
1015
|
|
|
1296
1016
|
:return: offset multiplier
|
|
1297
|
-
:rtype: float
|
|
1298
1017
|
"""
|
|
1299
1018
|
|
|
1300
1019
|
def copy_from(self, other: typing_extensions.Self) -> None:
|
|
1301
1020
|
"""Copy values from another element of matching type.
|
|
1302
1021
|
|
|
1303
1022
|
:param other:
|
|
1304
|
-
:type other: typing_extensions.Self
|
|
1305
1023
|
"""
|
|
1306
1024
|
|
|
1307
1025
|
def copy_from_face_interp(self, face: BMFace) -> None:
|
|
1308
1026
|
"""Interpolate the customdata from a face onto this loop (the loops vert should overlap the face).
|
|
1309
1027
|
|
|
1310
1028
|
:param face: The face to interpolate data from.
|
|
1311
|
-
:type face: BMFace
|
|
1312
1029
|
"""
|
|
1313
1030
|
|
|
1314
1031
|
def copy_from_vert_interp(
|
|
@@ -1317,9 +1034,7 @@ class BMVert:
|
|
|
1317
1034
|
"""Interpolate the customdata from a vert between 2 other verts.
|
|
1318
1035
|
|
|
1319
1036
|
:param vert_pair: The verts between which to interpolate data from.
|
|
1320
|
-
:type vert_pair: collections.abc.Sequence[BMVert]
|
|
1321
1037
|
:param fac: The interpolation factor.
|
|
1322
|
-
:type fac: float
|
|
1323
1038
|
"""
|
|
1324
1039
|
|
|
1325
1040
|
def hide_set(self, hide: bool) -> None:
|
|
@@ -1327,7 +1042,6 @@ class BMVert:
|
|
|
1327
1042
|
This is different from the hide attribute because it updates the selection and hide state of associated geometry.
|
|
1328
1043
|
|
|
1329
1044
|
:param hide: Hidden or visible.
|
|
1330
|
-
:type hide: bool
|
|
1331
1045
|
"""
|
|
1332
1046
|
|
|
1333
1047
|
def normal_update(self) -> None:
|
|
@@ -1341,7 +1055,6 @@ class BMVert:
|
|
|
1341
1055
|
This is different from the select attribute because it updates the selection state of associated geometry.
|
|
1342
1056
|
|
|
1343
1057
|
:param select: Select or de-select.
|
|
1344
|
-
:type select: bool
|
|
1345
1058
|
"""
|
|
1346
1059
|
|
|
1347
1060
|
def __getitem__[_GenericType1](
|
|
@@ -1350,9 +1063,7 @@ class BMVert:
|
|
|
1350
1063
|
"""
|
|
1351
1064
|
|
|
1352
1065
|
:param key:
|
|
1353
|
-
:type key: BMLayerItem[_GenericType1]
|
|
1354
1066
|
:return:
|
|
1355
|
-
:rtype: _GenericType1
|
|
1356
1067
|
"""
|
|
1357
1068
|
|
|
1358
1069
|
def __setitem__[_GenericType1](
|
|
@@ -1361,24 +1072,18 @@ class BMVert:
|
|
|
1361
1072
|
"""
|
|
1362
1073
|
|
|
1363
1074
|
:param key:
|
|
1364
|
-
:type key: BMLayerItem[_GenericType1]
|
|
1365
1075
|
:param value:
|
|
1366
|
-
:type value: _GenericType1
|
|
1367
1076
|
"""
|
|
1368
1077
|
|
|
1369
1078
|
def __delitem__[_GenericType1](self, key: BMLayerItem[_GenericType1]) -> None:
|
|
1370
1079
|
"""
|
|
1371
1080
|
|
|
1372
1081
|
:param key:
|
|
1373
|
-
:type key: BMLayerItem[_GenericType1]
|
|
1374
1082
|
"""
|
|
1375
1083
|
|
|
1376
1084
|
class BMVertSeq:
|
|
1377
1085
|
layers: BMLayerAccessVert
|
|
1378
|
-
""" custom-data layers (read-only).
|
|
1379
|
-
|
|
1380
|
-
:type: BMLayerAccessVert
|
|
1381
|
-
"""
|
|
1086
|
+
""" custom-data layers (read-only)."""
|
|
1382
1087
|
|
|
1383
1088
|
def ensure_lookup_table(self) -> None:
|
|
1384
1089
|
"""Ensure internal data needed for int subscription is initialized with verts/edges/faces, eg bm.verts[index].This needs to be called again after adding/removing data in this sequence."""
|
|
@@ -1394,18 +1099,14 @@ class BMVertSeq:
|
|
|
1394
1099
|
"""Create a new vertex.
|
|
1395
1100
|
|
|
1396
1101
|
:param co: The initial location of the vertex (optional argument).
|
|
1397
|
-
:type co: collections.abc.Sequence[float] | mathutils.Vector
|
|
1398
1102
|
:param example: Existing vert to initialize settings.
|
|
1399
|
-
:type example: BMVert | None
|
|
1400
1103
|
:return: The newly created vertex.
|
|
1401
|
-
:rtype: BMVert
|
|
1402
1104
|
"""
|
|
1403
1105
|
|
|
1404
1106
|
def remove(self, vert: BMVert) -> None:
|
|
1405
1107
|
"""Remove a vert.
|
|
1406
1108
|
|
|
1407
1109
|
:param vert: The vert to remove.
|
|
1408
|
-
:type vert: BMVert
|
|
1409
1110
|
"""
|
|
1410
1111
|
|
|
1411
1112
|
def sort(
|
|
@@ -1420,9 +1121,7 @@ class BMVertSeq:
|
|
|
1420
1121
|
Indices of elements are not changed, `bmesh.types.BMElemSeq.index_update` can be used for that.
|
|
1421
1122
|
|
|
1422
1123
|
:param key: The key that sets the ordering of the elements.
|
|
1423
|
-
:type key: None | collections.abc.Callable[[BMVert | BMEdge | BMFace], int] | None
|
|
1424
1124
|
:param reverse: Reverse the order of the elements
|
|
1425
|
-
:type reverse: bool
|
|
1426
1125
|
"""
|
|
1427
1126
|
|
|
1428
1127
|
@typing.overload
|
|
@@ -1430,9 +1129,7 @@ class BMVertSeq:
|
|
|
1430
1129
|
"""
|
|
1431
1130
|
|
|
1432
1131
|
:param key:
|
|
1433
|
-
:type key: int
|
|
1434
1132
|
:return:
|
|
1435
|
-
:rtype: BMVert
|
|
1436
1133
|
"""
|
|
1437
1134
|
|
|
1438
1135
|
@typing.overload
|
|
@@ -1440,93 +1137,62 @@ class BMVertSeq:
|
|
|
1440
1137
|
"""
|
|
1441
1138
|
|
|
1442
1139
|
:param key:
|
|
1443
|
-
:type key: slice
|
|
1444
1140
|
:return:
|
|
1445
|
-
:rtype: list[BMVert]
|
|
1446
1141
|
"""
|
|
1447
1142
|
|
|
1448
1143
|
def __iter__(self) -> BMIter[BMVert]:
|
|
1449
1144
|
"""
|
|
1450
1145
|
|
|
1451
1146
|
:return:
|
|
1452
|
-
:rtype: BMIter[BMVert]
|
|
1453
1147
|
"""
|
|
1454
1148
|
|
|
1455
1149
|
def __len__(self) -> int:
|
|
1456
1150
|
"""
|
|
1457
1151
|
|
|
1458
1152
|
:return:
|
|
1459
|
-
:rtype: int
|
|
1460
1153
|
"""
|
|
1461
1154
|
|
|
1462
1155
|
class BMesh:
|
|
1463
1156
|
"""The BMesh data structure"""
|
|
1464
1157
|
|
|
1465
1158
|
edges: BMEdgeSeq
|
|
1466
|
-
""" This meshes edge sequence (read-only).
|
|
1467
|
-
|
|
1468
|
-
:type: BMEdgeSeq
|
|
1469
|
-
"""
|
|
1159
|
+
""" This meshes edge sequence (read-only)."""
|
|
1470
1160
|
|
|
1471
1161
|
faces: BMFaceSeq
|
|
1472
|
-
""" This meshes face sequence (read-only).
|
|
1473
|
-
|
|
1474
|
-
:type: BMFaceSeq
|
|
1475
|
-
"""
|
|
1162
|
+
""" This meshes face sequence (read-only)."""
|
|
1476
1163
|
|
|
1477
1164
|
is_valid: bool
|
|
1478
|
-
""" True when this element is valid (hasn't been removed).
|
|
1479
|
-
|
|
1480
|
-
:type: bool
|
|
1481
|
-
"""
|
|
1165
|
+
""" True when this element is valid (hasn't been removed)."""
|
|
1482
1166
|
|
|
1483
1167
|
is_wrapped: bool
|
|
1484
|
-
""" True when this mesh is owned by blender (typically the editmode BMesh).
|
|
1485
|
-
|
|
1486
|
-
:type: bool
|
|
1487
|
-
"""
|
|
1168
|
+
""" True when this mesh is owned by blender (typically the editmode BMesh)."""
|
|
1488
1169
|
|
|
1489
1170
|
loops: BMLoopSeq
|
|
1490
|
-
""" This meshes loops (read-only).
|
|
1491
|
-
|
|
1492
|
-
:type: BMLoopSeq
|
|
1493
|
-
"""
|
|
1171
|
+
""" This meshes loops (read-only)."""
|
|
1494
1172
|
|
|
1495
1173
|
select_history: BMEditSelSeq
|
|
1496
|
-
""" Sequence of selected items (the last is displayed as active).
|
|
1497
|
-
|
|
1498
|
-
:type: BMEditSelSeq
|
|
1499
|
-
"""
|
|
1174
|
+
""" Sequence of selected items (the last is displayed as active)."""
|
|
1500
1175
|
|
|
1501
|
-
select_mode: typing.
|
|
1176
|
+
select_mode: set[typing.Literal["VERT", "EDGE", "FACE"]]
|
|
1502
1177
|
""" The selection mode, cannot be assigned an empty set."""
|
|
1503
1178
|
|
|
1504
1179
|
uv_select_sync_valid: bool
|
|
1505
|
-
""" When true, the UV selection has been synchronized. Setting to False means the UV selection will be ignored. While setting to true is supported it is up to the script author to ensure a correct selection state before doing so.
|
|
1506
|
-
|
|
1507
|
-
:type: bool
|
|
1508
|
-
"""
|
|
1180
|
+
""" When true, the UV selection has been synchronized. Setting to False means the UV selection will be ignored. While setting to true is supported it is up to the script author to ensure a correct selection state before doing so."""
|
|
1509
1181
|
|
|
1510
1182
|
verts: BMVertSeq
|
|
1511
|
-
""" This meshes vert sequence (read-only).
|
|
1512
|
-
|
|
1513
|
-
:type: BMVertSeq
|
|
1514
|
-
"""
|
|
1183
|
+
""" This meshes vert sequence (read-only)."""
|
|
1515
1184
|
|
|
1516
1185
|
def calc_loop_triangles(self) -> list[tuple[BMLoop, BMLoop, BMLoop]]:
|
|
1517
1186
|
"""Calculate triangle tessellation from quads/ngons.
|
|
1518
1187
|
|
|
1519
1188
|
:return: The triangulated faces.
|
|
1520
|
-
:rtype: list[tuple[BMLoop, BMLoop, BMLoop]]
|
|
1521
1189
|
"""
|
|
1522
1190
|
|
|
1523
1191
|
def calc_volume(self, *, signed: bool = False) -> float:
|
|
1524
1192
|
"""Calculate mesh volume based on face normals.
|
|
1525
1193
|
|
|
1526
1194
|
:param signed: when signed is true, negative values may be returned.
|
|
1527
|
-
:type signed: bool
|
|
1528
1195
|
:return: The volume of the mesh.
|
|
1529
|
-
:rtype: float
|
|
1530
1196
|
"""
|
|
1531
1197
|
|
|
1532
1198
|
def clear(self) -> None:
|
|
@@ -1536,7 +1202,6 @@ class BMesh:
|
|
|
1536
1202
|
"""
|
|
1537
1203
|
|
|
1538
1204
|
:return: A copy of this BMesh.
|
|
1539
|
-
:rtype: typing_extensions.Self
|
|
1540
1205
|
"""
|
|
1541
1206
|
|
|
1542
1207
|
def free(self) -> None:
|
|
@@ -1554,15 +1219,10 @@ class BMesh:
|
|
|
1554
1219
|
"""Initialize this bmesh from existing mesh data-block.
|
|
1555
1220
|
|
|
1556
1221
|
:param mesh: The mesh data to load.
|
|
1557
|
-
:type mesh: bpy.types.Mesh
|
|
1558
1222
|
:param face_normals: Calculate face normals.
|
|
1559
|
-
:type face_normals: bool
|
|
1560
1223
|
:param vertex_normals: Calculate vertex normals.
|
|
1561
|
-
:type vertex_normals: bool
|
|
1562
1224
|
:param use_shape_key: Use the locations from a shape key.
|
|
1563
|
-
:type use_shape_key: bool
|
|
1564
1225
|
:param shape_key_index: The shape key index to use.
|
|
1565
|
-
:type shape_key_index: int
|
|
1566
1226
|
"""
|
|
1567
1227
|
|
|
1568
1228
|
def from_object(
|
|
@@ -1577,15 +1237,10 @@ class BMesh:
|
|
|
1577
1237
|
"""Initialize this bmesh from existing object data-block (only meshes are currently supported).
|
|
1578
1238
|
|
|
1579
1239
|
:param object: The object data to load.
|
|
1580
|
-
:type object: bpy.types.Object
|
|
1581
1240
|
:param depsgraph: The dependency graph for evaluated data.
|
|
1582
|
-
:type depsgraph: bpy.types.Depsgraph
|
|
1583
1241
|
:param cage: Get the mesh as a deformed cage.
|
|
1584
|
-
:type cage: bool
|
|
1585
1242
|
:param face_normals: Calculate face normals.
|
|
1586
|
-
:type face_normals: bool
|
|
1587
1243
|
:param vertex_normals: Calculate vertex normals.
|
|
1588
|
-
:type vertex_normals: bool
|
|
1589
1244
|
"""
|
|
1590
1245
|
|
|
1591
1246
|
def normal_update(self) -> None:
|
|
@@ -1595,21 +1250,18 @@ class BMesh:
|
|
|
1595
1250
|
"""Flush selection from vertices, independent of the current selection mode.
|
|
1596
1251
|
|
|
1597
1252
|
:param select: flush selection or de-selected elements.
|
|
1598
|
-
:type select: bool
|
|
1599
1253
|
"""
|
|
1600
1254
|
|
|
1601
1255
|
def select_flush_mode(self, *, flush_down: bool = False) -> None:
|
|
1602
1256
|
"""Flush selection based on the current mode current `bmesh.types.BMesh.select_mode`.
|
|
1603
1257
|
|
|
1604
1258
|
:param flush_down: Flush selection down from faces to edges & verts or from edges to verts. This option is ignored when vertex selection mode is enabled.
|
|
1605
|
-
:type flush_down: bool
|
|
1606
1259
|
"""
|
|
1607
1260
|
|
|
1608
1261
|
def to_mesh(self, mesh: bpy.types.Mesh) -> None:
|
|
1609
1262
|
"""Writes this BMesh data into an existing Mesh data-block.
|
|
1610
1263
|
|
|
1611
1264
|
:param mesh: The mesh data to write into.
|
|
1612
|
-
:type mesh: bpy.types.Mesh
|
|
1613
1265
|
"""
|
|
1614
1266
|
|
|
1615
1267
|
def transform(
|
|
@@ -1617,12 +1269,12 @@ class BMesh:
|
|
|
1617
1269
|
matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
1618
1270
|
| mathutils.Matrix,
|
|
1619
1271
|
*,
|
|
1620
|
-
filter
|
|
1272
|
+
filter: set[typing.Literal["SELECT", "HIDE", "SEAM", "SMOOTH", "TAG"]]
|
|
1273
|
+
| None = None,
|
|
1621
1274
|
) -> None:
|
|
1622
1275
|
"""Transform the mesh (optionally filtering flagged data only).
|
|
1623
1276
|
|
|
1624
1277
|
:param matrix: 4x4 transform matrix.
|
|
1625
|
-
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix
|
|
1626
1278
|
:param filter: Flag to filter vertices.
|
|
1627
1279
|
"""
|
|
1628
1280
|
|
|
@@ -1630,21 +1282,18 @@ class BMesh:
|
|
|
1630
1282
|
"""Flush selection from UV vertices to edges & faces independent of the selection mode.
|
|
1631
1283
|
|
|
1632
1284
|
:param select: Flush selection or de-selected elements.
|
|
1633
|
-
:type select: bool
|
|
1634
1285
|
"""
|
|
1635
1286
|
|
|
1636
1287
|
def uv_select_flush_mode(self, *, flush_down: bool = False) -> None:
|
|
1637
1288
|
"""Flush selection based on the current mode current `BMesh.select_mode`.
|
|
1638
1289
|
|
|
1639
1290
|
:param flush_down: Flush selection down from faces to edges & verts or from edges to verts. This option is ignored when vertex selection mode is enabled.
|
|
1640
|
-
:type flush_down: bool
|
|
1641
1291
|
"""
|
|
1642
1292
|
|
|
1643
1293
|
def uv_select_flush_shared(self, select: bool) -> None:
|
|
1644
1294
|
"""Flush selection from UV vertices to contiguous UVs independent of the selection mode.
|
|
1645
1295
|
|
|
1646
1296
|
:param select: Flush selection or de-selected elements.
|
|
1647
|
-
:type select: bool
|
|
1648
1297
|
"""
|
|
1649
1298
|
|
|
1650
1299
|
def uv_select_foreach_set(
|
|
@@ -1662,15 +1311,10 @@ class BMesh:
|
|
|
1662
1311
|
"""Set the UV selection state for loop-vertices, loop-edges & faces.This is a close equivalent to selecting in the UV editor.
|
|
1663
1312
|
|
|
1664
1313
|
:param select: The selection state to set.
|
|
1665
|
-
:type select: bool
|
|
1666
1314
|
:param loop_verts: Loop verts to operate on.
|
|
1667
|
-
:type loop_verts: collections.abc.Iterable[BMLoop]
|
|
1668
1315
|
:param loop_edges: Loop edges to operate on.
|
|
1669
|
-
:type loop_edges: collections.abc.Iterable[BMLoop]
|
|
1670
1316
|
:param faces: Faces to operate on.
|
|
1671
|
-
:type faces: collections.abc.Iterable[BMFace]
|
|
1672
1317
|
:param sticky_select_mode: See UV_STICKY_SELECT_MODE_REF.
|
|
1673
|
-
:type sticky_select_mode: typing.Literal['SHARED_LOCATION', 'DISABLED', 'SHARED_VERTEX']
|
|
1674
1318
|
"""
|
|
1675
1319
|
|
|
1676
1320
|
def uv_select_foreach_set_from_mesh(
|
|
@@ -1688,15 +1332,10 @@ class BMesh:
|
|
|
1688
1332
|
"""Select or de-select mesh elements, updating the UV selection.An equivalent to selecting from the 3D viewport for selection operations that support maintaining a synchronized UV selection.
|
|
1689
1333
|
|
|
1690
1334
|
:param select: The selection state to set.
|
|
1691
|
-
:type select: bool
|
|
1692
1335
|
:param verts: Verts to operate on.
|
|
1693
|
-
:type verts: collections.abc.Iterable[BMVert]
|
|
1694
1336
|
:param edges: Edges to operate on.
|
|
1695
|
-
:type edges: collections.abc.Iterable[BMEdge]
|
|
1696
1337
|
:param faces: Faces to operate on.
|
|
1697
|
-
:type faces: collections.abc.Iterable[BMFace]
|
|
1698
1338
|
:param sticky_select_mode: See UV_STICKY_SELECT_MODE_REF.
|
|
1699
|
-
:type sticky_select_mode: typing.Literal['SHARED_LOCATION', 'DISABLED', 'SHARED_VERTEX']
|
|
1700
1339
|
"""
|
|
1701
1340
|
|
|
1702
1341
|
def uv_select_sync_from_mesh(
|
|
@@ -1709,7 +1348,6 @@ class BMesh:
|
|
|
1709
1348
|
"""Sync selection from mesh to UVs.
|
|
1710
1349
|
|
|
1711
1350
|
:param sticky_select_mode: Behavior when flushing from the mesh to UV selection UV_STICKY_SELECT_MODE_REF. This should only be used when preparing to create a UV selection.
|
|
1712
|
-
:type sticky_select_mode: typing.Literal['SHARED_LOCATION', 'DISABLED', 'SHARED_VERTEX']
|
|
1713
1351
|
"""
|
|
1714
1352
|
|
|
1715
1353
|
def uv_select_sync_to_mesh(self) -> None:
|