Blender  V3.3
Functions
bmesh_operators_private.h File Reference

Go to the source code of this file.

Functions

void bmo_average_vert_facedata_exec (BMesh *bm, BMOperator *op)
 
void bmo_beautify_fill_exec (BMesh *bm, BMOperator *op)
 
void bmo_bevel_exec (BMesh *bm, BMOperator *op)
 
void bmo_bisect_edges_exec (BMesh *bm, BMOperator *op)
 
void bmo_bisect_plane_exec (BMesh *bm, BMOperator *op)
 
void bmo_bmesh_to_mesh_exec (BMesh *bm, BMOperator *op)
 
void bmo_bridge_loops_exec (BMesh *bm, BMOperator *op)
 
void bmo_collapse_exec (BMesh *bm, BMOperator *op)
 
void bmo_collapse_uvs_exec (BMesh *bm, BMOperator *op)
 
void bmo_connect_verts_exec (BMesh *bm, BMOperator *op)
 
void bmo_connect_verts_concave_exec (BMesh *bm, BMOperator *op)
 
void bmo_connect_verts_nonplanar_exec (BMesh *bm, BMOperator *op)
 
void bmo_connect_vert_pair_exec (BMesh *bm, BMOperator *op)
 
void bmo_contextual_create_exec (BMesh *bm, BMOperator *op)
 
void bmo_convex_hull_exec (BMesh *bm, BMOperator *op)
 
void bmo_create_circle_exec (BMesh *bm, BMOperator *op)
 
void bmo_create_cone_exec (BMesh *bm, BMOperator *op)
 
void bmo_create_cube_exec (BMesh *bm, BMOperator *op)
 
void bmo_create_grid_exec (BMesh *bm, BMOperator *op)
 
void bmo_create_icosphere_exec (BMesh *bm, BMOperator *op)
 
void bmo_create_monkey_exec (BMesh *bm, BMOperator *op)
 
void bmo_create_uvsphere_exec (BMesh *bm, BMOperator *op)
 
void bmo_create_vert_exec (BMesh *bm, BMOperator *op)
 
void bmo_delete_exec (BMesh *bm, BMOperator *op)
 
void bmo_dissolve_edges_exec (BMesh *bm, BMOperator *op)
 
void bmo_dissolve_faces_exec (BMesh *bm, BMOperator *op)
 
void bmo_dissolve_verts_exec (BMesh *bm, BMOperator *op)
 
void bmo_dissolve_limit_exec (BMesh *bm, BMOperator *op)
 
void bmo_dissolve_degenerate_exec (BMesh *bm, BMOperator *op)
 
void bmo_duplicate_exec (BMesh *bm, BMOperator *op)
 
void bmo_edgeloop_fill_exec (BMesh *bm, BMOperator *op)
 
void bmo_face_attribute_fill_exec (BMesh *bm, BMOperator *op)
 
void bmo_holes_fill_exec (BMesh *bm, BMOperator *op)
 
void bmo_edgenet_fill_exec (BMesh *bm, BMOperator *op)
 
void bmo_edgenet_prepare_exec (BMesh *bm, BMOperator *op)
 
void bmo_extrude_discrete_faces_exec (BMesh *bm, BMOperator *op)
 
void bmo_extrude_edge_only_exec (BMesh *bm, BMOperator *op)
 
void bmo_extrude_face_region_exec (BMesh *bm, BMOperator *op)
 
void bmo_extrude_vert_indiv_exec (BMesh *bm, BMOperator *op)
 
void bmo_find_doubles_exec (BMesh *bm, BMOperator *op)
 
void bmo_grid_fill_exec (BMesh *bm, BMOperator *op)
 
void bmo_inset_individual_exec (BMesh *bm, BMOperator *op)
 
void bmo_inset_region_exec (BMesh *bm, BMOperator *op)
 
void bmo_join_triangles_exec (BMesh *bm, BMOperator *op)
 
void bmo_mesh_to_bmesh_exec (BMesh *bm, BMOperator *op)
 
void bmo_mirror_exec (BMesh *bm, BMOperator *op)
 
void bmo_object_load_bmesh_exec (BMesh *bm, BMOperator *op)
 
void bmo_pointmerge_exec (BMesh *bm, BMOperator *op)
 
