Blender V4.3
mesh_intern.hh File Reference
#include "BLI_span.hh"
#include "BLI_sys_types.h"

Go to the source code of this file.

Namespaces

namespace  blender
 
namespace  blender::ed
 
namespace  blender::ed::mesh
 

Functions

bool EDBM_op_callf (BMEditMesh *em, wmOperator *op, const char *fmt,...)
 
bool EDBM_op_call_and_selectf (BMEditMesh *em, wmOperator *op, const char *select_slot, bool select_replace, const char *fmt,...)
 
bool EDBM_op_call_silentf (BMEditMesh *em, const char *fmt,...)
 
bool EDBM_op_init (BMEditMesh *em, BMOperator *bmop, wmOperator *op, const char *fmt,...)
 
bool EDBM_op_finish (BMEditMesh *em, BMOperator *bmop, wmOperator *op, bool do_report)
 
void EDBM_stats_update (BMEditMesh *em)
 
bool EDBM_view3d_poll (bContext *C)
 
BMElemEDBM_elem_from_selectmode (BMEditMesh *em, BMVert *eve, BMEdge *eed, BMFace *efa)
 
int EDBM_elem_to_index_any (BMEditMesh *em, BMElem *ele)
 
BMElemEDBM_elem_from_index_any (BMEditMesh *em, uint index)
 
int EDBM_elem_to_index_any_multi (const Scene *scene, ViewLayer *view_layer, BMEditMesh *em, BMElem *ele, int *r_object_index)
 
BMElemEDBM_elem_from_index_any_multi (const Scene *scene, ViewLayer *view_layer, uint object_index, uint elem_index, Object **r_obedit)
 
bool edbm_extrude_edges_indiv (BMEditMesh *em, wmOperator *op, char hflag, bool use_normal_flip)
 
void MESH_OT_primitive_plane_add (wmOperatorType *ot)
 
void MESH_OT_primitive_cube_add (wmOperatorType *ot)
 
void MESH_OT_primitive_circle_add (wmOperatorType *ot)
 
void MESH_OT_primitive_cylinder_add (wmOperatorType *ot)
 
void MESH_OT_primitive_cone_add (wmOperatorType *ot)
 
void MESH_OT_primitive_grid_add (wmOperatorType *ot)
 
void MESH_OT_primitive_monkey_add (wmOperatorType *ot)
 
void MESH_OT_primitive_uv_sphere_add (wmOperatorType *ot)
 
void MESH_OT_primitive_ico_sphere_add (wmOperatorType *ot)
 
void MESH_OT_primitive_cube_add_gizmo (wmOperatorType *ot)
 
void MESH_OT_attribute_set (wmOperatorType *ot)
 
void MESH_OT_bevel (wmOperatorType *ot)
 
wmKeyMapbevel_modal_keymap (wmKeyConfig *keyconf)
 
void MESH_OT_bisect (wmOperatorType *ot)
 
void MESH_OT_extrude_repeat (wmOperatorType *ot)
 
void MESH_OT_extrude_region (wmOperatorType *ot)
 
void MESH_OT_extrude_context (wmOperatorType *ot)
 
void MESH_OT_extrude_verts_indiv (wmOperatorType *ot)
 
void MESH_OT_extrude_edges_indiv (wmOperatorType *ot)
 
void MESH_OT_extrude_faces_indiv (wmOperatorType *ot)
 
void MESH_OT_dupli_extrude_cursor (wmOperatorType *ot)
 
void MESH_OT_screw (wmOperatorType *ot)
 
void MESH_OT_spin (wmOperatorType *ot)
 
void MESH_GGT_spin (wmGizmoGroupType *gzgt)
 
void MESH_GGT_spin_redo (wmGizmoGroupType *gzgt)
 
void MESH_OT_polybuild_face_at_cursor (wmOperatorType *ot)
 
void MESH_OT_polybuild_split_at_cursor (wmOperatorType *ot)
 
void MESH_OT_polybuild_dissolve_at_cursor (wmOperatorType *ot)
 
void MESH_OT_polybuild_transform_at_cursor (wmOperatorType *ot)
 
void MESH_OT_polybuild_delete_at_cursor (wmOperatorType *ot)
 
void MESH_OT_inset (wmOperatorType *ot)
 
void MESH_OT_intersect (wmOperatorType *ot)
 
void MESH_OT_intersect_boolean (wmOperatorType *ot)
 
