|
Blender V5.0
|
#include "BLI_math_geom.h"#include "BLI_math_matrix.h"#include "BLI_math_vector.h"#include "BLI_sort.h"#include "BLI_string_utils.hh"#include "DNA_material_types.h"#include "DNA_mesh_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "BKE_customdata.hh"#include "BKE_global.hh"#include "BKE_lib_id.hh"#include "BKE_mesh.h"#include "BKE_mesh_runtime.hh"#include "BKE_mesh_types.hh"#include "BKE_object.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_query.hh"#include "bmesh.hh"#include <Python.h>#include "../generic/python_compat.hh"#include "../mathutils/mathutils.hh"#include "../generic/py_capi_utils.hh"#include "../generic/python_utildefines.hh"#include "bmesh_py_types.hh"#include "bmesh_py_types_customdata.hh"#include "bmesh_py_types_meshdata.hh"#include "bmesh_py_types_select.hh"Go to the source code of this file.
Macros | |
| #define | BPY_BM_HTYPE_NOLOOP "'VERT', 'EDGE', 'FACE'" |
| #define | BPY_BM_HFLAG_ALL_STR "'SELECT', 'HIDE', 'SEAM', 'SMOOTH', 'TAG'" |
Functions | |
| static void | bm_dealloc_editmode_warn (BPy_BMesh *self) |
| PyDoc_STRVAR (bpy_bm_elem_select_doc, "Selected state of this element.\n" "\n" ":type: bool\n") | |
| PyDoc_STRVAR (bpy_bm_elem_hide_doc, "Hidden state of this element.\n" "\n" ":type: bool\n") | |
| PyDoc_STRVAR (bpy_bm_elem_tag_doc, "Generic attribute scripts can use for own logic\n" "\n" ":type: bool\n") | |
| PyDoc_STRVAR (bpy_bm_elem_smooth_doc, "Smooth state of this element.\n" "\n" ":type: bool\n") | |
| PyDoc_STRVAR (bpy_bm_elem_seam_doc, "Seam for UV unwrapping.\n" "\n" ":type: bool\n") | |
| PyDoc_STRVAR (bpy_bm_elem_uv_select_doc, "UV selected state of this element.\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bm_elem_hflag_get (BPy_BMElem *self, void *flag) |
| static int | bpy_bm_elem_hflag_set (BPy_BMElem *self, PyObject *value, void *flag) |
| PyDoc_STRVAR (bpy_bm_elem_index_doc, "Index of this element.\n" "\n" ":type: int\n" "\n" ".. note::\n" "\n" " This value is not necessarily valid, while editing the mesh it can become *dirty*.\n" "\n" " It's also possible to assign any number to this attribute for a scripts internal logic.\n" "\n" " To ensure the value is up to date - see :class:`bmesh.types.BMElemSeq.index_update`.\n") | |
| static PyObject * | bpy_bm_elem_index_get (BPy_BMElem *self, void *) |
| static int | bpy_bm_elem_index_set (BPy_BMElem *self, PyObject *value, void *) |
| PyDoc_STRVAR (bpy_bmvertseq_doc, "This meshes vert sequence (read-only).\n" "\n" ":type: :class:`bmesh.types.BMVertSeq`\n") | |
| static PyObject * | bpy_bmvertseq_get (BPy_BMesh *self, void *) |
| PyDoc_STRVAR (bpy_bmedgeseq_doc, "This meshes edge sequence (read-only).\n" "\n" ":type: :class:`bmesh.types.BMEdgeSeq`\n") | |
| static PyObject * | bpy_bmedgeseq_get (BPy_BMesh *self, void *) |
| PyDoc_STRVAR (bpy_bmfaceseq_doc, "This meshes face sequence (read-only).\n" "\n" ":type: :class:`bmesh.types.BMFaceSeq`\n") | |
| static PyObject * | bpy_bmfaceseq_get (BPy_BMesh *self, void *) |
| PyDoc_STRVAR (bpy_bmloopseq_doc, "This meshes loops (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoopSeq`\n" "\n" ".. note::\n" "\n" " Loops must be accessed via faces, this is only exposed for layer access.\n") | |
| static PyObject * | bpy_bmloopseq_get (BPy_BMesh *self, void *) |
| PyDoc_STRVAR (bpy_bmvert_link_edges_doc, "Edges connected to this vertex (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMEdge`\n") | |
| PyDoc_STRVAR (bpy_bmvert_link_faces_doc, "Faces connected to this vertex (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMFace`\n") | |
| PyDoc_STRVAR (bpy_bmvert_link_loops_doc, "Loops that use this vertex (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n") | |
| PyDoc_STRVAR (bpy_bmedge_verts_doc, "Verts this edge uses (always 2), (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of " ":class:`bmesh.types.BMVert`\n") | |
| PyDoc_STRVAR (bpy_bmedge_link_faces_doc, "Faces connected to this edge, (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMFace`\n") | |
| PyDoc_STRVAR (bpy_bmedge_link_loops_doc, "Loops connected to this edge, (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n") | |
| PyDoc_STRVAR (bpy_bmface_verts_doc, "Verts of this face, (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMVert`\n") | |
| PyDoc_STRVAR (bpy_bmface_edges_doc, "Edges of this face, (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMEdge`\n") | |
| PyDoc_STRVAR (bpy_bmface_loops_doc, "Loops of this face, (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n") | |
| PyDoc_STRVAR (bpy_bmloops_link_loops_doc, "Loops connected to this loop, (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n") | |
| static PyObject * | bpy_bmelemseq_elem_get (BPy_BMElem *self, void *itype) |
| PyDoc_STRVAR (bpy_bm_is_valid_doc, "True when this element is valid (hasn't been removed).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bm_is_valid_get (BPy_BMGeneric *self, void *) |
| PyDoc_STRVAR (bpy_bmesh_is_wrapped_doc, "True when this mesh is owned by blender (typically the editmode BMesh).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmesh_is_wrapped_get (BPy_BMesh *self, void *) |
| PyDoc_STRVAR (bpy_bmesh_select_mode_doc, "The selection mode, cannot be assigned an empty set.\n" "\n" ":type: set[Literal[" BPY_BM_HTYPE_NOLOOP "]]\n") | |
| static PyObject * | bpy_bmesh_select_mode_get (BPy_BMesh *self, void *) |
| static int | bpy_bmesh_select_mode_set (BPy_BMesh *self, PyObject *value, void *) |
| PyDoc_STRVAR (bpy_bmesh_select_history_doc, "Sequence of selected items (the last is displayed as active).\n" "\n" ":type: " ":class:`bmesh.types.BMEditSelSeq`\n") | |
| static PyObject * | bpy_bmesh_select_history_get (BPy_BMesh *self, void *) |
| static int | bpy_bmesh_select_history_set (BPy_BMesh *self, PyObject *value, void *) |
| PyDoc_STRVAR (bpy_bmesh_uv_select_sync_valid_doc, "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.\n" ":type: " "bool\n") | |
| static PyObject * | bpy_bmesh_uv_select_sync_valid_get (BPy_BMesh *self, void *) |
| static int | bpy_bmesh_uv_select_sync_valid_set (BPy_BMesh *self, PyObject *value, void *) |
| PyDoc_STRVAR (bpy_bmvert_co_doc, "The coordinates for this vertex as a 3D, wrapped vector.\n" "\n" ":type: " ":class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmvert_co_get (BPy_BMVert *self, void *) |
| static int | bpy_bmvert_co_set (BPy_BMVert *self, PyObject *value, void *) |
| PyDoc_STRVAR (bpy_bmvert_normal_doc, "The normal for this vertex as a 3D, wrapped vector.\n" "\n" ":type: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmvert_normal_get (BPy_BMVert *self, void *) |
| static int | bpy_bmvert_normal_set (BPy_BMVert *self, PyObject *value, void *) |
| PyDoc_STRVAR (bpy_bmvert_is_manifold_doc, "True when this vertex is manifold (read-only).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmvert_is_manifold_get (BPy_BMVert *self, void *) |
| PyDoc_STRVAR (bpy_bmvert_is_wire_doc, "True when this vertex is not connected to any faces (read-only).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmvert_is_wire_get (BPy_BMVert *self, void *) |
| PyDoc_STRVAR (bpy_bmvert_is_boundary_doc, "True when this vertex is connected to boundary edges (read-only).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmvert_is_boundary_get (BPy_BMVert *self, void *) |
| PyDoc_STRVAR (bpy_bmedge_is_manifold_doc, "True when this edge is manifold (read-only).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmedge_is_manifold_get (BPy_BMEdge *self, void *) |
| PyDoc_STRVAR (bpy_bmedge_is_contiguous_doc, "True when this edge is manifold, between two faces with the same winding " "(read-only).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmedge_is_contiguous_get (BPy_BMEdge *self, void *) |
| PyDoc_STRVAR (bpy_bmedge_is_convex_doc, "True when this edge joins two convex faces, depends on a valid face normal (read-only).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmedge_is_convex_get (BPy_BMEdge *self, void *) |
| PyDoc_STRVAR (bpy_bmedge_is_wire_doc, "True when this edge is not connected to any faces (read-only).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmedge_is_wire_get (BPy_BMEdge *self, void *) |
| PyDoc_STRVAR (bpy_bmedge_is_boundary_doc, "True when this edge is at the boundary of a face (read-only).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmedge_is_boundary_get (BPy_BMEdge *self, void *) |
| PyDoc_STRVAR (bpy_bmface_normal_doc, "The normal for this face as a 3D, wrapped vector.\n" "\n" ":type: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmface_normal_get (BPy_BMFace *self, void *) |
| static int | bpy_bmface_normal_set (BPy_BMFace *self, PyObject *value, void *) |
| PyDoc_STRVAR (bpy_bmface_material_index_doc, "The face's material index.\n" "\n" ":type: int\n") | |
| static PyObject * | bpy_bmface_material_index_get (BPy_BMFace *self, void *) |
| static int | bpy_bmface_material_index_set (BPy_BMFace *self, PyObject *value, void *) |
| PyDoc_STRVAR (bpy_bmloop_vert_doc, "The loop's vertex (read-only).\n" "\n" ":type: :class:`bmesh.types.BMVert`\n") | |
| static PyObject * | bpy_bmloop_vert_get (BPy_BMLoop *self, void *) |
| PyDoc_STRVAR (bpy_bmloop_edge_doc, "The loop's edge (between this loop and the next), (read-only).\n" "\n" ":type: :class:`bmesh.types.BMEdge`\n") | |
| static PyObject * | bpy_bmloop_edge_get (BPy_BMLoop *self, void *) |
| PyDoc_STRVAR (bpy_bmloop_face_doc, "The face this loop makes (read-only).\n" "\n" ":type: :class:`bmesh.types.BMFace`\n") | |
| static PyObject * | bpy_bmloop_face_get (BPy_BMLoop *self, void *) |
| PyDoc_STRVAR (bpy_bmloop_link_loop_next_doc, "The next face corner (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoop`\n") | |
| static PyObject * | bpy_bmloop_link_loop_next_get (BPy_BMLoop *self, void *) |
| PyDoc_STRVAR (bpy_bmloop_link_loop_prev_doc, "The previous face corner (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoop`\n") | |
| static PyObject * | bpy_bmloop_link_loop_prev_get (BPy_BMLoop *self, void *) |
| PyDoc_STRVAR (bpy_bmloop_link_loop_radial_next_doc, "The next loop around the edge (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoop`\n") | |
| static PyObject * | bpy_bmloop_link_loop_radial_next_get (BPy_BMLoop *self, void *) |
| PyDoc_STRVAR (bpy_bmloop_link_loop_radial_prev_doc, "The previous loop around the edge (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoop`\n") | |
| static PyObject * | bpy_bmloop_link_loop_radial_prev_get (BPy_BMLoop *self, void *) |
| PyDoc_STRVAR (bpy_bmloop_is_convex_doc, "True when this loop is at the convex corner of a face, depends on a valid face " "normal (read-only).\n" "\n" ":type: bool\n") | |
| static PyObject * | bpy_bmloop_is_convex_get (BPy_BMLoop *self, void *) |
| PyDoc_STRVAR (bpy_bmelemseq_layers_vert_doc, "custom-data layers (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLayerAccessVert`\n") | |
| PyDoc_STRVAR (bpy_bmelemseq_layers_edge_doc, "custom-data layers (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLayerAccessEdge`\n") | |
| PyDoc_STRVAR (bpy_bmelemseq_layers_face_doc, "custom-data layers (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLayerAccessFace`\n") | |
| PyDoc_STRVAR (bpy_bmelemseq_layers_loop_doc, "custom-data layers (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLayerAccessLoop`\n") | |
| static PyObject * | bpy_bmelemseq_layers_get (BPy_BMElemSeq *self, void *htype) |
| PyDoc_STRVAR (bpy_bmfaceseq_active_doc, "active face.\n" "\n" ":type: :class:`bmesh.types.BMFace` | None\n") | |
| static PyObject * | bpy_bmfaceseq_active_get (BPy_BMElemSeq *self, void *) |
| static int | bpy_bmfaceseq_active_set (BPy_BMElem *self, PyObject *value, void *) |
| PyDoc_STRVAR (bpy_bmesh_copy_doc, ".. method:: copy()\n" "\n" " :return: A copy of this BMesh.\n" " :rtype: :class:`bmesh.types.BMesh`\n") | |
| static PyObject * | bpy_bmesh_copy (BPy_BMesh *self) |
| PyDoc_STRVAR (bpy_bmesh_clear_doc, ".. method:: clear()\n" "\n" " Clear all mesh data.\n") | |
| static PyObject * | bpy_bmesh_clear (BPy_BMesh *self) |
| PyDoc_STRVAR (bpy_bmesh_free_doc, ".. method:: free()\n" "\n" " Explicitly free the BMesh data from memory, causing exceptions on further access.\n" "\n" " .. note::\n" "\n" " The BMesh is freed automatically, typically when the script finishes executing.\n" " However in some cases its hard to predict when this will be and its useful to\n" " explicitly free the data.\n") | |
| static PyObject * | bpy_bmesh_free (BPy_BMesh *self) |
| PyDoc_STRVAR (bpy_bmesh_to_mesh_doc, ".. method:: to_mesh(mesh)\n" "\n" " Writes this BMesh data into an existing Mesh data-block.\n" "\n" " :arg mesh: The mesh data to write into.\n" " :type mesh: :class:`bpy.types.Mesh`\n") | |
| static PyObject * | bpy_bmesh_to_mesh (BPy_BMesh *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmesh_from_object_doc, ".. method:: from_object(object, depsgraph, *, " "cage=False, face_normals=True, vertex_normals=True)\n" "\n" " Initialize this bmesh from existing object data-block (only meshes are currently " "supported).\n" "\n" " :arg object: The object data to load.\n" " :type object: :class:`bpy.types.Object`\n" " :type depsgraph: :class:`bpy.types.Depsgraph`\n" " :arg cage: Get the mesh as a deformed cage.\n" " :type cage: bool\n" " :arg face_normals: Calculate face normals.\n" " :type face_normals: bool\n" " :arg vertex_normals: Calculate vertex normals.\n" " :type vertex_normals: bool\n") | |
| static PyObject * | bpy_bmesh_from_object (BPy_BMesh *self, PyObject *args, PyObject *kw) |
| PyDoc_STRVAR (bpy_bmesh_from_mesh_doc, ".. method:: from_mesh(mesh, *, " "face_normals=True, vertex_normals=True, use_shape_key=False, shape_key_index=0)\n" "\n" " Initialize this bmesh from existing mesh data-block.\n" "\n" " :arg mesh: The mesh data to load.\n" " :type mesh: :class:`bpy.types.Mesh`\n" " :type face_normals: bool\n" " :type vertex_normals: bool\n" " :arg use_shape_key: Use the locations from a shape key.\n" " :type use_shape_key: bool\n" " :arg shape_key_index: The shape key index to use.\n" " :type shape_key_index: int\n" "\n" " .. note::\n" "\n" " Multiple calls can be used to join multiple meshes.\n" "\n" " Custom-data layers are only copied from ``mesh`` on initialization.\n" " Further calls will copy custom-data to matching layers, layers missing on the target " "mesh won't be added.\n") | |
| static PyObject * | bpy_bmesh_from_mesh (BPy_BMesh *self, PyObject *args, PyObject *kw) |
| PyDoc_STRVAR (bpy_bmesh_select_flush_mode_doc, ".. method:: select_flush_mode(*, flush_down=False)\n" "\n" " Flush selection based on the current mode current " ":class:`bmesh.types.BMesh.select_mode`.\n" "\n" " :arg 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.\n" " :type flush_down: bool\n") | |
| static PyObject * | bpy_bmesh_select_flush_mode (BPy_BMesh *self, PyObject *args, PyObject *kw) |
| PyDoc_STRVAR (bpy_bmesh_select_flush_doc, ".. method:: select_flush(select)\n" "\n" " Flush selection from vertices, independent of the current selection mode.\n" "\n" " :arg select: flush selection or de-selected elements.\n" " :type select: bool\n") | |
| static PyObject * | bpy_bmesh_select_flush (BPy_BMesh *self, PyObject *value) |
| PyDoc_STRVAR (bpy_bmesh_normal_update_doc, ".. method:: normal_update()\n" "\n" " Update normals of mesh faces and verts.\n" "\n" " .. note::\n" "\n" " The normal of any vertex where :attr:`is_wire` is True will be a zero vector.\n") | |
| static PyObject * | bpy_bmesh_normal_update (BPy_BMesh *self) |
| PyDoc_STRVAR (bpy_bmesh_transform_doc, ".. method:: transform(matrix, *, filter=None)\n" "\n" " Transform the mesh (optionally filtering flagged data only).\n" "\n" " :arg matrix: 4x4x transform matrix.\n" " :type matrix: :class:`mathutils.Matrix`\n" " :arg filter: Flag to filter vertices." ".\n" " :type filter: set[Literal[" BPY_BM_HFLAG_ALL_STR "]]\n") | |
| static PyObject * | bpy_bmesh_transform (BPy_BMElem *self, PyObject *args, PyObject *kw) |
| PyDoc_STRVAR (bpy_bmesh_calc_volume_doc, ".. method:: calc_volume(*, signed=False)\n" "\n" " Calculate mesh volume based on face normals.\n" "\n" " :arg signed: when signed is true, negative values may be returned.\n" " :type signed: bool\n" " :return: The volume of the mesh.\n" " :rtype: float\n") | |
| static PyObject * | bpy_bmesh_calc_volume (BPy_BMElem *self, PyObject *args, PyObject *kw) |
| PyDoc_STRVAR (bpy_bmesh_calc_loop_triangles_doc, ".. method:: calc_loop_triangles()\n" "\n" " Calculate triangle tessellation from quads/ngons.\n" "\n" " :return: The triangulated faces.\n" " :rtype: list[tuple[:class:`bmesh.types.BMLoop`, " ":class:`bmesh.types.BMLoop`, " ":class:`bmesh.types.BMLoop`]]\n") | |
| static PyObject * | bpy_bmesh_calc_loop_triangles (BPy_BMElem *self) |
| PyDoc_STRVAR (bpy_bm_elem_select_set_doc, ".. method:: select_set(select)\n" "\n" " Set the selection.\n" " This is different from the *select* attribute because it updates the selection " "state of associated geometry.\n" "\n" " :arg select: Select or de-select.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " This only flushes down, so selecting a face will select all its " "vertices but de-selecting a vertex " " won't de-select all the faces that use it, before finishing with a mesh " "typically flushing is still needed.\n") | |
| static PyObject * | bpy_bm_elem_select_set (BPy_BMElem *self, PyObject *value) |
| PyDoc_STRVAR (bpy_bm_elem_hide_set_doc, ".. method:: hide_set(hide)\n" "\n" " Set the hide state.\n" " This is different from the *hide* attribute because it updates the selection and " "hide state of associated geometry.\n" "\n" " :arg hide: Hidden or visible.\n" " :type hide: bool\n") | |
| static PyObject * | bpy_bm_elem_hide_set (BPy_BMElem *self, PyObject *value) |
| PyDoc_STRVAR (bpy_bm_elem_copy_from_doc, ".. method:: copy_from(other)\n" "\n" " Copy values from another element of matching type.\n") | |
| static PyObject * | bpy_bm_elem_copy_from (BPy_BMElem *self, BPy_BMElem *value) |
| PyDoc_STRVAR (bpy_bmvert_copy_from_vert_interp_doc, ".. method:: copy_from_vert_interp(vert_pair, fac)\n" "\n" " Interpolate the customdata from a vert between 2 other verts.\n" "\n" " :arg vert_pair: The verts between which to interpolate data from.\n" " :type vert_pair: Sequence[:class:`bmesh.types.BMVert`]\n" " :type fac: float\n") | |
| static PyObject * | bpy_bmvert_copy_from_vert_interp (BPy_BMVert *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmvert_copy_from_face_interp_doc, ".. method:: copy_from_face_interp(face)\n" "\n" " Interpolate the customdata from a face onto this loop (the loops vert should " "overlap the face).\n" "\n" " :arg face: The face to interpolate data from.\n" " :type face: :class:`bmesh.types.BMFace`\n") | |
| static PyObject * | bpy_bmvert_copy_from_face_interp (BPy_BMVert *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmvert_calc_edge_angle_doc, ".. method:: calc_edge_angle(fallback=None)\n" "\n" " Return the angle between this vert's two connected edges.\n" "\n" " :arg fallback: return this when the vert doesn't have 2 edges\n" " (instead of raising a :exc:`ValueError`).\n" " :type fallback: Any\n" " :return: Angle between edges in radians.\n" " :rtype: float\n") | |
| static PyObject * | bpy_bmvert_calc_edge_angle (BPy_BMVert *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmvert_calc_shell_factor_doc, ".. method:: calc_shell_factor()\n" "\n" " Return a multiplier calculated based on the sharpness of the vertex.\n" " Where a flat surface gives 1.0, and higher values sharper edges.\n" " This is used to maintain shell thickness when offsetting verts along their normals.\n" "\n" " :return: offset multiplier\n" " :rtype: float\n") | |
| static PyObject * | bpy_bmvert_calc_shell_factor (BPy_BMVert *self) |
| PyDoc_STRVAR (bpy_bmvert_normal_update_doc, ".. method:: normal_update()\n" "\n" " Update vertex normal.\n" " This does not update the normals of adjoining faces.\n" "\n" " .. note::\n" "\n" " The vertex normal will be a zero vector if vertex :attr:`is_wire` is True.\n") | |
| static PyObject * | bpy_bmvert_normal_update (BPy_BMVert *self) |
| PyDoc_STRVAR (bpy_bmedge_calc_length_doc, ".. method:: calc_length()\n" "\n" " :return: The length between both verts.\n" " :rtype: float\n") | |
| static PyObject * | bpy_bmedge_calc_length (BPy_BMEdge *self) |
| PyDoc_STRVAR (bpy_bmedge_calc_face_angle_doc, ".. method:: calc_face_angle(fallback=None)\n" "\n" " :arg fallback: return this when the edge doesn't have 2 faces\n" " (instead of raising a :exc:`ValueError`).\n" " :type fallback: Any\n" " :return: The angle between 2 connected faces in radians.\n" " :rtype: float\n") | |
| static PyObject * | bpy_bmedge_calc_face_angle (BPy_BMEdge *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmedge_calc_face_angle_signed_doc, ".. method:: calc_face_angle_signed(fallback=None)\n" "\n" " :arg fallback: return this when the edge doesn't have 2 faces\n" " (instead of raising a :exc:`ValueError`).\n" " :type fallback: Any\n" " :return: The angle between 2 connected faces in radians (negative for concave join).\n" " :rtype: float\n") | |
| static PyObject * | bpy_bmedge_calc_face_angle_signed (BPy_BMEdge *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmedge_calc_tangent_doc, ".. method:: calc_tangent(loop)\n" "\n" " Return the tangent at this edge relative to a face (pointing inward into the face).\n" " This uses the face normal for calculation.\n" "\n" " :arg loop: The loop used for tangent calculation.\n" " :type loop: :class:`bmesh.types.BMLoop`\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmedge_calc_tangent (BPy_BMEdge *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmedge_other_vert_doc, ".. method:: other_vert(vert)\n" "\n" " Return the other vertex on this edge or None if the vertex is not used by this edge.\n" "\n" " :arg vert: a vert in this edge.\n" " :type vert: :class:`bmesh.types.BMVert`\n" " :return: The edges other vert.\n" " :rtype: :class:`bmesh.types.BMVert` | None\n") | |
| static PyObject * | bpy_bmedge_other_vert (BPy_BMEdge *self, BPy_BMVert *value) |
| PyDoc_STRVAR (bpy_bmedge_normal_update_doc, ".. method:: normal_update()\n" "\n" " Update normals of all connected faces and the edge verts.\n" "\n" " .. note::\n" "\n" " The normal of edge vertex will be a zero vector if vertex :attr:`is_wire` is True.\n") | |
| static PyObject * | bpy_bmedge_normal_update (BPy_BMEdge *self) |
| PyDoc_STRVAR (bpy_bmface_copy_from_face_interp_doc, ".. method:: copy_from_face_interp(face, vert=True)\n" "\n" " Interpolate the customdata from another face onto this one (faces should overlap).\n" "\n" " :arg face: The face to interpolate data from.\n" " :type face: :class:`bmesh.types.BMFace`\n" " :arg vert: When True, also copy vertex data.\n" " :type vert: bool\n") | |
| static PyObject * | bpy_bmface_copy_from_face_interp (BPy_BMFace *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmface_copy_doc, ".. method:: copy(*, verts=True, edges=True)\n" "\n" " Make a copy of this face.\n" "\n" " :arg verts: When set, the faces verts will be duplicated too.\n" " :type verts: bool\n" " :arg edges: When set, the faces edges will be duplicated too.\n" " :type edges: bool\n" " :return: The newly created face.\n" " :rtype: :class:`bmesh.types.BMFace`\n") | |
| static PyObject * | bpy_bmface_copy (BPy_BMFace *self, PyObject *args, PyObject *kw) |
| PyDoc_STRVAR (bpy_bmface_uv_select_set_doc, ".. method:: uv_select_set(select)\n" "\n" " Select the face.\n" "\n" " :arg select: Select or de-select.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " Currently this only flushes down, so selecting a face will select all its " "vertices but de-selecting a vertex " " won't de-select all the faces that use it, before finishing with a mesh " "typically flushing is still needed.\n") | |
| static PyObject * | bpy_bmface_uv_select_set (BPy_BMFace *self, PyObject *value) |
| PyDoc_STRVAR (bpy_bmface_calc_area_doc, ".. method:: calc_area()\n" "\n" " Return the area of the face.\n" "\n" " :return: Return the area of the face.\n" " :rtype: float\n") | |
| static PyObject * | bpy_bmface_calc_area (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_calc_perimeter_doc, ".. method:: calc_perimeter()\n" "\n" " Return the perimeter of the face.\n" "\n" " :return: Return the perimeter of the face.\n" " :rtype: float\n") | |
| static PyObject * | bpy_bmface_calc_perimeter (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_calc_tangent_edge_doc, ".. method:: calc_tangent_edge()\n" "\n" " Return face tangent based on longest edge.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmface_calc_tangent_edge (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_calc_tangent_edge_pair_doc, ".. method:: calc_tangent_edge_pair()\n" "\n" " Return face tangent based on the two longest disconnected edges.\n" "\n" " - Tris: Use the edge pair with the most similar lengths.\n" " - Quads: Use the longest edge pair.\n" " - NGons: Use the two longest disconnected edges.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmface_calc_tangent_edge_pair (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_calc_tangent_edge_diagonal_doc, ".. method:: calc_tangent_edge_diagonal()\n" "\n" " Return face tangent based on the edge farthest from any vertex.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmface_calc_tangent_edge_diagonal (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_calc_tangent_vert_diagonal_doc, ".. method:: calc_tangent_vert_diagonal()\n" "\n" " Return face tangent based on the two most distant vertices.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmface_calc_tangent_vert_diagonal (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_calc_center_median_doc, ".. method:: calc_center_median()\n" "\n" " Return median center of the face.\n" "\n" " :return: a 3D vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmface_calc_center_mean (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_calc_center_median_weighted_doc, ".. method:: calc_center_median_weighted()\n" "\n" " Return median center of the face weighted by edge lengths.\n" "\n" " :return: a 3D vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmface_calc_center_median_weighted (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_calc_center_bounds_doc, ".. method:: calc_center_bounds()\n" "\n" " Return bounds center of the face.\n" "\n" " :return: a 3D vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmface_calc_center_bounds (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_normal_update_doc, ".. method:: normal_update()\n" "\n" " Update face normal based on the positions of the face verts.\n" " This does not update the normals of face verts.\n") | |
| static PyObject * | bpy_bmface_normal_update (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmface_normal_flip_doc, ".. method:: normal_flip()\n" "\n" " Reverses winding of a face, which flips its normal.\n") | |
| static PyObject * | bpy_bmface_normal_flip (BPy_BMFace *self) |
| PyDoc_STRVAR (bpy_bmloop_copy_from_face_interp_doc, ".. method:: copy_from_face_interp(face, vert=True, multires=True)\n" "\n" " Interpolate the customdata from a face onto this loop (the loops vert should " "overlap the face).\n" "\n" " :arg face: The face to interpolate data from.\n" " :type face: :class:`bmesh.types.BMFace`\n" " :arg vert: When enabled, interpolate the loops vertex data (optional).\n" " :type vert: bool\n" " :arg multires: When enabled, interpolate the loops multires data (optional).\n" " :type multires: bool\n") | |
| static PyObject * | bpy_bmloop_copy_from_face_interp (BPy_BMLoop *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmloop_uv_select_vert_set_doc, ".. method:: uv_select_vert_set(select)\n" "\n" " Select the UV vertex.\n" "\n" " :arg select: Select or de-select.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " Currently this only flushes down, so selecting an edge will select all its " "vertices but de-selecting a vertex " " won't de-select the edges & faces that use it, before finishing with a mesh " "typically flushing with :class:`bmesh.types.BMesh.uv_select_flush_mode` is still needed.\n") | |
| static PyObject * | bpy_bmloop_uv_select_vert_set (BPy_BMLoop *self, PyObject *value) |
| PyDoc_STRVAR (bpy_bmloop_uv_select_edge_set_doc, ".. method:: uv_select_edge_set(select)\n" "\n" " Set the UV edge selection state.\n" "\n" " :arg select: Select or de-select.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " This only flushes down, so selecting an edge will select all its " "vertices but de-selecting a vertex " "won't de-select the faces that use it, before finishing with a mesh " "typically flushing with :class:`bmesh.types.BMesh.uv_select_flush_mode` is still needed.\n") | |
| static PyObject * | bpy_bmloop_uv_select_edge_set (BPy_BMLoop *self, PyObject *value) |
| PyDoc_STRVAR (bpy_bmloop_calc_angle_doc, ".. method:: calc_angle()\n" "\n" " Return the angle at this loops corner of the face.\n" " This is calculated so sharper corners give lower angles.\n" "\n" " :return: The angle in radians.\n" " :rtype: float\n") | |
| static PyObject * | bpy_bmloop_calc_angle (BPy_BMLoop *self) |
| PyDoc_STRVAR (bpy_bmloop_calc_normal_doc, ".. method:: calc_normal()\n" "\n" " Return normal at this loops corner of the face.\n" " Falls back to the face normal for straight lines.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmloop_calc_normal (BPy_BMLoop *self) |
| PyDoc_STRVAR (bpy_bmloop_calc_tangent_doc, ".. method:: calc_tangent()\n" "\n" " Return the tangent at this loops corner of the face (pointing inward into the face).\n" " Falls back to the face normal for straight lines.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n") | |
| static PyObject * | bpy_bmloop_calc_tangent (BPy_BMLoop *self) |
| PyDoc_STRVAR (bpy_bmvertseq_new_doc, ".. method:: new(co=(0.0, 0.0, 0.0), example=None)\n" "\n" " Create a new vertex.\n" "\n" " :arg co: The initial location of the vertex (optional argument).\n" " :type co: float triplet\n" " :arg example: Existing vert to initialize settings.\n" " :type example: :class:`bmesh.types.BMVert`\n" " :return: The newly created vertex.\n" " :rtype: :class:`bmesh.types.BMVert`\n") | |
| static PyObject * | bpy_bmvertseq_new (BPy_BMElemSeq *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmedgeseq_new_doc, ".. method:: new(verts, example=None)\n" "\n" " Create a new edge from a given pair of verts.\n" "\n" " :arg verts: Vertex pair.\n" " :type verts: Sequence[:class:`bmesh.types.BMVert`]\n" " :arg example: Existing edge to initialize settings (optional argument).\n" " :type example: :class:`bmesh.types.BMEdge`\n" " :return: The newly created edge.\n" " :rtype: :class:`bmesh.types.BMEdge`\n") | |
| static PyObject * | bpy_bmedgeseq_new (BPy_BMElemSeq *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmfaceseq_new_doc, ".. method:: new(verts, example=None)\n" "\n" " Create a new face from a given set of verts.\n" "\n" " :arg verts: Sequence of 3 or more verts.\n" " :type verts: Sequence[:class:`bmesh.types.BMVert`]\n" " :arg example: Existing face to initialize settings (optional argument).\n" " :type example: :class:`bmesh.types.BMFace`\n" " :return: The newly created face.\n" " :rtype: :class:`bmesh.types.BMFace`\n") | |
| static PyObject * | bpy_bmfaceseq_new (BPy_BMElemSeq *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmvertseq_remove_doc, ".. method:: remove(vert)\n" "\n" " Remove a vert.\n" "\n" " :type vert: :class:`bmesh.types.BMVert`\n") | |
| static PyObject * | bpy_bmvertseq_remove (BPy_BMElemSeq *self, BPy_BMVert *value) |
| PyDoc_STRVAR (bpy_bmedgeseq_remove_doc, ".. method:: remove(edge)\n" "\n" " Remove an edge.\n" "\n" " :type edge: :class:`bmesh.types.BMEdge`\n") | |
| static PyObject * | bpy_bmedgeseq_remove (BPy_BMElemSeq *self, BPy_BMEdge *value) |
| PyDoc_STRVAR (bpy_bmfaceseq_remove_doc, ".. method:: remove(face)\n" "\n" " Remove a face.\n" "\n" " :type face: :class:`bmesh.types.BMFace`\n") | |
| static PyObject * | bpy_bmfaceseq_remove (BPy_BMElemSeq *self, BPy_BMFace *value) |
| PyDoc_STRVAR (bpy_bmedgeseq_get__method_doc, ".. method:: get(verts, fallback=None)\n" "\n" " Return an edge which uses the **verts** passed.\n" "\n" " :arg verts: Sequence of verts.\n" " :type verts: Sequence[:class:`bmesh.types.BMVert`]\n" " :arg fallback: Return this value if nothing is found.\n" " :return: The edge found or None\n" " :rtype: :class:`bmesh.types.BMEdge`\n") | |
| static PyObject * | bpy_bmedgeseq_get__method (BPy_BMElemSeq *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmfaceseq_get__method_doc, ".. method:: get(verts, fallback=None)\n" "\n" " Return a face which uses the **verts** passed.\n" "\n" " :arg verts: Sequence of verts.\n" " :type verts: Sequence[:class:`bmesh.types.BMVert`]\n" " :arg fallback: Return this value if nothing is found.\n" " :return: The face found or None\n" " :rtype: :class:`bmesh.types.BMFace`\n") | |
| static PyObject * | bpy_bmfaceseq_get__method (BPy_BMElemSeq *self, PyObject *args) |
| PyDoc_STRVAR (bpy_bmelemseq_index_update_doc, ".. method:: index_update()\n" "\n" " Initialize the index values of this sequence.\n" "\n" " This is the equivalent of looping over all elements and assigning the index values.\n" "\n" " .. code-block:: python\n" "\n" " for index, ele in enumerate(sequence):\n" " ele.index = index\n" "\n" " .. note::\n" "\n" " Running this on sequences besides " ":class:`bmesh.types.BMesh.verts`, " ":class:`bmesh.types.BMesh.edges`, " ":class:`bmesh.types.BMesh.faces`\n" " works but won't result in each element having a valid index, instead its order in the " "sequence will be set.\n") | |
| static PyObject * | bpy_bmelemseq_index_update (BPy_BMElemSeq *self) |
| PyDoc_STRVAR (bpy_bmelemseq_ensure_lookup_table_doc, ".. method:: ensure_lookup_table()\n" "\n" " Ensure internal data needed for int subscription is initialized with " "verts/edges/faces, eg ``bm.verts[index]``.\n" "\n" " This needs to be called again after adding/removing data in this sequence.\n") | |
| static PyObject * | bpy_bmelemseq_ensure_lookup_table (BPy_BMElemSeq *self) |
| PyDoc_STRVAR (bpy_bmelemseq_sort_doc, ".. method:: sort(*, key=None, reverse=False)\n" "\n" " Sort the elements of this sequence, using an optional custom sort key.\n" " Indices of elements are not changed, :class:`bmesh.types.BMElemSeq.index_update` " "can be used for that.\n" "\n" " :arg key: The key that sets the ordering of the elements.\n" " :type key: Callable[[" ":class:`bmesh.types.BMVert` | " ":class:`bmesh.types.BMEdge` | " ":class:`bmesh.types.BMFace`], int] | None\n" " :arg reverse: Reverse the order of the elements\n" " :type reverse: bool\n" "\n" " .. note::\n" "\n" " When the 'key' argument is not provided, the elements are reordered following their " "current index value.\n" " In particular this can be used by setting indices manually before calling this " "method.\n" "\n" " .. warning::\n" "\n" " Existing references to the N'th element, will continue to point the data at that " "index.\n") | |
| static int | bpy_bmelemseq_sort_cmp_by_keys_ascending (const void *index1_v, const void *index2_v, void *keys_v) |
| static int | bpy_bmelemseq_sort_cmp_by_keys_descending (const void *index1_v, const void *index2_v, void *keys_v) |
| static PyObject * | bpy_bmelemseq_sort (BPy_BMElemSeq *self, PyObject *args, PyObject *kw) |
| static PyTypeObject * | bpy_bm_itype_as_pytype (const char itype) |
| static Py_ssize_t | bpy_bmelemseq_length (BPy_BMElemSeq *self) |
| static PyObject * | bpy_bmelemseq_subscript_int (BPy_BMElemSeq *self, Py_ssize_t keynum) |
| static PyObject * | bpy_bmelemseq_subscript_slice (BPy_BMElemSeq *self, Py_ssize_t start, Py_ssize_t stop) |
| static PyObject * | bpy_bmelemseq_subscript (BPy_BMElemSeq *self, PyObject *key) |
| static int | bpy_bmelemseq_contains (BPy_BMElemSeq *self, PyObject *value) |
| static PyObject * | bpy_bmelem_subscript (BPy_BMElem *self, BPy_BMLayerItem *key) |
| static int | bpy_bmelem_ass_subscript (BPy_BMElem *self, BPy_BMLayerItem *key, PyObject *value) |
| static PyObject * | bpy_bmelemseq_iter (BPy_BMElemSeq *self) |
| static PyObject * | bpy_bmiter_next (BPy_BMIter *self) |
| static void | bpy_bmesh_dealloc (BPy_BMesh *self) |
| static void | bpy_bmvert_dealloc (BPy_BMElem *self) |
| static void | bpy_bmedge_dealloc (BPy_BMElem *self) |
| static void | bpy_bmface_dealloc (BPy_BMElem *self) |
| static void | bpy_bmloop_dealloc (BPy_BMElem *self) |
| static void | bpy_bmelemseq_dealloc (BPy_BMElemSeq *self) |
| static Py_hash_t | bpy_bm_elem_hash (PyObject *self) |
| static Py_hash_t | bpy_bm_hash (PyObject *self) |
| PyDoc_STRVAR (bpy_bmesh_doc, "The BMesh data structure\n") | |
| PyDoc_STRVAR (bpy_bmvert_doc, "The BMesh vertex type\n") | |
| PyDoc_STRVAR (bpy_bmedge_doc, "The BMesh edge connecting 2 verts\n") | |
| PyDoc_STRVAR (bpy_bmface_doc, "The BMesh face with 3 or more sides\n") | |
| PyDoc_STRVAR (bpy_bmloop_doc, "This is normally accessed from :class:`bmesh.types.BMFace.loops` where each face loop " "represents a corner of the face.\n") | |
| PyDoc_STRVAR (bpy_bmelemseq_doc, "General sequence type used for accessing any sequence of\n" ":class:`bmesh.types.BMVert`, " ":class:`bmesh.types.BMEdge`, " ":class:`bmesh.types.BMFace`, " ":class:`bmesh.types.BMLoop`.\n" "\n" "When accessed via " ":class:`bmesh.types.BMesh.verts`, " ":class:`bmesh.types.BMesh.edges`, " ":class:`bmesh.types.BMesh.faces`\n" "there are also functions to create/remove items.\n") | |
| PyDoc_STRVAR (bpy_bmiter_doc, "Internal BMesh type for looping over verts/faces/edges,\n" "used for iterating over :class:`bmesh.types.BMElemSeq` types.\n") | |
| static PyObject * | bpy_bmesh_repr (BPy_BMesh *self) |
| static PyObject * | bpy_bmvert_repr (BPy_BMVert *self) |
| static PyObject * | bpy_bmedge_repr (BPy_BMEdge *self) |
| static PyObject * | bpy_bmface_repr (BPy_BMFace *self) |
| static PyObject * | bpy_bmloop_repr (BPy_BMLoop *self) |
| void | BPy_BM_init_types () |
| PyDoc_STRVAR (BPy_BM_types_module_doc, "\n" ".. |UV_STICKY_SELECT_MODE_REF| replace:: " "(:class:`bpy.types.ToolSettings.uv_sticky_select_mode` which may be passed in directly).\n" "\n" ".. |UV_STICKY_SELECT_MODE_TYPE| replace:: " "Literal['SHARED_LOCATION', 'DISABLED', 'SHARED_VERTEX']\n" "\n" ".. |UV_SELECT_FLUSH_MODE_NEEDED| replace:: " "This function selection-mode independent, " "typically :class:`bmesh.types.BMesh.uv_select_flush_mode` should be called afterwards.\n" "\n" ".. |UV_SELECT_SYNC_TO_MESH_NEEDED| replace:: " "This function doesn't flush the selection to the mesh, " "typically :class:`bmesh.types.BMesh.uv_select_sync_to_mesh` should be called afterwards.\n") | |
| PyObject * | BPyInit_bmesh_types () |
| PyObject * | BPy_BMesh_CreatePyObject (BMesh *bm, int flag) |
| PyObject * | BPy_BMVert_CreatePyObject (BMesh *bm, BMVert *v) |
| PyObject * | BPy_BMEdge_CreatePyObject (BMesh *bm, BMEdge *e) |
| PyObject * | BPy_BMFace_CreatePyObject (BMesh *bm, BMFace *f) |
| PyObject * | BPy_BMLoop_CreatePyObject (BMesh *bm, BMLoop *l) |
| PyObject * | BPy_BMElemSeq_CreatePyObject (BMesh *bm, BPy_BMElem *py_ele, const char itype) |
| PyObject * | BPy_BMVertSeq_CreatePyObject (BMesh *bm) |
| PyObject * | BPy_BMEdgeSeq_CreatePyObject (BMesh *bm) |
| PyObject * | BPy_BMFaceSeq_CreatePyObject (BMesh *bm) |
| PyObject * | BPy_BMLoopSeq_CreatePyObject (BMesh *bm) |
| PyObject * | BPy_BMIter_CreatePyObject (BMesh *bm) |
| PyObject * | BPy_BMElem_CreatePyObject (BMesh *bm, BMHeader *ele) |
| int | bpy_bm_generic_valid_check (BPy_BMGeneric *self) |
| int | bpy_bm_generic_valid_check_source (BMesh *bm_source, const char *error_prefix, void **args, uint args_tot) |
| int | bpy_bm_check_uv_select_sync_valid (BMesh *bm, const char *error_prefix) |
| int | bpy_bm_uv_layer_offset_or_error (BMesh *bm, const char *error_prefix) |
| int | bpy_bm_check_bm_match_or_error (BMesh *bm_a, BMesh *bm_b, const char *error_prefix) |
| void | bpy_bm_generic_invalidate (BPy_BMGeneric *self) |
| void * | BPy_BMElem_PySeq_As_Array_FAST (BMesh **r_bm, PyObject *seq_fast, Py_ssize_t min, Py_ssize_t max, Py_ssize_t *r_seq_num, const char htype, const bool do_unique_check, const bool do_bm_check, const char *error_prefix) |
| void * | BPy_BMElem_PySeq_As_Array (BMesh **r_bm, PyObject *seq, Py_ssize_t min, Py_ssize_t max, Py_ssize_t *r_seq_num, const char htype, const bool do_unique_check, const bool do_bm_check, const char *error_prefix) |
| BMVert ** | BPy_BMVert_PySeq_As_Array (BMesh **r_bm, PyObject *seq, Py_ssize_t min, Py_ssize_t max, Py_ssize_t *r_seq_num, bool do_unique_check, bool do_bm_check, const char *error_prefix) |
| BMEdge ** | BPy_BMEdge_PySeq_As_Array (BMesh **r_bm, PyObject *seq, Py_ssize_t min, Py_ssize_t max, Py_ssize_t *r_seq_num, bool do_unique_check, bool do_bm_check, const char *error_prefix) |
| BMFace ** | BPy_BMFace_PySeq_As_Array (BMesh **r_bm, PyObject *seq, Py_ssize_t min, Py_ssize_t max, Py_ssize_t *r_seq_num, bool do_unique_check, bool do_bm_check, const char *error_prefix) |
| BMLoop ** | BPy_BMLoop_PySeq_As_Array (BMesh **r_bm, PyObject *seq, Py_ssize_t min, Py_ssize_t max, Py_ssize_t *r_seq_num, bool do_unique_check, bool do_bm_check, const char *error_prefix) |
| PyObject * | BPy_BMElem_Array_As_Tuple (BMesh *bm, BMHeader **elem, Py_ssize_t elem_num) |
| PyObject * | BPy_BMVert_Array_As_Tuple (BMesh *bm, BMVert **elem, Py_ssize_t elem_num) |
| PyObject * | BPy_BMEdge_Array_As_Tuple (BMesh *bm, BMEdge **elem, Py_ssize_t elem_num) |
| PyObject * | BPy_BMFace_Array_As_Tuple (BMesh *bm, BMFace **elem, Py_ssize_t elem_num) |
| PyObject * | BPy_BMLoop_Array_As_Tuple (BMesh *bm, BMLoop *const *elem, Py_ssize_t elem_num) |
| int | BPy_BMElem_CheckHType (PyTypeObject *type, const char htype) |
| char * | BPy_BMElem_StringFromHType_ex (const char htype, char ret[32]) |
| char * | BPy_BMElem_StringFromHType (const char htype) |
UV Sync Selection | |
| PyDoc_STRVAR (bpy_bmesh_uv_select_flush_mode_doc, ".. method:: uv_select_flush_mode(*, flush_down=False)\n" "\n" " Flush selection based on the current mode current :class:`BMesh.select_mode`.\n" "\n" " :arg 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.\n" " :type flush_down: bool\n") | |
| static PyObject * | bpy_bmesh_uv_select_flush_mode (BPy_BMesh *self, PyObject *args, PyObject *kw) |
| PyDoc_STRVAR (bpy_bmesh_uv_select_flush_doc, ".. method:: uv_select_flush(select)\n" "\n" " Flush selection from UV vertices to edges & faces independent of the selection mode.\n" "\n" " :arg select: Flush selection or de-selected elements.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " - |UV_SELECT_SYNC_TO_MESH_NEEDED|\n") | |
| static PyObject * | bpy_bmesh_uv_select_flush (BPy_BMesh *self, PyObject *value) |
| PyDoc_STRVAR (bpy_bmesh_uv_select_flush_shared_doc, ".. method:: uv_select_flush_shared(select)\n" "\n" " Flush selection from UV vertices to contiguous UV's independent of the selection mode.\n" "\n" " :arg select: Flush selection or de-selected elements.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " - |UV_SELECT_SYNC_TO_MESH_NEEDED|\n") | |
| static PyObject * | bpy_bmesh_uv_select_flush_shared (BPy_BMesh *self, PyObject *value) |
| PyDoc_STRVAR (bpy_bmesh_uv_select_sync_from_mesh_doc, ".. method:: uv_select_sync_from_mesh(*, " "sticky_select_mode='SHARED_LOCATION')\n" "\n" " Sync selection from mesh to UVs.\n" "\n" " :arg 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.\n" " :type sticky_select_mode: |UV_STICKY_SELECT_MODE_TYPE|\n" "\n" " .. note::\n" "\n" " - |UV_SELECT_SYNC_TO_MESH_NEEDED|\n") | |
| static PyObject * | bpy_bmesh_uv_select_sync_from_mesh (BPy_BMesh *self, PyObject *args, PyObject *kw) |
| PyDoc_STRVAR (bpy_bmesh_uv_select_sync_to_mesh_doc, ".. method:: uv_select_sync_to_mesh()\n" "\n" " Sync selection from UVs to the mesh.\n") | |
| static PyObject * | bpy_bmesh_uv_select_sync_to_mesh (BPy_BMesh *self) |
| PyDoc_STRVAR (bpy_bmesh_uv_select_foreach_set_doc, ".. method:: uv_select_foreach_set(select, /, *, " "loop_verts=(), loop_edges=(), faces=(), sticky_select_mode='SHARED_LOCATION')\n" "\n" " Set the UV selection state for loop-vertices, loop-edges & faces.\n" "\n" " This is a close equivalent to selecting in the UV editor.\n" "\n" " :arg select: The selection state to set.\n" " :type select: bool\n" " :arg loop_verts: Loop verts to operate on.\n" " :type loop_verts: Iterable[:class:`bmesh.types.BMLoop`]\n" " :arg loop_edges: Loop edges to operate on.\n" " :type loop_edges: Iterable[:class:`bmesh.types.BMLoop`]\n" " :arg faces: Faces to operate on.\n" " :type faces: Iterable[:class:`bmesh.types.BMFace`]\n" " :arg sticky_select_mode: See |UV_STICKY_SELECT_MODE_REF|.\n" " :type sticky_select_mode: |UV_STICKY_SELECT_MODE_TYPE|\n" "\n" " .. note::\n" "\n" " - |UV_SELECT_FLUSH_MODE_NEEDED|\n" " - |UV_SELECT_SYNC_TO_MESH_NEEDED|\n") | |
| static PyObject * | bpy_bmesh_uv_select_foreach_set (BPy_BMesh *self, PyObject *args, PyObject *kw) |
| PyDoc_STRVAR (bpy_bmesh_uv_select_foreach_set_from_mesh_doc, ".. method:: uv_select_foreach_set_from_mesh(select, /, *, " "verts=(), edges=(), faces=(), sticky_select_mode='SHARED_LOCATION')\n" "\n" " Select or de-select mesh elements, updating the UV selection.\n" "\n" " An equivalent to selecting from the 3D viewport " "for selection operations that support maintaining a synchronized UV selection.\n" "\n" " :arg select: The selection state to set.\n" " :type select: bool\n" " :arg verts: Verts to operate on.\n" " :type verts: Iterable[:class:`bmesh.types.BMVert`]\n" " :arg edges: Edges to operate on.\n" " :type edges: Iterable[:class:`bmesh.types.BMEdge`]\n" " :arg faces: Faces to operate on.\n" " :type faces: Iterable[:class:`bmesh.types.BMFace`]\n" " :arg sticky_select_mode: See |UV_STICKY_SELECT_MODE_REF|.\n" " :type sticky_select_mode: |UV_STICKY_SELECT_MODE_TYPE|\n") | |
| static PyObject * | bpy_bmesh_uv_select_foreach_set_from_mesh (BPy_BMesh *self, PyObject *args, PyObject *kw) |
| #define BPY_BM_HFLAG_ALL_STR "'SELECT', 'HIDE', 'SEAM', 'SMOOTH', 'TAG'" |
This may be used with a Literal[...] typing expression.
Definition at line 79 of file bmesh_py_types.cc.
Referenced by PyDoc_STRVAR().
| #define BPY_BM_HTYPE_NOLOOP "'VERT', 'EDGE', 'FACE'" |
This may be used with a Literal[...] typing expression.
Definition at line 76 of file bmesh_py_types.cc.
Referenced by PyDoc_STRVAR().
|
static |
Definition at line 5490 of file bmesh_py_types.cc.
References BPY_BMFLAG_IS_WRAPPED, and self.
Referenced by bpy_bmesh_dealloc(), and bpy_bmesh_free().
|
nodiscard |
Definition at line 5201 of file bmesh_py_types.cc.
Referenced by bpy_bmesh_uv_select_foreach_set(), and bpy_bmesh_uv_select_foreach_set_from_mesh().
|
nodiscard |
Definition at line 5182 of file bmesh_py_types.cc.
Referenced by bpy_bm_utils_uv_select_check(), bpy_bmesh_uv_select_flush(), bpy_bmesh_uv_select_flush_shared(), bpy_bmesh_uv_select_foreach_set(), bpy_bmesh_uv_select_foreach_set_from_mesh(), and bpy_bmesh_uv_select_sync_to_mesh().
|
static |
Definition at line 2266 of file bmesh_py_types.cc.
References BPy_BMElem::bm, BM_EDGE, BM_elem_attrs_copy(), BM_FACE, BM_LOOP, BM_VERT, BPY_BM_CHECK_OBJ, CD_MASK_BM_ELEM_PYPTR, CustomData_bmesh_copy_map_calc(), BMesh::edata, BPy_BMElem::ele, BMesh::ldata, BMesh::pdata, self, and BMesh::vdata.
|
static |
Definition at line 4544 of file bmesh_py_types.cc.
References Py_HashPointer, and self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 145 of file bmesh_py_types.cc.
References BM_elem_flag_test, BPY_BM_CHECK_OBJ, flag, POINTER_AS_INT, and self.
|
static |
Definition at line 154 of file bmesh_py_types.cc.
References BM_elem_flag_set, BM_ELEM_SELECT, BM_elem_select_set(), BPY_BM_CHECK_INT, flag, POINTER_AS_INT, PyC_Long_AsBool(), and self.
|
static |
Definition at line 2245 of file bmesh_py_types.cc.
References BM_elem_hide_set, BPY_BM_CHECK_OBJ, PyC_Long_AsBool(), and self.
|
static |
Definition at line 188 of file bmesh_py_types.cc.
References BM_elem_index_get, BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 195 of file bmesh_py_types.cc.
References BM_elem_index_set, BPY_BM_CHECK_INT, and self.
|
static |
Definition at line 2219 of file bmesh_py_types.cc.
References BM_elem_select_set(), BPY_BM_CHECK_OBJ, PyC_Long_AsBool(), and self.
| void bpy_bm_generic_invalidate | ( | BPy_BMGeneric * | self | ) |
Definition at line 5210 of file bmesh_py_types.cc.
References self.
Referenced by bpy_bmedgeseq_remove(), bpy_bmesh_free(), bpy_bmfaceseq_remove(), and bpy_bmvertseq_remove().
|
nodiscard |
Definition at line 5124 of file bmesh_py_types.cc.
References BM_mesh_is_valid(), LIKELY, and self.
Referenced by bpy_bm_generic_valid_check_source().
| int bpy_bm_generic_valid_check_source | ( | BMesh * | bm_source, |
| const char * | error_prefix, | ||
| void ** | args, | ||
| uint | args_tot ) |
Definition at line 5149 of file bmesh_py_types.cc.
References BLI_assert, BPy_BMGeneric::bm, bpy_bm_generic_valid_check(), BPy_BMElem_Check, BPy_BMesh_Check, ret, and UNLIKELY.
|
static |
Definition at line 4549 of file bmesh_py_types.cc.
References bm, Py_HashPointer, and self.
Referenced by BPy_BM_init_types().
| void BPy_BM_init_types | ( | ) |
Definition at line 4692 of file bmesh_py_types.cc.
References bpy_bm_elem_as_mapping, bpy_bm_elem_hash(), bpy_bm_hash(), bpy_bmedge_dealloc(), bpy_bmedge_getseters, bpy_bmedge_methods, bpy_bmedge_repr(), BPy_BMEdge_Type, bpy_bmedgeseq_getseters, bpy_bmedgeseq_methods, BPy_BMEdgeSeq_Type, bpy_bmelemseq_as_mapping, bpy_bmelemseq_as_sequence, bpy_bmelemseq_dealloc(), bpy_bmelemseq_iter(), bpy_bmelemseq_methods, BPy_BMElemSeq_Type, bpy_bmesh_dealloc(), bpy_bmesh_getseters, bpy_bmesh_methods, bpy_bmesh_repr(), BPy_BMesh_Type, bpy_bmface_dealloc(), bpy_bmface_getseters, bpy_bmface_methods, bpy_bmface_repr(), BPy_BMFace_Type, bpy_bmfaceseq_getseters, bpy_bmfaceseq_methods, BPy_BMFaceSeq_Type, bpy_bmiter_next(), BPy_BMIter_Type, bpy_bmloop_dealloc(), bpy_bmloop_getseters, bpy_bmloop_methods, bpy_bmloop_repr(), BPy_BMLoop_Type, bpy_bmloopseq_getseters, bpy_bmloopseq_methods, BPy_BMLoopSeq_Type, bpy_bmvert_dealloc(), bpy_bmvert_getseters, bpy_bmvert_methods, bpy_bmvert_repr(), BPy_BMVert_Type, bpy_bmvertseq_getseters, bpy_bmvertseq_methods, and BPy_BMVertSeq_Type.
Referenced by BPyInit_bmesh().
|
static |
Definition at line 352 of file bmesh_py_types.cc.
References BPY_BM_IS_VALID, and self.
|
static |
Definition at line 4132 of file bmesh_py_types.cc.
References BM_EDGES_OF_FACE, BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_FACES_OF_EDGE, BM_FACES_OF_MESH, BM_FACES_OF_VERT, BM_LOOPS_OF_EDGE, BM_LOOPS_OF_FACE, BM_LOOPS_OF_LOOP, BM_LOOPS_OF_VERT, BM_VERTS_OF_EDGE, BM_VERTS_OF_FACE, BM_VERTS_OF_MESH, BPy_BMEdge_Type, BPy_BMFace_Type, BPy_BMLoop_Type, BPy_BMVert_Type, and itype.
Referenced by bpy_bmelemseq_contains().
|
nodiscard |
Definition at line 5192 of file bmesh_py_types.cc.
References bm, CD_PROP_FLOAT2, and CustomData_get_offset().
Referenced by bpy_bmesh_uv_select_foreach_set(), and bpy_bmesh_uv_select_foreach_set_from_mesh().
Definition at line 5417 of file bmesh_py_types.cc.
References bm, BPy_BMEdge_CreatePyObject(), i, and ret.
|
static |
Definition at line 2498 of file bmesh_py_types.cc.
References angle(), BM_edge_calc_face_angle_ex(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 2538 of file bmesh_py_types.cc.
References angle(), BM_edge_calc_face_angle_signed_ex(), BPY_BM_CHECK_OBJ, FLT_MAX, and self.
|
static |
Definition at line 2482 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, len_v3v3(), and self.
|
static |
Definition at line 2580 of file bmesh_py_types.cc.
References BM_edge_calc_face_tangent(), BPY_BM_CHECK_OBJ, BPy_BMLoop_Type, BPy_BMLoop::l, self, and Vector_CreatePyObject().
Definition at line 4971 of file bmesh_py_types.cc.
References BLI_assert, bm, BM_data_layer_add(), BPy_BMEdge_Type, CD_BM_ELEM_PYPTR, CustomData_bmesh_get(), e, ptr, self, and UNLIKELY.
Referenced by bpy_bm_utils_edge_rotate(), bpy_bm_utils_edge_split(), bpy_bm_utils_vert_collapse_edge(), bpy_bm_utils_vert_collapse_faces(), BPy_BMEdge_Array_As_Tuple(), bpy_bmedgeseq_get__method(), bpy_bmedgeseq_new(), BPy_BMElem_CreatePyObject(), and bpy_bmloop_edge_get().
|
static |
Definition at line 4497 of file bmesh_py_types.cc.
References bm, CD_BM_ELEM_PYPTR, CustomData_bmesh_get(), ptr, and self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 595 of file bmesh_py_types.cc.
References BM_edge_is_boundary(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 559 of file bmesh_py_types.cc.
References BM_edge_is_contiguous(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 571 of file bmesh_py_types.cc.
References BM_edge_is_convex(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 546 of file bmesh_py_types.cc.
References BM_edge_is_manifold(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 583 of file bmesh_py_types.cc.
References BM_edge_is_wire(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 2643 of file bmesh_py_types.cc.
References BM_edge_normals_update(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 2607 of file bmesh_py_types.cc.
References BM_edge_other_vert(), BPY_BM_CHECK_OBJ, BPY_BM_CHECK_SOURCE_OBJ, BPy_BMVert_Check, BPy_BMVert_CreatePyObject(), self, and BPy_BMVert::v.
|
nodiscard |
Definition at line 5362 of file bmesh_py_types.cc.
References BM_EDGE, BPy_BMElem_PySeq_As_Array(), max, and min.
Referenced by bpy_bm_utils_face_split_edgenet(), bpy_bm_utils_vert_separate(), and bpy_bmesh_uv_select_foreach_set_from_mesh().
|
static |
Definition at line 4626 of file bmesh_py_types.cc.
References bm, BM_elem_index_get, e, and self.
Referenced by BPy_BM_init_types().
|
nodiscard |
Definition at line 5071 of file bmesh_py_types.cc.
References bm, BM_EDGES_OF_MESH, BPy_BMEdgeSeq_Type, and self.
Referenced by bpy_bmedgeseq_get().
|
static |
Definition at line 240 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMEdgeSeq_CreatePyObject(), and self.
|
static |
Definition at line 3423 of file bmesh_py_types.cc.
References bm, BM_edge_exists(), BPY_BM_CHECK_OBJ, BPy_BMEdge_CreatePyObject(), BPy_BMVert_PySeq_As_Array(), e, ret, and self.
|
static |
Definition at line 3191 of file bmesh_py_types.cc.
References bm, BPy_BMEdge::bm, BM_CREATE_NOP, BM_edge_create(), BM_edge_exists(), BM_elem_attrs_copy(), BPY_BM_CHECK_OBJ, BPy_BMEdge_CreatePyObject(), BPy_BMEdge_Type, BPy_BMVert_PySeq_As_Array(), CustomData_bmesh_copy_map_calc(), BPy_BMEdge::e, e, BMesh::edata, ret, and self.
|
static |
Definition at line 3365 of file bmesh_py_types.cc.
References bm, BM_edge_kill(), BPY_BM_CHECK_OBJ, BPY_BM_CHECK_SOURCE_OBJ, bpy_bm_generic_invalidate(), BPy_BMEdge_Check, BPy_BMEdge::e, and self.
|
nodiscard |
Definition at line 5399 of file bmesh_py_types.cc.
References bm, BPy_BMElem_CreatePyObject(), i, and ret.
|
static |
Definition at line 4391 of file bmesh_py_types.cc.
References BPY_BM_CHECK_INT, BPy_BMLayerItem_SetItem(), and self.
|
nodiscard |
Definition at line 5448 of file bmesh_py_types.cc.
References BM_EDGE, BM_FACE, BM_LOOP, BM_VERT, BPy_BMEdge_Type, BPy_BMFace_Type, BPy_BMLoop_Type, and BPy_BMVert_Type.
Referenced by BPy_BMElem_PySeq_As_Array_FAST().
Just checks type and creates vert/edge/face/loop.
Definition at line 5106 of file bmesh_py_types.cc.
References BLI_assert_unreachable, bm, BM_EDGE, BM_FACE, BM_LOOP, BM_VERT, BPy_BMEdge_CreatePyObject(), BPy_BMFace_CreatePyObject(), BPy_BMLoop_CreatePyObject(), BPy_BMVert_CreatePyObject(), and BMHeader::htype.
Referenced by bpy_bmeditseliter_next(), bpy_bmeditselseq_active_get(), bpy_bmeditselseq_subscript_int(), bpy_bmeditselseq_subscript_slice(), BPy_BMElem_Array_As_Tuple(), bpy_bmelemseq_sort(), bpy_bmelemseq_subscript_int(), bpy_bmelemseq_subscript_slice(), bpy_bmfaceseq_active_get(), bpy_bmiter_next(), and bpy_slot_to_py().
|
nodiscard |
Definition at line 5326 of file bmesh_py_types.cc.
References BPy_BMElem_PySeq_As_Array_FAST(), max, min, Py_DECREF(), and ret.
Referenced by BPy_BMEdge_PySeq_As_Array(), BPy_BMEditSel_Assign(), BPy_BMFace_PySeq_As_Array(), BPy_BMLoop_PySeq_As_Array(), BPy_BMVert_PySeq_As_Array(), and bpy_slot_from_py().
|
nodiscard |
Generic python seq as BMVert/Edge/Face array, return value must be freed with PyMem_FREE(...);
The 'bm_r' value is assigned when empty, and used when set.
Definition at line 5215 of file bmesh_py_types.cc.
References bm, BPy_BMElem::bm, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_INTERNAL_TAG, BPY_BM_IS_VALID, BPy_BMElem_CheckHType(), BPy_BMElem_StringFromHType(), BPy_BMElem::ele, i, max, min, and UNLIKELY.
Referenced by BPy_BMElem_PySeq_As_Array().
|
nodiscard |
Definition at line 5479 of file bmesh_py_types.cc.
References BPy_BMElem_StringFromHType_ex(), and ret.
Referenced by BPy_BMElem_PySeq_As_Array_FAST(), and bpy_slot_from_py_elem_check().
|
nodiscard |
Use for error strings only, not thread safe,
Definition at line 5456 of file bmesh_py_types.cc.
References BLI_string_join_array_by_sep_char(), BM_EDGE, BM_FACE, BM_LOOP, BM_VERT, BPy_BMEdge_Type, BPy_BMFace_Type, BPy_BMLoop_Type, BPy_BMVert_Type, i, and ret.
Referenced by BPy_BMElem_StringFromHType(), bpy_bmlayeritem_ptr_get(), and bpy_slot_from_py_elemseq_check().
|
static |
Definition at line 4384 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMLayerItem_GetItem(), and self.
|
static |
Definition at line 4361 of file bmesh_py_types.cc.
References BPy_BMElem::bm, BM_ITER_BPY_BM_SEQ, BPY_BM_CHECK_INT, bpy_bm_itype_as_pytype(), BPy_BMElem::ele, and self.
|
nodiscard |
Definition at line 5052 of file bmesh_py_types.cc.
References bm, BPy_BMElemSeq_Type, itype, and self.
Referenced by bpy_bmelemseq_elem_get().
|
static |
Definition at line 4536 of file bmesh_py_types.cc.
References self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 340 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMElemSeq_CreatePyObject(), itype, POINTER_AS_INT, and self.
|
static |
Definition at line 3577 of file bmesh_py_types.cc.
References bm_iter_itype_htype_map, BM_mesh_elem_table_ensure(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 3530 of file bmesh_py_types.cc.
References bm, BM_EDGE, BM_EDGES_OF_MESH, BM_elem_index_set, BM_FACE, BM_FACES_OF_MESH, BM_ITER_BPY_BM_SEQ, bm_iter_itype_htype_map, BM_mesh_elem_index_ensure(), BM_VERT, BM_VERTS_OF_MESH, BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 4428 of file bmesh_py_types.cc.
References BM_iter_init, BPY_BM_CHECK_OBJ, BPy_BMIter_CreatePyObject(), BPy_BMIter::iter, and self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 788 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMLayerAccess_CreatePyObject(), POINTER_AS_INT, and self.
|
static |
Definition at line 4162 of file bmesh_py_types.cc.
References BM_EDGES_OF_FACE, BM_EDGES_OF_MESH, BM_FACES_OF_MESH, BM_ITER_BPY_BM_SEQ, BM_LOOPS_OF_FACE, BM_VERTS_OF_EDGE, BM_VERTS_OF_FACE, BM_VERTS_OF_MESH, BPY_BM_CHECK_INT, and self.
Referenced by bpy_bmelemseq_subscript(), and bpy_bmelemseq_subscript_int().
|
static |
Definition at line 3652 of file bmesh_py_types.cc.
References BLI_qsort_r(), bm, BM_EDGES_OF_MESH, BM_FACES_OF_MESH, BM_ITER_BPY_BM_SEQ, bm_iter_itype_htype_map, BM_mesh_elem_count(), BM_mesh_remap(), BM_VERTS_OF_MESH, BPY_BM_CHECK_OBJ, BPy_BMElem_CreatePyObject(), bpy_bmelemseq_sort_cmp_by_keys_ascending(), bpy_bmelemseq_sort_cmp_by_keys_descending(), BMElem::head, i, BMHeader::index, Py_DECREF(), PyC_ParseBool(), range_vn_i(), and self.
|
static |
Definition at line 3627 of file bmesh_py_types.cc.
Referenced by bpy_bmelemseq_sort(), and bpy_bmelemseq_sort_cmp_by_keys_descending().
|
static |
Definition at line 3645 of file bmesh_py_types.cc.
References bpy_bmelemseq_sort_cmp_by_keys_ascending().
Referenced by bpy_bmelemseq_sort().
|
static |
Definition at line 4302 of file bmesh_py_types.cc.
References bpy_bmelemseq_length(), bpy_bmelemseq_subscript_int(), bpy_bmelemseq_subscript_slice(), CLAMP_MIN, i, len, self, and step.
|
static |
Definition at line 4204 of file bmesh_py_types.cc.
References bm, BM_EDGES_OF_MESH, BM_FACES_OF_MESH, BM_iter_at_index(), bm_iter_itype_htype_map, BM_VERTS_OF_MESH, BPY_BM_CHECK_OBJ, BPy_BMElem_CreatePyObject(), bpy_bmelemseq_length(), and self.
Referenced by bpy_bmelemseq_subscript().
|
static |
Definition at line 4258 of file bmesh_py_types.cc.
References BLI_assert, BM_iter_init, BPY_BM_CHECK_OBJ, BPy_BMElem_CreatePyObject(), count, self, and UNLIKELY.
Referenced by bpy_bmelemseq_subscript().
|
static |
Definition at line 2176 of file bmesh_py_types.cc.
References bm, BM_mesh_calc_tessellation(), BPY_BM_CHECK_OBJ, BPy_BMLoop_Array_As_Tuple(), data, i, poly_to_tri_count(), ret, and self.
|
static |
Definition at line 2149 of file bmesh_py_types.cc.
References BM_mesh_calc_volume(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 1235 of file bmesh_py_types.cc.
References bm, BM_mesh_clear(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 1214 of file bmesh_py_types.cc.
References bm, BM_mesh_copy(), BPY_BM_CHECK_OBJ, BPy_BMesh_CreatePyObject(), BPY_BMFLAG_NOP, and self.
|
nodiscard |
Definition at line 4917 of file bmesh_py_types.cc.
References bm, BM_data_layer_add(), BPy_BMesh_Type, CD_BM_ELEM_PYPTR, flag, and self.
Referenced by bpy_bm_from_edit_mesh(), bpy_bm_new(), and bpy_bmesh_copy().
|
static |
Definition at line 4453 of file bmesh_py_types.cc.
References bm, BM_data_layer_free(), bm_dealloc_editmode_warn(), BM_mesh_free(), BPY_BMFLAG_IS_WRAPPED, CD_BM_ELEM_PYPTR, CustomData_has_layer(), and self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 1258 of file bmesh_py_types.cc.
References bm, bm_dealloc_editmode_warn(), BM_mesh_free(), bpy_bm_generic_invalidate(), BPY_BMFLAG_IS_WRAPPED, and self.
|
static |
Definition at line 1461 of file bmesh_py_types.cc.
References bm, BM_mesh_bm_from_me(), BPY_BM_CHECK_OBJ, params, PyC_ParseBool(), PyC_RNA_AsPointer(), and self.
|
static |
Definition at line 1349 of file bmesh_py_types.cc.
References BKE_id_free(), BKE_mesh_new_from_object(), BKE_object_get_evaluated_mesh(), bm, BM_mesh_bm_from_me(), BPY_BM_CHECK_OBJ, CD_MASK_BMESH, DAG_EVAL_RENDER, DEG_get_evaluated(), DEG_get_evaluated_scene(), DEG_get_mode(), depsgraph, Object::id, blender::bke::mesh_get_eval_deform(), ID::name, OB_MESH, params, PyC_ParseBool(), PyC_RNA_AsPointer(), self, and Object::type.
|
static |
Definition at line 363 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPY_BMFLAG_IS_WRAPPED, and self.
|
static |
Definition at line 2064 of file bmesh_py_types.cc.
References BM_mesh_normals_update(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 4598 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 1555 of file bmesh_py_types.cc.
References BM_mesh_select_flush_from_verts(), BPY_BM_CHECK_OBJ, PyC_Long_AsBool(), and self.
|
static |
Definition at line 1514 of file bmesh_py_types.cc.
References BM_mesh_select_mode_flush_ex(), BMSelectFlushFlag_Default, BPY_BM_CHECK_OBJ, Down, flag, PyC_ParseBool(), and self.
|
static |
Definition at line 409 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMEditSel_CreatePyObject(), and self.
|
static |
Definition at line 416 of file bmesh_py_types.cc.
References BPY_BM_CHECK_INT, BPy_BMEditSel_Assign(), and self.
|
static |
Definition at line 376 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, bpy_bm_scene_vert_edge_face_flags, PyC_FlagSet_FromBitfield(), and self.
|
static |
Definition at line 383 of file bmesh_py_types.cc.
References BPY_BM_CHECK_INT, bpy_bm_scene_vert_edge_face_flags, flag, PyC_FlagSet_ToBitfield(), and self.
|
static |
Definition at line 1288 of file bmesh_py_types.cc.
References BKE_id_is_in_global_main(), BLI_assert, bm, BM_mesh_bm_to_me(), BPY_BM_CHECK_OBJ, DEG_id_tag_update(), G_MAIN, Mesh::id, ID_RECALC_GEOMETRY_ALL_MODES, ID_TAG_NO_MAIN, ID::name, params, PyC_RNA_AsPointer(), Mesh::runtime, self, and ID::tag.
|
static |
Definition at line 2085 of file bmesh_py_types.cc.
References BaseMath_ReadCallback, BM_elem_flag_test, BM_ITER_MESH, BM_VERTS_OF_MESH, BPY_BM_CHECK_OBJ, bpy_bm_hflag_all_flags, BMVert::co, MatrixObject::col_num, filter, matrix_Type, mul_m4_v3(), PyC_FlagSet_ToBitfield(), MatrixObject::row_num, and self.
|
static |
Definition at line 1621 of file bmesh_py_types.cc.
References bm, BM_mesh_uvselect_flush_from_verts(), BPY_BM_CHECK_OBJ, bpy_bm_check_uv_select_sync_valid(), PyC_Long_AsBool(), and self.
|
static |
Definition at line 1582 of file bmesh_py_types.cc.
References bm, BM_mesh_uvselect_mode_flush_ex(), BPY_BM_CHECK_OBJ, PyC_ParseBool(), and self.
|
static |
Definition at line 1654 of file bmesh_py_types.cc.
References bm, BM_mesh_uvselect_flush_shared_only_deselect(), BM_mesh_uvselect_flush_shared_only_select(), BPY_BM_CHECK_OBJ, bpy_bm_check_uv_select_sync_valid(), PyC_Long_AsBool(), and self.
|
static |
Definition at line 1787 of file bmesh_py_types.cc.
References bm, BM_mesh_uvselect_set_elem_shared(), bpy_bm_check_bm_match_or_error(), BPY_BM_CHECK_OBJ, bpy_bm_check_uv_select_sync_valid(), bpy_bm_uv_layer_offset_or_error(), bpy_bm_uv_select_sticky_items, BPy_BMFace_PySeq_As_Array(), BPy_BMLoop_PySeq_As_Array(), PyC_ParseBool(), PyC_ParseStringEnum(), self, shared, UV_STICKY_LOCATION, and PyC_StringEnum::value_found.
|
static |
Definition at line 1934 of file bmesh_py_types.cc.
References bm, BM_mesh_uvselect_set_elem_from_mesh(), bpy_bm_check_bm_match_or_error(), BPY_BM_CHECK_OBJ, bpy_bm_check_uv_select_sync_valid(), bpy_bm_uv_layer_offset_or_error(), bpy_bm_uv_select_sticky_items, BPy_BMEdge_PySeq_As_Array(), BPy_BMFace_PySeq_As_Array(), BPy_BMVert_PySeq_As_Array(), PyC_ParseBool(), PyC_ParseStringEnum(), self, shared, UV_STICKY_LOCATION, and PyC_StringEnum::value_found.
|
static |
Definition at line 1695 of file bmesh_py_types.cc.
References bm, BM_mesh_uvselect_sync_from_mesh_sticky_disabled(), BM_mesh_uvselect_sync_from_mesh_sticky_location(), BM_mesh_uvselect_sync_from_mesh_sticky_vert(), BPY_BM_CHECK_OBJ, bpy_bm_uv_select_sticky_items, CD_PROP_FLOAT2, CustomData_get_offset(), PyC_ParseStringEnum(), self, UV_STICKY_DISABLE, UV_STICKY_LOCATION, UV_STICKY_VERT, and PyC_StringEnum::value_found.
|
static |
Definition at line 1748 of file bmesh_py_types.cc.
References bm, BM_mesh_uvselect_sync_to_mesh(), BPY_BM_CHECK_OBJ, bpy_bm_check_uv_select_sync_valid(), and self.
|
static |
Definition at line 432 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 439 of file bmesh_py_types.cc.
References BPY_BM_CHECK_INT, PyC_Long_AsBool(), and self.
Definition at line 5427 of file bmesh_py_types.cc.
References bm, BPy_BMFace_CreatePyObject(), i, and ret.
Referenced by bpy_bm_utils_face_split_edgenet().
|
static |
Definition at line 2776 of file bmesh_py_types.cc.
References BM_face_calc_area(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 2918 of file bmesh_py_types.cc.
References BM_face_calc_center_bounds(), BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject().
|
static |
Definition at line 2882 of file bmesh_py_types.cc.
References BM_face_calc_center_median(), BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject().
|
static |
Definition at line 2900 of file bmesh_py_types.cc.
References BM_face_calc_center_median_weighted(), BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject().
|
static |
Definition at line 2791 of file bmesh_py_types.cc.
References BM_face_calc_perimeter(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 2806 of file bmesh_py_types.cc.
References BM_face_calc_tangent_from_edge(), BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject().
|
static |
Definition at line 2846 of file bmesh_py_types.cc.
References BM_face_calc_tangent_from_edge_diagonal(), BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject().
|
static |
Definition at line 2828 of file bmesh_py_types.cc.
References BM_face_calc_tangent_from_edge_pair(), BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject().
|
static |
Definition at line 2864 of file bmesh_py_types.cc.
References BM_face_calc_tangent_from_vert_diagonal(), BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject().
|
static |
Definition at line 2706 of file bmesh_py_types.cc.
References bm, BM_face_copy(), BPY_BM_CHECK_OBJ, BPy_BMFace_CreatePyObject(), PyC_ParseBool(), and self.
|
static |
Definition at line 2666 of file bmesh_py_types.cc.
References bm, BM_face_interp_from_face(), BPY_BM_CHECK_OBJ, BPY_BM_CHECK_SOURCE_OBJ, BPy_BMFace_Type, BPy_BMFace::f, PyC_ParseBool(), and self.
Definition at line 4998 of file bmesh_py_types.cc.
References BLI_assert, bm, BM_data_layer_add(), BPy_BMFace_Type, CD_BM_ELEM_PYPTR, CustomData_bmesh_get(), BMHeader::data, BMFace::head, ptr, self, and UNLIKELY.
Referenced by bpy_bm_utils_face_join(), bpy_bm_utils_face_split(), BPy_BMElem_CreatePyObject(), BPy_BMFace_Array_As_Tuple(), bpy_bmface_copy(), bpy_bmfaceseq_get__method(), bpy_bmfaceseq_new(), and bpy_bmloop_face_get().
|
static |
Definition at line 4510 of file bmesh_py_types.cc.
References bm, CD_BM_ELEM_PYPTR, CustomData_bmesh_get(), ptr, and self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 633 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 639 of file bmesh_py_types.cc.
References BPY_BM_CHECK_INT, MAXMAT, and self.
|
static |
Definition at line 2949 of file bmesh_py_types.cc.
References BM_face_normal_flip(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 610 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject_wrap().
|
static |
Definition at line 616 of file bmesh_py_types.cc.
References BPY_BM_CHECK_INT, mathutils_array_parse(), and self.
|
static |
Definition at line 2934 of file bmesh_py_types.cc.
References BM_face_normal_update(), BPY_BM_CHECK_OBJ, and self.
|
nodiscard |
Definition at line 5374 of file bmesh_py_types.cc.
References BM_FACE, BPy_BMElem_PySeq_As_Array(), max, and min.
Referenced by bpy_bm_utils_face_join(), bpy_bmesh_uv_select_foreach_set(), and bpy_bmesh_uv_select_foreach_set_from_mesh().
|
static |
Definition at line 4644 of file bmesh_py_types.cc.
References bm, BM_elem_index_get, BMFace::len, and self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 2755 of file bmesh_py_types.cc.
References bm, BM_face_uvselect_set(), BPY_BM_CHECK_OBJ, PyC_Long_AsBool(), and self.
|
static |
Definition at line 804 of file bmesh_py_types.cc.
References bm, BPY_BM_CHECK_OBJ, BPy_BMElem_CreatePyObject(), and self.
|
static |
Definition at line 816 of file bmesh_py_types.cc.
References bm, BPY_BM_CHECK_SOURCE_INT, BPy_BMFace_Check, and self.
|
nodiscard |
Definition at line 5080 of file bmesh_py_types.cc.
References bm, BM_FACES_OF_MESH, BPy_BMFaceSeq_Type, and self.
Referenced by bpy_bmfaceseq_get().
|
static |
Definition at line 252 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMFaceSeq_CreatePyObject(), and self.
|
static |
Definition at line 3471 of file bmesh_py_types.cc.
References bm, BM_face_exists(), BPY_BM_CHECK_OBJ, BPy_BMFace_CreatePyObject(), BPy_BMVert_PySeq_As_Array(), ret, and self.
|
static |
Definition at line 3266 of file bmesh_py_types.cc.
References bm, BM_CREATE_NOP, BM_face_create_verts(), BM_face_exists(), BPY_BM_CHECK_OBJ, BPy_BMFace_CreatePyObject(), BPy_BMFace_Type, BPy_BMVert_PySeq_As_Array(), BPy_BMFace::f, ret, self, and UNLIKELY.
|
static |
Definition at line 3392 of file bmesh_py_types.cc.
References bm, BM_face_kill(), BPY_BM_CHECK_OBJ, BPY_BM_CHECK_SOURCE_OBJ, bpy_bm_generic_invalidate(), BPy_BMFace_Check, BPy_BMFace::f, and self.
|
nodiscard |
Definition at line 5098 of file bmesh_py_types.cc.
References bm, BPy_BMIter_Type, and self.
Referenced by bpy_bmelemseq_iter().
|
static |
Definition at line 4439 of file bmesh_py_types.cc.
References BPy_BMElem_CreatePyObject(), and self.
Referenced by BPy_BM_init_types().
|
nodiscard |
Definition at line 5437 of file bmesh_py_types.cc.
References bm, BPy_BMLoop_CreatePyObject(), i, and ret.
Referenced by bpy_bmesh_calc_loop_triangles().
|
static |
Definition at line 3074 of file bmesh_py_types.cc.
References BM_loop_calc_face_angle(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 3090 of file bmesh_py_types.cc.
References BM_loop_calc_face_normal(), BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject().
|
static |
Definition at line 3108 of file bmesh_py_types.cc.
References BM_loop_calc_face_tangent(), BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject().
|
static |
Definition at line 2975 of file bmesh_py_types.cc.
References bm, BM_loop_interp_from_face(), BPY_BM_CHECK_OBJ, BPY_BM_CHECK_SOURCE_OBJ, BPy_BMFace_Type, BPy_BMFace::f, PyC_ParseBool(), and self.
Definition at line 5025 of file bmesh_py_types.cc.
References BLI_assert, bm, BM_data_layer_add(), BPy_BMLoop_Type, CD_BM_ELEM_PYPTR, CustomData_bmesh_get(), l, ptr, self, and UNLIKELY.
Referenced by bpy_bm_utils_face_split(), BPy_BMElem_CreatePyObject(), BPy_BMLoop_Array_As_Tuple(), bpy_bmloop_link_loop_next_get(), bpy_bmloop_link_loop_prev_get(), bpy_bmloop_link_loop_radial_next_get(), and bpy_bmloop_link_loop_radial_prev_get().
|
static |
Definition at line 4523 of file bmesh_py_types.cc.
References bm, CD_BM_ELEM_PYPTR, CustomData_bmesh_get(), ptr, and self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 681 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMEdge_CreatePyObject(), and self.
|
static |
Definition at line 693 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMFace_CreatePyObject(), and self.
|
static |
Definition at line 754 of file bmesh_py_types.cc.
References BM_loop_is_convex(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 705 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMLoop_CreatePyObject(), and self.
|
static |
Definition at line 717 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMLoop_CreatePyObject(), and self.
|
static |
Definition at line 729 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMLoop_CreatePyObject(), and self.
|
static |
Definition at line 741 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMLoop_CreatePyObject(), and self.
|
nodiscard |
Definition at line 5386 of file bmesh_py_types.cc.
References BM_LOOP, BPy_BMElem_PySeq_As_Array(), max, and min.
Referenced by bpy_bmesh_uv_select_foreach_set().
|
static |
Definition at line 4657 of file bmesh_py_types.cc.
References bm, BM_elem_index_get, l, and self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 3052 of file bmesh_py_types.cc.
References bm, BM_loop_edge_uvselect_set(), BPY_BM_CHECK_OBJ, PyC_Long_AsBool(), and self.
|
static |
Definition at line 3021 of file bmesh_py_types.cc.
References bm, BM_loop_vert_uvselect_set_noflush(), BPY_BM_CHECK_OBJ, PyC_Long_AsBool(), and self.
|
static |
Definition at line 669 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMVert_CreatePyObject(), and self.
|
nodiscard |
Definition at line 5089 of file bmesh_py_types.cc.
References bm, BPy_BMLoopSeq_Type, and self.
Referenced by bpy_bmloopseq_get().
|
static |
Definition at line 268 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMLoopSeq_CreatePyObject(), and self.
Definition at line 5408 of file bmesh_py_types.cc.
References bm, BPy_BMVert_CreatePyObject(), i, and ret.
Referenced by bpy_bm_utils_vert_separate().
|
static |
Definition at line 2405 of file bmesh_py_types.cc.
References angle(), BM_vert_calc_edge_angle_ex(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 2446 of file bmesh_py_types.cc.
References BM_vert_calc_shell_factor(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 461 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject_wrap().
|
static |
Definition at line 467 of file bmesh_py_types.cc.
References BPY_BM_CHECK_INT, mathutils_array_parse(), and self.
|
static |
Definition at line 2373 of file bmesh_py_types.cc.
References bm, BM_vert_interp_from_face(), BPY_BM_CHECK_OBJ, BPY_BM_CHECK_SOURCE_OBJ, BPy_BMFace_Type, BPy_BMFace::f, and self.
|
static |
Definition at line 2335 of file bmesh_py_types.cc.
References bm, BM_data_interp_from_verts(), BPY_BM_CHECK_OBJ, BPy_BMVert_PySeq_As_Array(), clamp_f(), and self.
Definition at line 4944 of file bmesh_py_types.cc.
References BLI_assert, bm, BM_data_layer_add(), BPy_BMVert_Type, CD_BM_ELEM_PYPTR, CustomData_bmesh_get(), ptr, self, UNLIKELY, and v.
Referenced by bpy_bm_utils_edge_split(), bpy_bm_utils_face_vert_separate(), bpy_bm_utils_loop_separate(), bpy_bmedge_other_vert(), BPy_BMElem_CreatePyObject(), bpy_bmloop_vert_get(), BPy_BMVert_Array_As_Tuple(), and bpy_bmvertseq_new().
|
static |
Definition at line 4484 of file bmesh_py_types.cc.
References bm, CD_BM_ELEM_PYPTR, CustomData_bmesh_get(), ptr, and self.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 531 of file bmesh_py_types.cc.
References BM_vert_is_boundary(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 507 of file bmesh_py_types.cc.
References BM_vert_is_manifold(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 519 of file bmesh_py_types.cc.
References BM_vert_is_wire(), BPY_BM_CHECK_OBJ, and self.
|
static |
Definition at line 484 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, self, and Vector_CreatePyObject_wrap().
|
static |
Definition at line 490 of file bmesh_py_types.cc.
References BPY_BM_CHECK_INT, mathutils_array_parse(), and self.
|
static |
Definition at line 2463 of file bmesh_py_types.cc.
References BM_vert_normal_update(), BPY_BM_CHECK_OBJ, and self.
|
nodiscard |
Definition at line 5350 of file bmesh_py_types.cc.
References BM_VERT, BPy_BMElem_PySeq_As_Array(), max, and min.
Referenced by bpy_bmedgeseq_get__method(), bpy_bmedgeseq_new(), bpy_bmesh_uv_select_foreach_set_from_mesh(), bpy_bmfaceseq_get__method(), bpy_bmfaceseq_new(), and bpy_bmvert_copy_from_vert_interp().
|
static |
Definition at line 4614 of file bmesh_py_types.cc.
References bm, BM_elem_index_get, self, and v.
Referenced by BPy_BM_init_types().
|
nodiscard |
Definition at line 5062 of file bmesh_py_types.cc.
References bm, BM_VERTS_OF_MESH, BPy_BMVertSeq_Type, and self.
Referenced by bpy_bmvertseq_get().
|
static |
Definition at line 228 of file bmesh_py_types.cc.
References BPY_BM_CHECK_OBJ, BPy_BMVertSeq_CreatePyObject(), and self.
|
static |
Definition at line 3131 of file bmesh_py_types.cc.
References bm, BPy_BMVert::bm, BM_CREATE_NOP, BM_elem_attrs_copy(), BM_vert_create(), BPY_BM_CHECK_OBJ, BPy_BMVert_CreatePyObject(), BPy_BMVert_Type, CustomData_bmesh_copy_map_calc(), mathutils_array_parse(), self, BPy_BMVert::v, v, and BMesh::vdata.
|
static |
Definition at line 3338 of file bmesh_py_types.cc.
References bm, BM_vert_kill(), BPY_BM_CHECK_OBJ, BPY_BM_CHECK_SOURCE_OBJ, bpy_bm_generic_invalidate(), BPy_BMVert_Check, self, and BPy_BMVert::v.
|
nodiscard |
Definition at line 4879 of file bmesh_py_types.cc.
References BPy_BM_types_module_def, BPy_BMDeformVert_Type, BPy_BMEdge_Type, BPy_BMEdgeSeq_Type, BPy_BMEditSelIter_Type, BPy_BMEditSelSeq_Type, BPy_BMElemSeq_Type, BPy_BMesh_Type, BPy_BMFace_Type, BPy_BMFaceSeq_Type, BPy_BMIter_Type, BPy_BMLayerAccessEdge_Type, BPy_BMLayerAccessFace_Type, BPy_BMLayerAccessLoop_Type, BPy_BMLayerAccessVert_Type, BPy_BMLayerCollection_Type, BPy_BMLayerItem_Type, BPy_BMLoop_Type, BPy_BMLoopSeq_Type, BPy_BMLoopUV_Type, BPy_BMVert_Type, and BPy_BMVertSeq_Type.
Referenced by BPyInit_bmesh().
| PyDoc_STRVAR | ( | bpy_bm_elem_copy_from_doc | , |
| ".. method:: copy_from(other)\n" "\n" " Copy values from another element of matching type.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_elem_hide_doc | , |
| "Hidden state of this element.\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_elem_hide_set_doc | , |
| ".. method:: hide_set(hide)\n" "\n" " Set the hide state.\n" " This is different from the *hide* attribute because it updates the selection and " "hide state of associated geometry.\n" "\n" " :arg hide: Hidden or visible.\n" " :type hide: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_elem_index_doc | , |
| "Index of this element.\n" "\n" ":type: int\n" "\n" ".. note::\n" "\n" " This value is not necessarily | valid, | ||
| while editing the mesh it can become *dirty *.\n" "\n" " It 's also possible to assign any number to this attribute for a scripts internal logic.\n" "\n" " To ensure the value is up to date - see :class:`bmesh.types.BMElemSeq.index_update`.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_elem_seam_doc | , |
| "Seam for UV unwrapping.\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_elem_select_doc | , |
| "Selected state of this element.\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_elem_select_set_doc | , |
| ".. method:: select_set(select)\n" "\n" " Set the selection.\n" " This is different from the *select* attribute because it updates the selection " "state of associated geometry.\n" "\n" " :arg select: Select or de-select.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " This only flushes | down, | ||
| so selecting a face will select all its " "vertices but de-selecting a vertex " " won 't de-select all the faces that use | it, | ||
| before finishing with a mesh " "typically flushing is still needed.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_elem_smooth_doc | , |
| "Smooth state of this element.\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_elem_tag_doc | , |
| "Generic attribute scripts can use for own logic\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_elem_uv_select_doc | , |
| "UV selected state of this element.\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bm_is_valid_doc | , |
| "True when this element is valid (hasn't been removed).\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | BPy_BM_types_module_doc | , |
| "\n" ".. |UV_STICKY_SELECT_MODE_REF| replace:: " "(:class:`bpy.types.ToolSettings.uv_sticky_select_mode` which may be passed in directly).\n" "\n" ".. |UV_STICKY_SELECT_MODE_TYPE| replace:: " "Literal\n" "\n" ".. |UV_SELECT_FLUSH_MODE_NEEDED| replace:: " "This function selection-mode | independent[ 'SHARED_LOCATION', 'DISABLED', 'SHARED_VERTEX'], | ||
| " "typically :class:`bmesh.types.BMesh.uv_select_flush_mode` should be called afterwards.\n" "\n" "..|UV_SELECT_SYNC_TO_MESH_NEEDED|replace::" "This function doesn 't flush the selection to the | mesh, | ||
| " "typically :class:`bmesh.types.BMesh.uv_select_sync_to_mesh` should be called afterwards.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_calc_face_angle_doc | , |
| ".. method:: calc_face_angle(fallback=None)\n" "\n" " :arg fallback: return this when the edge doesn't have 2 faces\n" " (instead of raising a :exc:`ValueError`).\n" " :type fallback: Any\n" " :return: The angle between 2 connected faces in radians.\n" " :rtype: float\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_calc_face_angle_signed_doc | , |
| ".. method:: calc_face_angle_signed(fallback=None)\n" "\n" " :arg fallback: return this when the edge doesn't have 2 faces\n" " (instead of raising a :exc:`ValueError`).\n" " :type fallback: Any\n" " :return: The angle between 2 connected faces in radians (negative for concave join).\n" " :rtype: float\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_calc_length_doc | , |
| ".. method:: calc_length()\n" "\n" " :return: The length between both verts.\n" " :rtype: float\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_calc_tangent_doc | , |
| ".. method:: calc_tangent(loop)\n" "\n" " Return the tangent at this edge relative to a face (pointing inward into the face).\n" " This uses the face normal for calculation.\n" "\n" " :arg loop: The loop used for tangent calculation.\n" " :type loop: :class:`bmesh.types.BMLoop`\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_doc | , |
| "The BMesh edge connecting 2 verts\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_is_boundary_doc | , |
| "True when this edge is at the boundary of a face (read-only).\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_is_contiguous_doc | , |
| "True when this edge is | manifold, | ||
| between two faces with the same winding " "(read-only).\n" "\n" ":type:bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_is_convex_doc | , |
| "True when this edge joins two convex | faces, | ||
| depends on a valid face normal(read-only).\n" "\n" ":type:bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_is_manifold_doc | , |
| "True when this edge is manifold (read-only).\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_is_wire_doc | , |
| "True when this edge is not connected to any faces (read-only).\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_link_faces_doc | , |
| "Faces connected to this | edge, | ||
| (read-only).\n" "\n" ":type::class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMFace`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_link_loops_doc | , |
| "Loops connected to this | edge, | ||
| (read-only).\n" "\n" ":type::class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_normal_update_doc | , |
| ".. method:: normal_update()\n" "\n" " Update normals of all connected faces and the edge verts.\n" "\n" " .. note::\n" "\n" " The normal of edge vertex will be a zero vector if vertex :attr:`is_wire` is True.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_other_vert_doc | , |
| ".. method:: other_vert(vert)\n" "\n" " Return the other vertex on this edge or None if the vertex is not used by this edge.\n" "\n" " :arg vert: a vert in this edge.\n" " :type vert: :class:`bmesh.types.BMVert`\n" " :return: The edges other vert.\n" " :rtype: :class:`bmesh.types.BMVert` | None\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedge_verts_doc | , |
| "Verts this edge uses | always 2, | ||
| (read-only).\n" "\n" ":type::class:`bmesh.types.BMElemSeq` of " ":class:`bmesh.types.BMVert`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedgeseq_doc | , |
| "This meshes edge sequence (read-only).\n" "\n" ":type: :class:`bmesh.types.BMEdgeSeq`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmedgeseq_get__method_doc | , |
| ".. method:: get(verts, fallback=None)\n" "\n" " Return an edge which uses the **verts** passed.\n" "\n" " :arg verts: Sequence of verts.\n" " :type verts: Sequence\n" " :arg fallback: Return this value if nothing is found.\n" " :return: The edge found or None\n" " :rtype: :class:`bmesh.types.BMEdge`\n" | [:class:`bmesh.types.BMVert`] ) |
| PyDoc_STRVAR | ( | bpy_bmedgeseq_new_doc | , |
| ".. method:: new(verts, example=None)\n" "\n" " Create a new edge from a given pair of verts.\n" "\n" " :arg verts: Vertex pair.\n" " :type verts: Sequence\n" " :arg example: Existing edge to initialize settings (optional argument).\n" " :type example: :class:`bmesh.types.BMEdge`\n" " :return: The newly created edge.\n" " :rtype: :class:`bmesh.types.BMEdge`\n" | [:class:`bmesh.types.BMVert`] ) |
| PyDoc_STRVAR | ( | bpy_bmedgeseq_remove_doc | , |
| ".. method:: remove(edge)\n" "\n" " Remove an edge.\n" "\n" " :type edge: :class:`bmesh.types.BMEdge`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmelemseq_doc | , |
| "General sequence type used for accessing any sequence of\n" ":class:`bmesh.types.BMVert` | , | ||
| " ":class:`bmesh.types.BMEdge` | , | ||
| " ":class:`bmesh.types.BMFace` | , | ||
| " ":class:`bmesh.types.BMLoop`.\n" "\n" "When accessed via " ":class:`bmesh.types.BMesh.verts` | , | ||
| " ":class:`bmesh.types.BMesh.edges` | , | ||
| " ":class:`bmesh.types.BMesh.faces`\n" "there are also functions to create/remove items.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmelemseq_ensure_lookup_table_doc | , |
| ".. method:: ensure_lookup_table()\n" "\n" " Ensure internal data needed for int subscription is initialized with " "verts/edges/ | faces, | ||
| eg ``bm.verts``.\n" "\n" " This needs to be called again after adding/removing data in this sequence.\n" | [index] ) |
| PyDoc_STRVAR | ( | bpy_bmelemseq_index_update_doc | , |
| ".. method:: index_update()\n" "\n" " Initialize the index values of this sequence.\n" "\n" " This is the equivalent of looping over all elements and assigning the index values.\n" "\n" " .. code-block:: python\n" "\n" " for | index, | ||
| ele in enumerate(sequence):\n" " ele. | index = index\n" "\n" " .. note::\n" "\n" " Running this on sequences besides " ":class:`bmesh.types.BMesh.verts`, | ||
| " ":class:`bmesh.types.BMesh.edges` | , | ||
| " ":class:`bmesh.types.BMesh.faces`\n" " works but won 't result in each element having a valid | index, | ||
| instead its order in the " "sequence will be set.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmelemseq_layers_edge_doc | , |
| "custom-data layers (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLayerAccessEdge`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmelemseq_layers_face_doc | , |
| "custom-data layers (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLayerAccessFace`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmelemseq_layers_loop_doc | , |
| "custom-data layers (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLayerAccessLoop`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmelemseq_layers_vert_doc | , |
| "custom-data layers (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLayerAccessVert`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmelemseq_sort_doc | , |
| ".. method:: sort(*, key=None, reverse=False)\n" "\n" " Sort the elements of this | sequence, | ||
| using an optional custom sort key.\n" " Indices of elements are not | changed, | ||
| :class:`bmesh.types.BMElemSeq.index_update` " "can be used for that.\n" "\n" " :arg key:The key that sets the ordering of the elements.\n" " :type key:Callable | [[" ":class:`bmesh.types.BMVert`|" ":class:`bmesh.types.BMEdge`|" ":class:`bmesh.types.BMFace`], | ||
| int]|None\n" " :arg reverse:Reverse the order of the elements\n" " :type reverse:bool\n" "\n" " .. note::\n" "\n" " When the 'key' argument is not | provided, | ||
| the elements are reordered following their " "current index value.\n" " In particular this can be used by setting indices manually before calling this " "method.\n" "\n" " .. warning::\n" "\n" " Existing references to the N 'th | element, | ||
| will continue to point the data at that " "index.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_calc_loop_triangles_doc | , |
| ".. method:: calc_loop_triangles()\n" "\n" " Calculate triangle tessellation from quads/ngons.\n" "\n" " :return: The triangulated faces.\n" " :rtype: list]\n" | [tuple[:class:`bmesh.types.BMLoop`, " ":class:`bmesh.types.BMLoop`, " ":class:`bmesh.types.BMLoop`] ) |
| PyDoc_STRVAR | ( | bpy_bmesh_calc_volume_doc | , |
| ".. method:: calc_volume(*, signed=False)\n" "\n" " Calculate mesh volume based on face normals.\n" "\n" " :arg signed: when signed is | true, | ||
| negative values may be returned.\n" " :type signed:bool\n" " :return:The volume of the mesh.\n" " :rtype:float\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_copy_doc | , |
| ".. method:: copy()\n" "\n" " :return: A copy of this BMesh.\n" " :rtype: :class:`bmesh.types.BMesh`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_free_doc | , |
| ".. method:: free()\n" "\n" " Explicitly free the BMesh data from | memory, | ||
| causing exceptions on further access.\n" "\n" " .. note::\n" "\n" " The BMesh is freed | automatically, | ||
| typically when the script finishes executing.\n" " However in some cases its hard to predict when this will be and its useful to\n" " explicitly free the data.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_from_mesh_doc | , |
| ".. method:: from_mesh(mesh, *, " "face_normals=True, vertex_normals=True, use_shape_key=False, shape_key_index=0)\n" "\n" " Initialize this bmesh from existing mesh data-block.\n" "\n" " :arg mesh: The mesh data to load.\n" " :type mesh: :class:`bpy.types.Mesh`\n" " :type face_normals: bool\n" " :type vertex_normals: bool\n" " :arg use_shape_key: Use the locations from a shape key.\n" " :type use_shape_key: bool\n" " :arg shape_key_index: The shape key index to use.\n" " :type shape_key_index: int\n" "\n" " .. note::\n" "\n" " Multiple calls can be used to join multiple meshes.\n" "\n" " Custom-data layers are only copied from ``mesh`` on initialization.\n" " Further calls will copy custom-data to matching | layers, | ||
| layers missing on the target " "mesh won 't be added.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_from_object_doc | , |
| ".. method:: from_object(object, depsgraph, *, " "cage=False, face_normals=True, vertex_normals=True)\n" "\n" " Initialize this bmesh from existing object data-block (only meshes are currently " "supported).\n" "\n" " :arg object: The object data to load.\n" " :type object: :class:`bpy.types.Object`\n" " :type depsgraph: :class:`bpy.types.Depsgraph`\n" " :arg cage: Get the mesh as a deformed cage.\n" " :type cage: bool\n" " :arg face_normals: Calculate face normals.\n" " :type face_normals: bool\n" " :arg vertex_normals: Calculate vertex normals.\n" " :type vertex_normals: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_is_wrapped_doc | , |
| "True when this mesh is owned by blender (typically the editmode BMesh).\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_normal_update_doc | , |
| ".. method:: normal_update()\n" "\n" " Update normals of mesh faces and verts.\n" "\n" " .. note::\n" "\n" " The normal of any vertex where :attr:`is_wire` is True will be a zero vector.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_select_flush_doc | , |
| ".. method:: select_flush(select)\n" "\n" " Flush selection from | vertices, | ||
| independent of the current selection mode.\n" "\n" " :arg select:flush selection or de-selected elements.\n" " :type select:bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_select_flush_mode_doc | , |
| ".. method:: select_flush_mode(*, flush_down=False)\n" "\n" " Flush selection based on the current mode current " ":class:`bmesh.types.BMesh.select_mode`.\n" "\n" " :arg 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.\n" " :type flush_down: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_select_history_doc | , |
| "Sequence of selected items (the last is displayed as active).\n" "\n" ":type: " ":class:`bmesh.types.BMEditSelSeq`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_select_mode_doc | , |
| "The selection | mode, | ||
| cannot be assigned an empty set.\n" "\n" ":type:set]\n" | [Literal[" BPY_BM_HTYPE_NOLOOP "] ) |
References BPY_BM_HTYPE_NOLOOP.
| PyDoc_STRVAR | ( | bpy_bmesh_to_mesh_doc | , |
| ".. method:: to_mesh(mesh)\n" "\n" " Writes this BMesh data into an existing Mesh data-block.\n" "\n" " :arg mesh: The mesh data to write into.\n" " :type mesh: :class:`bpy.types.Mesh`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_transform_doc | , |
| ".. method:: transform(matrix, *, filter=None)\n" "\n" " Transform the mesh (optionally filtering flagged data only).\n" "\n" " :arg matrix: 4x4x transform matrix.\n" " :type matrix: :class:`mathutils.Matrix`\n" " :arg filter: Flag to filter vertices." ".\n" " :type filter: set]\n" | [Literal[" BPY_BM_HFLAG_ALL_STR "] ) |
References BPY_BM_HFLAG_ALL_STR.
| PyDoc_STRVAR | ( | bpy_bmesh_uv_select_flush_doc | , |
| ".. method:: uv_select_flush(select)\n" "\n" " Flush selection from UV vertices to edges & faces independent of the selection mode.\n" "\n" " :arg select: Flush selection or de-selected elements.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " - |UV_SELECT_SYNC_TO_MESH_NEEDED|\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_uv_select_flush_mode_doc | , |
| ".. method:: uv_select_flush_mode(*, flush_down=False)\n" "\n" " Flush selection based on the current mode current :class:`BMesh.select_mode`.\n" "\n" " :arg 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.\n" " :type flush_down: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_uv_select_flush_shared_doc | , |
| ".. method:: uv_select_flush_shared(select)\n" "\n" " Flush selection from UV vertices to contiguous UV's independent of the selection mode.\n" "\n" " :arg select: Flush selection or de-selected elements.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " - |UV_SELECT_SYNC_TO_MESH_NEEDED|\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_uv_select_foreach_set_doc | , |
| ".. method:: uv_select_foreach_set(select, /, *, " "loop_verts=(), loop_edges=(), faces=(), sticky_select_mode='SHARED_LOCATION')\n" "\n" " Set the UV selection state for loop- | vertices, | ||
| loop-edges &faces.\n" "\n" " This is a close equivalent to selecting in the UV editor.\n" "\n" " :arg select:The selection state to set.\n" " :type select:bool\n" " :arg loop_verts:Loop verts to operate on.\n" " :type loop_verts:Iterable\n" " :arg loop_edges:Loop edges to operate on.\n" " :type loop_edges:Iterable\n" " :arg faces:Faces to operate on.\n" " :type faces:Iterable\n" " :arg sticky_select_mode:See|UV_STICKY_SELECT_MODE_REF|.\n" " :type sticky_select_mode:|UV_STICKY_SELECT_MODE_TYPE|\n" "\n" " .. note::\n" "\n" " -|UV_SELECT_FLUSH_MODE_NEEDED|\n" " -|UV_SELECT_SYNC_TO_MESH_NEEDED|\n" | [:class:`bmesh.types.BMLoop`][:class:`bmesh.types.BMLoop`][:class:`bmesh.types.BMFace`] ) |
| PyDoc_STRVAR | ( | bpy_bmesh_uv_select_foreach_set_from_mesh_doc | , |
| ".. method:: uv_select_foreach_set_from_mesh(select, /, *, " "verts=(), edges=(), faces=(), sticky_select_mode='SHARED_LOCATION')\n" "\n" " Select or de-select mesh | elements, | ||
| updating the UV selection.\n" "\n" " An equivalent to selecting from the 3D viewport " "for selection operations that support maintaining a synchronized UV selection.\n" "\n" " :arg select:The selection state to set.\n" " :type select:bool\n" " :arg verts:Verts to operate on.\n" " :type verts:Iterable\n" " :arg edges:Edges to operate on.\n" " :type edges:Iterable\n" " :arg faces:Faces to operate on.\n" " :type faces:Iterable\n" " :arg sticky_select_mode:See|UV_STICKY_SELECT_MODE_REF|.\n" " :type sticky_select_mode:|UV_STICKY_SELECT_MODE_TYPE|\n" | [:class:`bmesh.types.BMVert`][:class:`bmesh.types.BMEdge`][:class:`bmesh.types.BMFace`] ) |
| PyDoc_STRVAR | ( | bpy_bmesh_uv_select_sync_from_mesh_doc | , |
| ".. method:: uv_select_sync_from_mesh(*, " "sticky_select_mode='SHARED_LOCATION')\n" "\n" " Sync selection from mesh to UVs.\n" "\n" " :arg 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.\n" " :type sticky_select_mode: |UV_STICKY_SELECT_MODE_TYPE|\n" "\n" " .. note::\n" "\n" " - |UV_SELECT_SYNC_TO_MESH_NEEDED|\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_uv_select_sync_to_mesh_doc | , |
| ".. method:: uv_select_sync_to_mesh()\n" "\n" " Sync selection from UVs to the mesh.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmesh_uv_select_sync_valid_doc | , |
| "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.\n" ":type:" "bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_calc_area_doc | , |
| ".. method:: calc_area()\n" "\n" " Return the area of the face.\n" "\n" " :return: Return the area of the face.\n" " :rtype: float\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_calc_center_bounds_doc | , |
| ".. method:: calc_center_bounds()\n" "\n" " Return bounds center of the face.\n" "\n" " :return: a 3D vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_calc_center_median_doc | , |
| ".. method:: calc_center_median()\n" "\n" " Return median center of the face.\n" "\n" " :return: a 3D vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_calc_center_median_weighted_doc | , |
| ".. method:: calc_center_median_weighted()\n" "\n" " Return median center of the face weighted by edge lengths.\n" "\n" " :return: a 3D vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_calc_perimeter_doc | , |
| ".. method:: calc_perimeter()\n" "\n" " Return the perimeter of the face.\n" "\n" " :return: Return the perimeter of the face.\n" " :rtype: float\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_calc_tangent_edge_diagonal_doc | , |
| ".. method:: calc_tangent_edge_diagonal()\n" "\n" " Return face tangent based on the edge farthest from any vertex.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_calc_tangent_edge_doc | , |
| ".. method:: calc_tangent_edge()\n" "\n" " Return face tangent based on longest edge.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_calc_tangent_edge_pair_doc | , |
| ".. method:: calc_tangent_edge_pair()\n" "\n" " Return face tangent based on the two longest disconnected edges.\n" "\n" " - Tris: Use the edge pair with the most similar lengths.\n" " - Quads: Use the longest edge pair.\n" " - NGons: Use the two longest disconnected edges.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_calc_tangent_vert_diagonal_doc | , |
| ".. method:: calc_tangent_vert_diagonal()\n" "\n" " Return face tangent based on the two most distant vertices.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_copy_doc | , |
| ".. method:: copy(*, verts=True, edges=True)\n" "\n" " Make a copy of this face.\n" "\n" " :arg verts: When | set, | ||
| the faces verts will be duplicated too.\n" " :type verts:bool\n" " :arg edges:When | set, | ||
| the faces edges will be duplicated too.\n" " :type edges:bool\n" " :return:The newly created face.\n" " :rtype::class:`bmesh.types.BMFace`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_copy_from_face_interp_doc | , |
| ".. method:: copy_from_face_interp(face, vert=True)\n" "\n" " Interpolate the customdata from another face onto this one (faces should overlap).\n" "\n" " :arg face: The face to interpolate data from.\n" " :type face: :class:`bmesh.types.BMFace`\n" " :arg vert: When | True, | ||
| also copy vertex data.\n" " :type vert:bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_doc | , |
| "The BMesh face with 3 or more sides\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_edges_doc | , |
| "Edges of this | face, | ||
| (read-only).\n" "\n" ":type::class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMEdge`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_loops_doc | , |
| "Loops of this | face, | ||
| (read-only).\n" "\n" ":type::class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_material_index_doc | , |
| "The face's material index.\n" "\n" ":type: int\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_normal_doc | , |
| "The normal for this face as a | 3D, | ||
| wrapped vector.\n" "\n" ":type::class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_normal_flip_doc | , |
| ".. method:: normal_flip()\n" "\n" " Reverses winding of a | face, | ||
| which flips its normal.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_normal_update_doc | , |
| ".. method:: normal_update()\n" "\n" " Update face normal based on the positions of the face verts.\n" " This does not update the normals of face verts.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_uv_select_set_doc | , |
| ".. method:: uv_select_set(select)\n" "\n" " Select the face.\n" "\n" " :arg select: Select or de-select.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " Currently this only flushes | down, | ||
| so selecting a face will select all its " "vertices but de-selecting a vertex " " won 't de-select all the faces that use | it, | ||
| before finishing with a mesh " "typically flushing is still needed.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmface_verts_doc | , |
| "Verts of this | face, | ||
| (read-only).\n" "\n" ":type::class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMVert`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmfaceseq_active_doc | , |
| "active face.\n" "\n" ":type: :class:`bmesh.types.BMFace` | None\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmfaceseq_doc | , |
| "This meshes face sequence (read-only).\n" "\n" ":type: :class:`bmesh.types.BMFaceSeq`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmfaceseq_get__method_doc | , |
| ".. method:: get(verts, fallback=None)\n" "\n" " Return a face which uses the **verts** passed.\n" "\n" " :arg verts: Sequence of verts.\n" " :type verts: Sequence\n" " :arg fallback: Return this value if nothing is found.\n" " :return: The face found or None\n" " :rtype: :class:`bmesh.types.BMFace`\n" | [:class:`bmesh.types.BMVert`] ) |
| PyDoc_STRVAR | ( | bpy_bmfaceseq_new_doc | , |
| ".. method:: new(verts, example=None)\n" "\n" " Create a new face from a given set of verts.\n" "\n" " :arg verts: Sequence of 3 or more verts.\n" " :type verts: Sequence\n" " :arg example: Existing face to initialize settings (optional argument).\n" " :type example: :class:`bmesh.types.BMFace`\n" " :return: The newly created face.\n" " :rtype: :class:`bmesh.types.BMFace`\n" | [:class:`bmesh.types.BMVert`] ) |
| PyDoc_STRVAR | ( | bpy_bmfaceseq_remove_doc | , |
| ".. method:: remove(face)\n" "\n" " Remove a face.\n" "\n" " :type face: :class:`bmesh.types.BMFace`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmiter_doc | , |
| "Internal BMesh type for looping over verts/faces/ | edges, | ||
| \n" "used for iterating over :class:`bmesh.types.BMElemSeq` types.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_calc_angle_doc | , |
| ".. method:: calc_angle()\n" "\n" " Return the angle at this loops corner of the face.\n" " This is calculated so sharper corners give lower angles.\n" "\n" " :return: The angle in radians.\n" " :rtype: float\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_calc_normal_doc | , |
| ".. method:: calc_normal()\n" "\n" " Return normal at this loops corner of the face.\n" " Falls back to the face normal for straight lines.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_calc_tangent_doc | , |
| ".. method:: calc_tangent()\n" "\n" " Return the tangent at this loops corner of the face (pointing inward into the face).\n" " Falls back to the face normal for straight lines.\n" "\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_copy_from_face_interp_doc | , |
| ".. method:: copy_from_face_interp(face, vert=True, multires=True)\n" "\n" " Interpolate the customdata from a face onto this loop (the loops vert should " "overlap the face).\n" "\n" " :arg face: The face to interpolate data from.\n" " :type face: :class:`bmesh.types.BMFace`\n" " :arg vert: When | enabled, | ||
| interpolate the loops vertex data(optional).\n" " :type vert:bool\n" " :arg multires:When | enabled, | ||
| interpolate the loops multires data(optional).\n" " :type multires:bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_doc | , |
| "This is normally accessed from :class:`bmesh.types.BMFace.loops` where each face loop " "represents a corner of the face.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_edge_doc | , |
| "The loop's edge | between this loop and the next, | ||
| (read-only).\n" "\n" ":type::class:`bmesh.types.BMEdge`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_face_doc | , |
| "The face this loop makes (read-only).\n" "\n" ":type: :class:`bmesh.types.BMFace`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_is_convex_doc | , |
| "True when this loop is at the convex corner of a | face, | ||
| depends on a valid face " "normal(read-only).\n" "\n" ":type:bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_link_loop_next_doc | , |
| "The next face corner (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoop`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_link_loop_prev_doc | , |
| "The previous face corner (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoop`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_link_loop_radial_next_doc | , |
| "The next loop around the edge (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoop`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_link_loop_radial_prev_doc | , |
| "The previous loop around the edge (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoop`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_uv_select_edge_set_doc | , |
| ".. method:: uv_select_edge_set(select)\n" "\n" " Set the UV edge selection state.\n" "\n" " :arg select: Select or de-select.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " This only flushes | down, | ||
| so selecting an edge will select all its " "vertices but de-selecting a vertex " "won 't de-select the faces that use | it, | ||
| before finishing with a mesh " "typically flushing with :class:`bmesh.types.BMesh.uv_select_flush_mode` is still needed.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_uv_select_vert_set_doc | , |
| ".. method:: uv_select_vert_set(select)\n" "\n" " Select the UV vertex.\n" "\n" " :arg select: Select or de-select.\n" " :type select: bool\n" "\n" " .. note::\n" "\n" " Currently this only flushes | down, | ||
| so selecting an edge will select all its " "vertices but de-selecting a vertex " " won 't de-select the edges &faces that use | it, | ||
| before finishing with a mesh " "typically flushing with :class:`bmesh.types.BMesh.uv_select_flush_mode` is still needed.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloop_vert_doc | , |
| "The loop's vertex (read-only).\n" "\n" ":type: :class:`bmesh.types.BMVert`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloops_link_loops_doc | , |
| "Loops connected to this | loop, | ||
| (read-only).\n" "\n" ":type::class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmloopseq_doc | , |
| "This meshes loops (read-only).\n" "\n" ":type: :class:`bmesh.types.BMLoopSeq`\n" "\n" ".. note::\n" "\n" " Loops must be accessed via | faces, | ||
| this is only exposed for layer access.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_calc_edge_angle_doc | , |
| ".. method:: calc_edge_angle(fallback=None)\n" "\n" " Return the angle between this vert's two connected edges.\n" "\n" " :arg fallback: return this when the vert doesn't have 2 edges\n" " (instead of raising a :exc:`ValueError`).\n" " :type fallback: Any\n" " :return: Angle between edges in radians.\n" " :rtype: float\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_calc_shell_factor_doc | , |
| ".. method:: calc_shell_factor()\n" "\n" " Return a multiplier calculated based on the sharpness of the vertex.\n" " Where a flat surface gives 1. | 0, | ||
| and higher values sharper edges.\n" " This is used to maintain shell thickness when offsetting verts along their normals.\n" "\n" " :return:offset multiplier\n" " :rtype:float\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_co_doc | , |
| "The coordinates for this vertex as a | 3D, | ||
| wrapped vector.\n" "\n" ":type:" ":class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_copy_from_face_interp_doc | , |
| ".. method:: copy_from_face_interp(face)\n" "\n" " Interpolate the customdata from a face onto this loop (the loops vert should " "overlap the face).\n" "\n" " :arg face: The face to interpolate data from.\n" " :type face: :class:`bmesh.types.BMFace`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_copy_from_vert_interp_doc | , |
| ".. method:: copy_from_vert_interp(vert_pair, fac)\n" "\n" " Interpolate the customdata from a vert between 2 other verts.\n" "\n" " :arg vert_pair: The verts between which to interpolate data from.\n" " :type vert_pair: Sequence\n" " :type fac: float\n" | [:class:`bmesh.types.BMVert`] ) |
| PyDoc_STRVAR | ( | bpy_bmvert_doc | , |
| "The BMesh vertex type\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_is_boundary_doc | , |
| "True when this vertex is connected to boundary edges (read-only).\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_is_manifold_doc | , |
| "True when this vertex is manifold (read-only).\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_is_wire_doc | , |
| "True when this vertex is not connected to any faces (read-only).\n" "\n" ":type: bool\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_link_edges_doc | , |
| "Edges connected to this vertex (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMEdge`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_link_faces_doc | , |
| "Faces connected to this vertex (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMFace`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_link_loops_doc | , |
| "Loops that use this vertex (read-only).\n" "\n" ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_normal_doc | , |
| "The normal for this vertex as a | 3D, | ||
| wrapped vector.\n" "\n" ":type::class:`mathutils.Vector`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvert_normal_update_doc | , |
| ".. method:: normal_update()\n" "\n" " Update vertex normal.\n" " This does not update the normals of adjoining faces.\n" "\n" " .. note::\n" "\n" " The vertex normal will be a zero vector if vertex :attr:`is_wire` is True.\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvertseq_doc | , |
| "This meshes vert sequence (read-only).\n" "\n" ":type: :class:`bmesh.types.BMVertSeq`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvertseq_new_doc | , |
| ".. method:: new(co=(0.0, 0.0, 0.0), example=None)\n" "\n" " Create a new vertex.\n" "\n" " :arg co: The initial location of the vertex (optional argument).\n" " :type co: float triplet\n" " :arg example: Existing vert to initialize settings.\n" " :type example: :class:`bmesh.types.BMVert`\n" " :return: The newly created vertex.\n" " :rtype: :class:`bmesh.types.BMVert`\n" | ) |
| PyDoc_STRVAR | ( | bpy_bmvertseq_remove_doc | , |
| ".. method:: remove(vert)\n" "\n" " Remove a vert.\n" "\n" " :type vert: :class:`bmesh.types.BMVert`\n" | ) |
|
static |
Definition at line 4419 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyC_FlagSet bpy_bm_hflag_all_flags[] |
Definition at line 81 of file bmesh_py_types.cc.
Referenced by bpy_bmesh_transform().
| PyC_FlagSet bpy_bm_htype_all_flags[] |
| PyC_FlagSet bpy_bm_htype_vert_edge_face_flags[] |
Definition at line 60 of file bmesh_py_types.cc.
| PyC_FlagSet bpy_bm_scene_vert_edge_face_flags[] |
Definition at line 53 of file bmesh_py_types.cc.
Referenced by bpy_bmesh_select_mode_get(), and bpy_bmesh_select_mode_set().
|
static |
Definition at line 4867 of file bmesh_py_types.cc.
Referenced by BPyInit_bmesh_types().
|
static |
Definition at line 92 of file bmesh_py_types.cc.
Referenced by bpy_bmesh_uv_select_foreach_set(), bpy_bmesh_uv_select_foreach_set_from_mesh(), and bpy_bmesh_uv_select_sync_from_mesh().
|
static |
Definition at line 936 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 3927 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyTypeObject BPy_BMEdge_Type |
Definition at line 4682 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), bpy_bm_itype_as_pytype(), bpy_bm_utils_edge_rotate(), bpy_bm_utils_edge_split(), bpy_bm_utils_face_split(), bpy_bm_utils_vert_collapse_edge(), bpy_bm_utils_vert_collapse_faces(), BPy_BMEdge_CreatePyObject(), bpy_bmedgeseq_new(), BPy_BMElem_CheckHType(), BPy_BMElem_StringFromHType_ex(), and BPyInit_bmesh_types().
|
static |
Definition at line 1170 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 4067 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyTypeObject BPy_BMEdgeSeq_Type |
Definition at line 4687 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), BPy_BMEdgeSeq_CreatePyObject(), and BPyInit_bmesh_types().
|
static |
Definition at line 4412 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 4398 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 4038 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), and BPy_BM_init_types_customdata().
| PyTypeObject BPy_BMElemSeq_Type |
Definition at line 4685 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), BPy_BMElemSeq_CreatePyObject(), and BPyInit_bmesh_types().
|
static |
Definition at line 838 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 3820 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyTypeObject BPy_BMesh_Type |
Definition at line 4680 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), bpy_bm_utils_uv_select_check(), BPy_BMesh_CreatePyObject(), BPyInit_bmesh_types(), and C_BVHTree_FromBMesh().
|
static |
Definition at line 1015 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 3956 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyTypeObject BPy_BMFace_Type |
Definition at line 4683 of file bmesh_py_types.cc.
Referenced by bpy_bm_geometry_intersect_face_point(), BPy_BM_init_types(), bpy_bm_itype_as_pytype(), bpy_bm_utils_face_split(), bpy_bm_utils_face_split_edgenet(), bpy_bm_utils_face_vert_separate(), BPy_BMElem_CheckHType(), BPy_BMElem_StringFromHType_ex(), bpy_bmface_copy_from_face_interp(), BPy_BMFace_CreatePyObject(), bpy_bmfaceseq_new(), bpy_bmloop_copy_from_face_interp(), bpy_bmvert_copy_from_face_interp(), and BPyInit_bmesh_types().
|
static |
Definition at line 1178 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 4089 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyTypeObject BPy_BMFaceSeq_Type |
Definition at line 4688 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), BPy_BMFaceSeq_CreatePyObject(), and BPyInit_bmesh_types().
| PyTypeObject BPy_BMIter_Type |
Definition at line 4690 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), BPy_BMIter_CreatePyObject(), and BPyInit_bmesh_types().
|
static |
Definition at line 1084 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 4013 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyTypeObject BPy_BMLoop_Type |
Definition at line 4684 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), bpy_bm_itype_as_pytype(), bpy_bmedge_calc_tangent(), BPy_BMElem_CheckHType(), BPy_BMElem_StringFromHType_ex(), BPy_BMLoop_CreatePyObject(), and BPyInit_bmesh_types().
|
static |
Definition at line 1192 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 4111 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyTypeObject BPy_BMLoopSeq_Type |
Definition at line 4689 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), BPy_BMLoopSeq_CreatePyObject(), and BPyInit_bmesh_types().
|
static |
Definition at line 872 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 3897 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyTypeObject BPy_BMVert_Type |
Definition at line 4681 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), bpy_bm_itype_as_pytype(), bpy_bm_utils_edge_split(), bpy_bm_utils_face_split(), bpy_bm_utils_face_vert_separate(), bpy_bm_utils_vert_collapse_edge(), bpy_bm_utils_vert_collapse_faces(), bpy_bm_utils_vert_dissolve(), bpy_bm_utils_vert_separate(), bpy_bm_utils_vert_splice(), BPy_BMElem_CheckHType(), BPy_BMElem_StringFromHType_ex(), BPy_BMVert_CreatePyObject(), bpy_bmvertseq_new(), and BPyInit_bmesh_types().
|
static |
Definition at line 1162 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
|
static |
Definition at line 4047 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types().
| PyTypeObject BPy_BMVertSeq_Type |
Definition at line 4686 of file bmesh_py_types.cc.
Referenced by BPy_BM_init_types(), BPy_BMVertSeq_CreatePyObject(), and BPyInit_bmesh_types().