void bmo_pointmerge_facedata_exec (BMesh *bm, BMOperator *op)
 
void bmo_recalc_face_normals_exec (BMesh *bm, BMOperator *op)
 
void bmo_poke_exec (BMesh *bm, BMOperator *op)
 
void bmo_offset_edgeloops_exec (BMesh *bm, BMOperator *op)
 
void bmo_planar_faces_exec (BMesh *bm, BMOperator *op)
 
void bmo_region_extend_exec (BMesh *bm, BMOperator *op)
 
void bmo_remove_doubles_exec (BMesh *bm, BMOperator *op)
 
void bmo_reverse_colors_exec (BMesh *bm, BMOperator *op)
 
void bmo_reverse_faces_exec (BMesh *bm, BMOperator *op)
 
void bmo_reverse_uvs_exec (BMesh *bm, BMOperator *op)
 
void bmo_rotate_colors_exec (BMesh *bm, BMOperator *op)
 
void bmo_rotate_edges_exec (BMesh *bm, BMOperator *op)
 
void bmo_rotate_exec (BMesh *bm, BMOperator *op)
 
void bmo_rotate_uvs_exec (BMesh *bm, BMOperator *op)
 
void bmo_scale_exec (BMesh *bm, BMOperator *op)
 
void bmo_smooth_vert_exec (BMesh *bm, BMOperator *op)
 
void bmo_smooth_laplacian_vert_exec (BMesh *bm, BMOperator *op)
 
void bmo_solidify_face_region_exec (BMesh *bm, BMOperator *op)
 
void bmo_spin_exec (BMesh *bm, BMOperator *op)
 
void bmo_split_edges_exec (BMesh *bm, BMOperator *op)
 
void bmo_split_exec (BMesh *bm, BMOperator *op)
 
void bmo_subdivide_edges_exec (BMesh *bm, BMOperator *op)
 
void bmo_subdivide_edgering_exec (BMesh *bm, BMOperator *op)
 
void bmo_symmetrize_exec (BMesh *bm, BMOperator *op)
 
void bmo_transform_exec (BMesh *bm, BMOperator *op)
 
void bmo_translate_exec (BMesh *bm, BMOperator *op)
 
void bmo_triangle_fill_exec (BMesh *bm, BMOperator *op)
 
void bmo_triangulate_exec (BMesh *bm, BMOperator *op)
 
void bmo_unsubdivide_exec (BMesh *bm, BMOperator *op)
 
void bmo_weld_verts_exec (BMesh *bm, BMOperator *op)
 
void bmo_wireframe_exec (BMesh *bm, BMOperator *op)
 

Function Documentation

◆ bmo_average_vert_facedata_exec()

void bmo_average_vert_facedata_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_beautify_fill_exec()

void bmo_beautify_fill_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_bevel_exec()

void bmo_bevel_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_bisect_edges_exec()

void bmo_bisect_edges_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_bisect_plane_exec()

void bmo_bisect_plane_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_bmesh_to_mesh_exec()

void bmo_bmesh_to_mesh_exec ( BMesh bm,
BMOperator op 
)

Definition at line 49 of file bmo_mesh_convert.c.

References bm, BM_mesh_bm_to_me(), BMO_slot_ptr_get(), G, and BMOperator::slots_in.

◆ bmo_bridge_loops_exec()

void bmo_bridge_loops_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_collapse_exec()

void bmo_collapse_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_collapse_uvs_exec()

void bmo_collapse_uvs_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_connect_vert_pair_exec()

void bmo_connect_vert_pair_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_connect_verts_concave_exec()

void bmo_connect_verts_concave_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_connect_verts_exec()

void bmo_connect_verts_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_connect_verts_nonplanar_exec()

void bmo_connect_verts_nonplanar_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_contextual_create_exec()

void bmo_contextual_create_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_convex_hull_exec()

void bmo_convex_hull_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_create_circle_exec()

void bmo_create_circle_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_create_cone_exec()

void bmo_create_cone_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_create_cube_exec()

void bmo_create_cube_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_create_grid_exec()

void bmo_create_grid_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_create_icosphere_exec()

void bmo_create_icosphere_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_create_monkey_exec()

void bmo_create_monkey_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_create_uvsphere_exec()