void MESH_OT_face_split_by_edges (wmOperatorType *ot)
 
void MESH_OT_knife_tool (wmOperatorType *ot)
 
void MESH_OT_knife_project (wmOperatorType *ot)
 
void EDBM_mesh_knife (ViewContext *vc, blender::Span< Object * > objects, LinkNode *polys, bool use_tag, bool cut_through)
 
wmKeyMapknifetool_modal_keymap (wmKeyConfig *keyconf)
 
void MESH_OT_loopcut (wmOperatorType *ot)
 
void MESH_OT_rip (wmOperatorType *ot)
 
void MESH_OT_rip_edge (wmOperatorType *ot)
 
void MESH_OT_select_similar (wmOperatorType *ot)
 
void MESH_OT_select_similar_region (wmOperatorType *ot)
 
void MESH_OT_select_mode (wmOperatorType *ot)
 
void MESH_OT_loop_multi_select (wmOperatorType *ot)
 
void MESH_OT_loop_select (wmOperatorType *ot)
 
void MESH_OT_edgering_select (wmOperatorType *ot)
 
void MESH_OT_select_all (wmOperatorType *ot)
 
void MESH_OT_select_interior_faces (wmOperatorType *ot)
 
void MESH_OT_shortest_path_pick (wmOperatorType *ot)
 
void MESH_OT_select_linked (wmOperatorType *ot)
 
void MESH_OT_select_linked_pick (wmOperatorType *ot)
 
void MESH_OT_select_face_by_sides (wmOperatorType *ot)
 
void MESH_OT_select_loose (wmOperatorType *ot)
 
void MESH_OT_select_mirror (wmOperatorType *ot)
 
void MESH_OT_select_more (wmOperatorType *ot)
 
void MESH_OT_select_less (wmOperatorType *ot)
 
void MESH_OT_select_nth (wmOperatorType *ot)
 
void MESH_OT_edges_select_sharp (wmOperatorType *ot)
 
void MESH_OT_faces_select_linked_flat (wmOperatorType *ot)
 
void MESH_OT_select_non_manifold (wmOperatorType *ot)
 
void MESH_OT_select_random (wmOperatorType *ot)
 
void MESH_OT_select_ungrouped (wmOperatorType *ot)
 
void MESH_OT_select_axis (wmOperatorType *ot)
 
void MESH_OT_region_to_loop (wmOperatorType *ot)
 
void MESH_OT_loop_to_region (wmOperatorType *ot)
 
void MESH_OT_select_by_attribute (wmOperatorType *ot)
 
void MESH_OT_shortest_path_select (wmOperatorType *ot)
 
void MESH_OT_subdivide (wmOperatorType *ot)
 
void MESH_OT_subdivide_edgering (wmOperatorType *ot)
 
void MESH_OT_unsubdivide (wmOperatorType *ot)
 
void MESH_OT_normals_make_consistent (wmOperatorType *ot)
 
void MESH_OT_vertices_smooth (wmOperatorType *ot)
 
void MESH_OT_vertices_smooth_laplacian (wmOperatorType *ot)
 
void MESH_OT_vert_connect (wmOperatorType *ot)
 
void MESH_OT_vert_connect_path (wmOperatorType *ot)
 
void MESH_OT_vert_connect_concave (wmOperatorType *ot)
 
void MESH_OT_vert_connect_nonplanar (wmOperatorType *ot)
 
void MESH_OT_face_make_planar (wmOperatorType *ot)
 
void MESH_OT_edge_split (wmOperatorType *ot)
 
void MESH_OT_bridge_edge_loops (wmOperatorType *ot)
 
void MESH_OT_offset_edge_loops (wmOperatorType *ot)
 
void MESH_OT_wireframe (wmOperatorType *ot)
 
void MESH_OT_convex_hull (wmOperatorType *ot)
 
void MESH_OT_symmetrize (wmOperatorType *ot)
 
void MESH_OT_symmetry_snap (wmOperatorType *ot)
 
void MESH_OT_shape_propagate_to_all (wmOperatorType *ot)
 
void MESH_OT_blend_from_shape (wmOperatorType *ot)
 
void MESH_OT_sort_elements (wmOperatorType *ot)
 
void MESH_OT_uvs_rotate (wmOperatorType *ot)
 
void MESH_OT_uvs_reverse (wmOperatorType *ot)
 
void MESH_OT_colors_rotate (wmOperatorType *ot)
 
