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