void bmo_create_uvsphere_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_create_vert_exec()

void bmo_create_vert_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_delete_exec()

void bmo_delete_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_dissolve_degenerate_exec()

void bmo_dissolve_degenerate_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_dissolve_edges_exec()

void bmo_dissolve_edges_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_dissolve_faces_exec()

void bmo_dissolve_faces_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_dissolve_limit_exec()

void bmo_dissolve_limit_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_dissolve_verts_exec()

void bmo_dissolve_verts_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_duplicate_exec()

void bmo_duplicate_exec ( BMesh bm,
BMOperator op 
)

Duplicate Operator

Duplicates verts, edges and faces of a mesh.

INPUT SLOTS:

BMOP_DUPE_VINPUT: Buffer containing pointers to mesh vertices to be duplicated BMOP_DUPE_EINPUT: Buffer containing pointers to mesh edges to be duplicated BMOP_DUPE_FINPUT: Buffer containing pointers to mesh faces to be duplicated

OUTPUT SLOTS:

BMOP_DUPE_VORIGINAL: Buffer containing pointers to the original mesh vertices BMOP_DUPE_EORIGINAL: Buffer containing pointers to the original mesh edges BMOP_DUPE_FORIGINAL: Buffer containing pointers to the original mesh faces BMOP_DUPE_VNEW: Buffer containing pointers to the new mesh vertices BMOP_DUPE_ENEW: Buffer containing pointers to the new mesh edges BMOP_DUPE_FNEW: Buffer containing pointers to the new mesh faces

Definition at line 327 of file bmo_dupe.c.