void MESH_OT_colors_reverse (wmOperatorType *ot)
 
void MESH_OT_delete (wmOperatorType *ot)
 
void MESH_OT_delete_loose (wmOperatorType *ot)
 
void MESH_OT_edge_collapse (wmOperatorType *ot)
 
void MESH_OT_faces_shade_smooth (wmOperatorType *ot)
 
void MESH_OT_faces_shade_flat (wmOperatorType *ot)
 
void blender::ed::mesh::MESH_OT_set_sharpness_by_angle (wmOperatorType *ot)
 
void MESH_OT_split (wmOperatorType *ot)
 
void MESH_OT_edge_rotate (wmOperatorType *ot)
 
void MESH_OT_hide (wmOperatorType *ot)
 
void MESH_OT_reveal (wmOperatorType *ot)
 
void MESH_OT_mark_seam (wmOperatorType *ot)
 
void MESH_OT_mark_sharp (wmOperatorType *ot)
 
void MESH_OT_flip_normals (wmOperatorType *ot)
 
void MESH_OT_solidify (wmOperatorType *ot)
 
void MESH_OT_separate (wmOperatorType *ot)
 
void MESH_OT_fill (wmOperatorType *ot)
 
void MESH_OT_fill_grid (wmOperatorType *ot)
 
void MESH_OT_fill_holes (wmOperatorType *ot)
 
void MESH_OT_beautify_fill (wmOperatorType *ot)
 
void MESH_OT_quads_convert_to_tris (wmOperatorType *ot)
 
void MESH_OT_tris_convert_to_quads (wmOperatorType *ot)
 
void MESH_OT_decimate (wmOperatorType *ot)
 
void MESH_OT_dissolve_verts (wmOperatorType *ot)
 
void MESH_OT_dissolve_edges (wmOperatorType *ot)
 
void MESH_OT_dissolve_faces (wmOperatorType *ot)
 
void MESH_OT_dissolve_mode (wmOperatorType *ot)
 
void MESH_OT_dissolve_limited (wmOperatorType *ot)
 
void MESH_OT_dissolve_degenerate (wmOperatorType *ot)
 
void MESH_OT_delete_edgeloop (wmOperatorType *ot)
 
void MESH_OT_edge_face_add (wmOperatorType *ot)
 
void MESH_OT_duplicate (wmOperatorType *ot)
 
void MESH_OT_merge (wmOperatorType *ot)
 
void MESH_OT_remove_doubles (wmOperatorType *ot)
 
void MESH_OT_poke (wmOperatorType *ot)
 
void MESH_OT_point_normals (wmOperatorType *ot)
 
void MESH_OT_merge_normals (wmOperatorType *ot)
 
void MESH_OT_split_normals (wmOperatorType *ot)
 
void MESH_OT_normals_tools (wmOperatorType *ot)
 
void MESH_OT_set_normals_from_faces (wmOperatorType *ot)
 
void MESH_OT_average_normals (wmOperatorType *ot)
 
void MESH_OT_smooth_normals (wmOperatorType *ot)
 
void MESH_OT_mod_weighted_strength (wmOperatorType *ot)
 
void MESH_OT_flip_quad_tessellation (wmOperatorType *ot)
 
void MESH_OT_paint_mask_extract (wmOperatorType *ot)
 
void MESH_OT_face_set_extract (wmOperatorType *ot)
 
void MESH_OT_paint_mask_slice (wmOperatorType *ot)
 
wmKeyMappoint_normals_modal_keymap (wmKeyConfig *keyconf)
 
void MESH_OT_uv_texture_add (wmOperatorType *ot)
 
void MESH_OT_uv_texture_remove (wmOperatorType *ot)
 
void MESH_OT_customdata_mask_clear (wmOperatorType *ot)
 
void MESH_OT_customdata_skin_add (wmOperatorType *ot)
 
void MESH_OT_customdata_skin_clear (wmOperatorType *ot)
 
void MESH_OT_customdata_custom_splitnormals_add (wmOperatorType *ot)
 
void MESH_OT_customdata_custom_splitnormals_clear (wmOperatorType *ot)
 

Variables

EnumPropertyItemcorner_type_items
 

Function Documentation

◆ bevel_modal_keymap()

◆ EDBM_elem_from_index_any()

◆ EDBM_elem_from_index_any_multi()

BMElem * EDBM_elem_from_index_any_multi ( const Scene * scene,
ViewLayer * view_layer,
uint object_index,
uint elem_index,
Object ** r_obedit )

