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