References bm, BM_ALL_NOLOOP, bmo_mesh_copy(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_copy, BMO_slot_ptr_get(), DUPE_INPUT, DUPE_NEW, BMOperator::slots_in, and BMOperator::slots_out.

◆ bmo_edgeloop_fill_exec()

void bmo_edgeloop_fill_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_edgenet_fill_exec()

void bmo_edgenet_fill_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_edgenet_prepare_exec()

void bmo_edgenet_prepare_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_extrude_discrete_faces_exec()

void bmo_extrude_discrete_faces_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_extrude_edge_only_exec()

void bmo_extrude_edge_only_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_extrude_face_region_exec()

void bmo_extrude_face_region_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_extrude_vert_indiv_exec()

void bmo_extrude_vert_indiv_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_face_attribute_fill_exec()

void bmo_face_attribute_fill_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_find_doubles_exec()

void bmo_find_doubles_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_grid_fill_exec()

void bmo_grid_fill_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_holes_fill_exec()

void bmo_holes_fill_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_inset_individual_exec()

void bmo_inset_individual_exec ( BMesh bm,
BMOperator op 
)

Individual Face Inset. Find all tagged faces (f), duplicate edges around faces, inset verts of created edges, create new faces between old and new edges, fill face between connected new edges, kill old face (f).

Definition at line 401 of file bmo_inset.c.

References BLI_memarena_clear(), BLI_memarena_free(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, bm, BM_ELEM_TAG, BM_FACE, BM_mesh_elem_hflag_disable_all(), bmo_face_inset_individual(), BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_buffer_hflag_enable(), BMO_slot_float_get(), ELE_NEW, NULL, BMOperator::slots_in, and BMOperator::slots_out.

◆ bmo_inset_region_exec()

void bmo_inset_region_exec ( BMesh bm,
BMOperator op 
)

This case where only one edge attached to #v_split is used. i.e. the face to inset is on a boundary.

                 We want the inset to align flush with the
                 boundary edge, not the normal of the interior
            <--- edge which would give an unsightly bump.
--+-------------------------+---------------+--
  |^v_other    ^e_other    /^v_split        |
  |                       /                 |
  |                      /                  |
  |                     / <- tag split edge |
  |                    /                    |
  |                   /                     |
  |                  /                      |
--+-----------------+-----------------------+--
  |                                         |
  |                                         |
Note
The fact we are doing location comparisons on verts that are moved about doesn't matter because the direction will remain the same in this case.

Loops vars from newly created face (face_a/b)

             l_a->e & l_b->prev->e
+------------------------------------+
|\ l_a                          l_b /|
| \ l_a->prev->e            l_b->e / |
|  \ l_a->prev          l_b->next /  |
|   +----------------------------+   |
|   |l_a_other    ^     l_b_other|   |
|   |        l_b->next->e &...   |   |
|   |        l_a->prev->prev->e  |   |
|   |        (inset face)        |   |
|   +----------------------------+   |
|  /                              \  |
| /                                \ |
|/                                  |
+------------------------------------+

Definition at line 651 of file bmo_inset.c.

References add_v3_v3(), add_v3_v3v3(), InterpFace::axis_mat, BLI_assert, BLI_ghash_free(), BLI_ghash_ptr_new(), BLI_memarena_alloc(), BLI_memarena_free(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, InterpFace::blocks_l, InterpFace::blocks_v, bm, BM_CREATE_NOP, BM_EDGE, BM_edge_calc_face_tangent(), BM_edge_calc_length(), BM_edge_create(), bm_edge_info_average_length_with_fallback(), BM_edge_is_boundary(), BM_edge_is_manifold(), bm_edge_is_mixed_face_tag(), BM_edge_ordered_verts_ex(), BM_edge_other_loop(), BM_edge_other_vert(), BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_elem_attrs_copy(), BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_elem_index_get, BM_elem_index_set, BM_ELEM_TAG, BM_FACE, BM_face_copy_shared(), BM_face_create_verts(), BM_FACE_FIRST_LOOP, BM_face_interp_from_face_ex(), BM_FACES_OF_VERT, bm_interp_face_free(), bm_interp_face_store(), BM_ITER_ELEM, BM_ITER_MESH, BM_ITER_MESH_INDEX, bm_loop_customdata_merge(), BM_loop_other_vert_loop(), BM_mesh_elem_hflag_disable_all(), BM_mesh_elem_hflag_enable_all(), BM_VERT, BM_vert_calc_shell_factor(), BM_vert_create(), BM_vert_splice(), BM_VERTS_OF_EDGE, BM_VERTS_OF_MESH, bmesh_kernel_edge_separate(), bmesh_kernel_vert_separate(), BMO_face_flag_enable, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_buffer_hflag_disable(), BMO_slot_buffer_hflag_enable(), BMO_slot_float_get(), BMVert::co, compare_v3v3(), copy_v3_v3(), InterpFace::cos_2d, cross_v3_v3v3(), CustomData_bmesh_copy_data(), CustomData_bmesh_free_block_data(), CustomData_has_math(), BMHeader::data, dot_v3v3(), BMVert::e, BMLoop::e, e, SplitEdgeInfo::e_new, SplitEdgeInfo::e_old, ELE_NEW, BMesh::elem_index_dirty, BMLoop::f, InterpFace::f, float(), BMLoop::head, if(), BMEdge::l, l, SplitEdgeInfo::l, l_b, BMesh::ldata, len_squared_v3(), len_squared_v3v3(), blender::math::length(), SplitEdgeInfo::length, madd_v3_v3fl(), madd_v3_v3v3fl(), MEM_callocN, MEM_freeN, MEM_mallocN, mid_v3_v3v3(), mul_v3_fl(), negate_v3(), BMLoop::next, BMVert::no, BMFace::no, SplitEdgeInfo::no, normalize_v3(), NULL, BMLoop::prev, shell_v3v3_mid_normalized_to_dist(), shell_v3v3_normalized_to_dist(), BMOperator::slots_in, BMOperator::slots_out, sub_v3_v3v3(), BMesh::totface, BMesh::totvert, BMLoop::v, v, BMEdge::v1, v1, BMEdge::v2, v2, VERT_ORIG_GET, VERT_ORIG_REMOVE, VERT_ORIG_STORE, and zero_v3().

◆ bmo_join_triangles_exec()

void bmo_join_triangles_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_mesh_to_bmesh_exec()

void bmo_mesh_to_bmesh_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_mirror_exec()

void bmo_mirror_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_object_load_bmesh_exec()

void bmo_object_load_bmesh_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_offset_edgeloops_exec()

void bmo_offset_edgeloops_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_planar_faces_exec()

void bmo_planar_faces_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_pointmerge_exec()

void bmo_pointmerge_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_pointmerge_facedata_exec()

void bmo_pointmerge_facedata_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_poke_exec()

void bmo_poke_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_recalc_face_normals_exec()

void bmo_recalc_face_normals_exec ( BMesh bm,
BMOperator op 
)

Put normal to the outside, and set the first direction flags in edges

then check the object, and set directions / direction-flags: but only for edges with 1 or 2 faces this is in fact the 'select connected'

in case all faces were not done: start over with 'find the ultimate ...'.

Definition at line 254 of file bmo_normals.c.

References bm, BM_EDGE, BM_FACE, BM_face_at_index(), BM_mesh_calc_face_groups(), BM_mesh_elem_table_ensure(), BMO_face_flag_test_bool, bmo_recalc_face_normals_array(), bmo_recalc_normal_loop_filter_cb(), BMO_slot_buffer_flag_enable(), FACE_FLAG, MEM_freeN, MEM_mallocN, NULL, BMOperator::slots_in, and BMesh::totface.

◆ bmo_region_extend_exec()

void bmo_region_extend_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_remove_doubles_exec()

void bmo_remove_doubles_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_reverse_colors_exec()

void bmo_reverse_colors_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_reverse_faces_exec()

void bmo_reverse_faces_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_reverse_uvs_exec()

void bmo_reverse_uvs_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_rotate_colors_exec()

void bmo_rotate_colors_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_rotate_edges_exec()

void bmo_rotate_edges_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_rotate_exec()

void bmo_rotate_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_rotate_uvs_exec()

void bmo_rotate_uvs_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_scale_exec()

void bmo_scale_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_smooth_laplacian_vert_exec()

void bmo_smooth_laplacian_vert_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_smooth_vert_exec()

void bmo_smooth_vert_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_solidify_face_region_exec()

void bmo_solidify_face_region_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_spin_exec()

void bmo_spin_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_split_edges_exec()

void bmo_split_edges_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_split_exec()

void bmo_split_exec ( BMesh bm,
BMOperator op 
)

Split Operator

Duplicates verts, edges and faces of a mesh but also deletes the originals.

INPUT SLOTS:

BMOP_DUPE_VINPUT: Buffer containing pointers to mesh vertices to be split BMOP_DUPE_EINPUT: Buffer containing pointers to mesh edges to be split BMOP_DUPE_FINPUT: Buffer containing pointers to mesh faces to be split

OUTPUT SLOTS:

BMOP_DUPE_VOUTPUT: Buffer containing pointers to the split mesh vertices BMOP_DUPE_EOUTPUT: Buffer containing pointers to the split mesh edges BMOP_DUPE_FOUTPUT: Buffer containing pointers to the split mesh faces

Note
Lower level uses of this operator may want to use BM_mesh_separate_faces Since it's faster for the 'use_only_faces' case.

Definition at line 390 of file bmo_dupe.c.

References bm, BM_ALL_NOLOOP, BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_FACES_OF_EDGE, BM_ITER_ELEM, BM_ITER_MESH, BM_VERTS_OF_MESH, BMO_edge_flag_enable, BMO_edge_flag_test, BMO_face_flag_test, BMO_mesh_delete_oflag_context(), BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_copy, BMO_vert_flag_enable, DEL_FACES, e, BMOperator::flag, BMOperator::slots_in, SPLIT_INPUT, and v.

◆ bmo_subdivide_edgering_exec()

void bmo_subdivide_edgering_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_subdivide_edges_exec()

void bmo_subdivide_edges_exec ( BMesh bm,
BMOperator op 
)

Definition at line 900 of file bmo_subdivide.c.

References Freestyle::a, usdtokens::b(), BLI_array_clear, BLI_array_declare, BLI_array_free, BLI_array_grow_items, BLI_array_len, BLI_assert, BLI_rng_free(), BLI_rng_get_float(), BLI_rng_new_srandom(), BLI_stack_discard(), BLI_stack_free(), BLI_stack_is_empty(), BLI_stack_new, BLI_stack_peek(), BLI_stack_push_r(), bm, BM_ALL_NOLOOP, BM_CHECK_ELEMENT, BM_data_layer_add(), BM_data_layer_free_n(), BM_EDGE, BM_edge_exists(), BM_edge_share_vert_check(), BM_ELEM_CD_GET_VOID_P, BM_FACE, BM_face_split(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_LOOPS_OF_VERT, bm_subdivide_multicut(), BM_vert_in_face(), BM_VERTS_OF_MESH, BMO_edge_flag_enable, BMO_edge_flag_test, BMO_face_flag_enable, BMO_face_flag_test, BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), BMO_slot_get(), BMO_slot_int_get(), BMO_slot_map_to_flag(), bmo_subd_init_shape_info(), BMO_vert_flag_test, BMOpSlot::buf, CD_SHAPEKEY, BMVert::co, SubDPattern::connectexec, copy_v3_v3(), BMOpSlot::data, dot_v3v3(), BMLoop::e, EDGE_PERCENT, ELE_INNER, ELE_SPLIT, BMLoop::f, fabsf, SubDFaceData::face, FACE_CUSTOMFILL, FLT_FACE_SPLIT_EPSILON, if(), l, BMFace::len, BMOpSlot::len, SubDPattern::len, BMLoop::next, normalize_v3(), NULL, params, SubDFaceData::pat, patterns, PATTERNS_TOT, BMLoop::prev, quad_1edge, quad_2edge_fan, quad_2edge_innervert, quad_2edge_path, quad_4edge, seed, SubDPattern::seledges, BMOperator::slots_in, BMOperator::slots_out, smooth(), SubDFaceData::start, sub_v3_v3v3(), SUBD_CORNER_FAN, SUBD_CORNER_INNERVERT, SUBD_CORNER_PATH, SUBD_SPLIT, SubDFaceData::totedgesel, tri_1edge, tri_3edge, BMLoop::v, v, BMEdge::v1, BMEdge::v2, BMesh::vdata, and verts.

◆ bmo_symmetrize_exec()

void bmo_symmetrize_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_transform_exec()

void bmo_transform_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_translate_exec()

void bmo_translate_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_triangle_fill_exec()

void bmo_triangle_fill_exec ( BMesh bm,
BMOperator op 
)

Definition at line 47 of file bmo_triangulate.c.

References add_v3_v3(), BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_len(), BLI_ghash_lookup(), BLI_ghash_ptr_new_ex(), BLI_scanfill_begin(), BLI_scanfill_calc_ex(), BLI_SCANFILL_CALC_HOLES, BLI_SCANFILL_CALC_LOOSE, BLI_SCANFILL_CALC_POLYS, BLI_scanfill_edge_add(), BLI_scanfill_end(), BLI_scanfill_vert_add(), BLI_sortutil_cmp_float_reverse(), bm, BM_CREATE_NO_DOUBLE, BM_EDGE, BM_edge_exists(), BM_edge_is_boundary(), BM_edge_is_manifold(), BM_edge_kill(), BM_edge_other_vert(), BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_FACE, BM_face_create_quad_tri(), BM_faces_join_pair(), BM_ITER_ELEM, BM_ITER_MESH_MUTABLE, BM_LOOPS_OF_FACE, BMO_edge_flag_enable, BMO_edge_flag_test, BMO_face_flag_enable, BMO_ITER, BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_buffer_len(), BMO_slot_vec_get(), BMVert::co, copy_v3_v3(), cross_v3_v3v3(), dot_v3v3(), BMLoop::e, e, EDGE_MARK, ELE_NEW, ScanFillContext::fillfacebase, ScanFillContext::fillvertbase, ListBase::first, BMOperator::flag, is_zero_v3(), l, len_squared_v3(), LIKELY, MEM_freeN, MEM_mallocN, negate_v3(), ScanFillVert::next, ScanFillFace::next, BMVert::no, SortNormal::no, normal, normalize_v3(), NULL, ScanFillVert::p, BMOperator::slots_in, BMOperator::slots_out, sub_v3_v3v3(), SWAP, ScanFillVert::tmp, UNLIKELY, UNPACK2, v, ScanFillFace::v1, ScanFillFace::v2, ScanFillFace::v3, and SortNormal::value.

◆ bmo_triangulate_exec()

void bmo_triangulate_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_unsubdivide_exec()

void bmo_unsubdivide_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_weld_verts_exec()

void bmo_weld_verts_exec ( BMesh bm,
BMOperator op 
)

◆ bmo_wireframe_exec()

void bmo_wireframe_exec ( BMesh bm,
BMOperator op 
)