◆ EDBM_elem_from_selectmode()

BMElem * EDBM_elem_from_selectmode ( BMEditMesh * em,
BMVert * eve,
BMEdge * eed,
BMFace * efa )

◆ EDBM_elem_to_index_any()

int EDBM_elem_to_index_any ( BMEditMesh * em,
BMElem * ele )

Used when we want to store a single index for any vert/edge/face.

Intended for use with operators.

Definition at line 1742 of file editmesh_utils.cc.

References BLI_assert, bm, BMEditMesh::bm, BM_EDGE, BM_elem_index_get, BM_FACE, BM_VERT, BMesh::elem_index_dirty, BMElem::head, BMHeader::htype, BMesh::totedge, and BMesh::totvert.

Referenced by EDBM_elem_to_index_any_multi(), and edbm_shortest_path_pick_invoke().

◆ EDBM_elem_to_index_any_multi()

◆ edbm_extrude_edges_indiv()

◆ EDBM_mesh_knife()

void EDBM_mesh_knife ( ViewContext * vc,
blender::Span< Object * > objects,
LinkNode * polys,
bool use_tag,
bool cut_through )
Parameters
use_tagWhen set, tag all faces inside the polylines.

◆ EDBM_op_call_and_selectf()

◆ EDBM_op_call_silentf()

bool EDBM_op_call_silentf ( BMEditMesh * em,
const char * fmt,
... )

Same as above, but doesn't report errors.

Definition at line 236 of file editmesh_utils.cc.

References bm, BMEditMesh::bm, BMO_FLAG_DEFAULTS, BMO_op_exec(), BMO_op_vinitf(), and EDBM_op_finish().

◆ EDBM_op_callf()

◆ EDBM_op_finish()

◆ EDBM_op_init()

◆ EDBM_stats_update()

◆ EDBM_view3d_poll()

◆ knifetool_modal_keymap()

◆ MESH_GGT_spin()

◆ MESH_GGT_spin_redo()

◆ MESH_OT_attribute_set()

◆ MESH_OT_average_normals()

◆ MESH_OT_beautify_fill()

◆ MESH_OT_bevel()

◆ MESH_OT_bisect()

◆ MESH_OT_blend_from_shape()

◆ MESH_OT_bridge_edge_loops()

◆ MESH_OT_colors_reverse()

◆ MESH_OT_colors_rotate()

◆ MESH_OT_convex_hull()

void MESH_OT_convex_hull ( wmOperatorType * ot)

Referenced by ED_operatortypes_mesh().

◆ MESH_OT_customdata_custom_splitnormals_add()

◆ MESH_OT_customdata_custom_splitnormals_clear()

◆ MESH_OT_customdata_mask_clear()

◆ MESH_OT_customdata_skin_add()

◆ MESH_OT_customdata_skin_clear()

◆ MESH_OT_decimate()

◆ MESH_OT_delete()

◆ MESH_OT_delete_edgeloop()

◆ MESH_OT_delete_loose()

◆ MESH_OT_dissolve_degenerate()

◆ MESH_OT_dissolve_edges()

◆ MESH_OT_dissolve_faces()

◆ MESH_OT_dissolve_limited()

◆ MESH_OT_dissolve_mode()

◆ MESH_OT_dissolve_verts()

◆ MESH_OT_dupli_extrude_cursor()

◆ MESH_OT_duplicate()

◆ MESH_OT_edge_collapse()

◆ MESH_OT_edge_face_add()

◆ MESH_OT_edge_rotate()

◆ MESH_OT_edge_split()

◆ MESH_OT_edgering_select()

◆ MESH_OT_edges_select_sharp()

◆ MESH_OT_extrude_context()

◆ MESH_OT_extrude_edges_indiv()

◆ MESH_OT_extrude_faces_indiv()

◆ MESH_OT_extrude_region()

◆ MESH_OT_extrude_repeat()

◆ MESH_OT_extrude_verts_indiv()

◆ MESH_OT_face_make_planar()

◆ MESH_OT_face_set_extract()

◆ MESH_OT_face_split_by_edges()

◆ MESH_OT_faces_select_linked_flat()

◆ MESH_OT_faces_shade_flat()

◆ MESH_OT_faces_shade_smooth()

◆ MESH_OT_fill()

◆ MESH_OT_fill_grid()

◆ MESH_OT_fill_holes()

◆ MESH_OT_flip_normals()

◆ MESH_OT_flip_quad_tessellation()

◆ MESH_OT_hide()

◆ MESH_OT_inset()

◆ MESH_OT_intersect()

◆ MESH_OT_intersect_boolean()

◆ MESH_OT_knife_project()

◆ MESH_OT_knife_tool()

◆ MESH_OT_loop_multi_select()

◆ MESH_OT_loop_select()

◆ MESH_OT_loop_to_region()

◆ MESH_OT_loopcut()

◆ MESH_OT_mark_seam()

◆ MESH_OT_mark_sharp()

◆ MESH_OT_merge()

◆ MESH_OT_merge_normals()

◆ MESH_OT_mod_weighted_strength()

◆ MESH_OT_normals_make_consistent()

◆ MESH_OT_normals_tools()

◆ MESH_OT_offset_edge_loops()

◆ MESH_OT_paint_mask_extract()

◆ MESH_OT_paint_mask_slice()

◆ MESH_OT_point_normals()

◆ MESH_OT_poke()

◆ MESH_OT_polybuild_delete_at_cursor()

◆ MESH_OT_polybuild_dissolve_at_cursor()

◆ MESH_OT_polybuild_face_at_cursor()

◆ MESH_OT_polybuild_split_at_cursor()

◆ MESH_OT_polybuild_transform_at_cursor()

◆ MESH_OT_primitive_circle_add()

◆ MESH_OT_primitive_cone_add()

◆ MESH_OT_primitive_cube_add()

◆ MESH_OT_primitive_cube_add_gizmo()

◆ MESH_OT_primitive_cylinder_add()

◆ MESH_OT_primitive_grid_add()

◆ MESH_OT_primitive_ico_sphere_add()

◆ MESH_OT_primitive_monkey_add()

◆ MESH_OT_primitive_plane_add()

◆ MESH_OT_primitive_uv_sphere_add()

◆ MESH_OT_quads_convert_to_tris()

◆ MESH_OT_region_to_loop()

◆ MESH_OT_remove_doubles()

◆ MESH_OT_reveal()

◆ MESH_OT_rip()

◆ MESH_OT_rip_edge()

◆ MESH_OT_screw()

◆ MESH_OT_select_all()

◆ MESH_OT_select_axis()

◆ MESH_OT_select_by_attribute()

◆ MESH_OT_select_face_by_sides()

◆ MESH_OT_select_interior_faces()

◆ MESH_OT_select_less()

◆ MESH_OT_select_linked()

◆ MESH_OT_select_linked_pick()

◆ MESH_OT_select_loose()

◆ MESH_OT_select_mirror()

◆ MESH_OT_select_mode()

◆ MESH_OT_select_more()

◆ MESH_OT_select_non_manifold()

◆ MESH_OT_select_nth()

◆ MESH_OT_select_random()

◆ MESH_OT_select_similar()

◆ MESH_OT_select_similar_region()

◆ MESH_OT_select_ungrouped()

◆ MESH_OT_separate()

◆ MESH_OT_set_normals_from_faces()

◆ MESH_OT_shape_propagate_to_all()

◆ MESH_OT_shortest_path_pick()

◆ MESH_OT_shortest_path_select()

◆ MESH_OT_smooth_normals()

◆ MESH_OT_solidify()

◆ MESH_OT_sort_elements()

◆ MESH_OT_spin()

◆ MESH_OT_split()

◆ MESH_OT_split_normals()

◆ MESH_OT_subdivide()

◆ MESH_OT_subdivide_edgering()

◆ MESH_OT_symmetrize()

◆ MESH_OT_symmetry_snap()

◆ MESH_OT_tris_convert_to_quads()

◆ MESH_OT_unsubdivide()

◆ MESH_OT_uv_texture_add()

◆ MESH_OT_uv_texture_remove()

◆ MESH_OT_uvs_reverse()

◆ MESH_OT_uvs_rotate()

◆ MESH_OT_vert_connect()

◆ MESH_OT_vert_connect_concave()

◆ MESH_OT_vert_connect_nonplanar()

◆ MESH_OT_vert_connect_path()

◆ MESH_OT_vertices_smooth()

◆ MESH_OT_vertices_smooth_laplacian()

◆ MESH_OT_wireframe()

◆ point_normals_modal_keymap()

Variable Documentation

◆ corner_type_items

EnumPropertyItem* corner_type_items
extern