Blender
V3.3
|
Go to the source code of this file.
void bmo_average_vert_facedata_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 370 of file bmo_removedoubles.c.
References bm, BM_ELEM_CD_GET_VOID_P, BM_ITER_ELEM, BM_LOOPS_OF_VERT, BM_VERT, BMO_ITER, CustomData_data_add(), CustomData_data_copy_value(), CustomData_data_dominmax(), CustomData_data_initminmax(), CustomData_data_multiply(), CustomData_layer_has_math(), l, CustomData::layers, BMesh::ldata, max, min, offset, CustomDataLayer::offset, BMOperator::slots_in, CustomData::totlayer, type, CustomDataLayer::type, and v.
void bmo_beautify_fill_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 21 of file bmo_beautify.c.
References bm, BM_EDGE, BM_edge_rotate_check(), BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_ELEM_TAG, BM_FACE, BM_ITER_MESH, BM_mesh_beautify_fill(), BMO_face_flag_enable, BMO_face_flag_test, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_buffer_len(), BMO_slot_int_get(), e, EDGE_RESTRICT_DEGENERATE, ELE_NEW, FACE_MARK, BMFace::len, MEM_freeN, MEM_mallocN, BMOperator::slots_in, BMOperator::slots_out, and VERT_RESTRICT_TAG.
void bmo_bevel_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 18 of file bmo_bevel.c.
References bm, BM_EDGE, BM_edge_is_manifold(), BM_elem_flag_enable, BM_ELEM_TAG, BM_FACE, BM_mesh_bevel(), BM_mesh_elem_hflag_disable_all(), BM_VERT, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_hflag(), BMO_slot_float_get(), BMO_slot_int_get(), BMO_slot_ptr_get(), e, material, NULL, offset, BMOperator::slots_in, BMOperator::slots_out, and v.
void bmo_bisect_edges_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 1386 of file bmo_subdivide.c.
References bm, BM_ALL_NOLOOP, BM_data_layer_add(), BM_data_layer_free_n(), BM_EDGE, bm_subdivide_multicut(), BMO_ITER, BMO_slot_buffer_from_enabled_flag(), BMO_slot_get(), BMO_slot_int_get(), BMO_slot_map_to_flag(), bmo_subd_init_shape_info(), CD_SHAPEKEY, e, EDGE_PERCENT, ELE_SPLIT, params, BMOperator::slots_in, BMOperator::slots_out, and BMesh::vdata.
void bmo_bisect_plane_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 24 of file bmo_bisect_plane.c.
References bm, BM_ALL_NOLOOP, BM_EDGE, BM_ELEM_TAG, BM_FACE, BM_mesh_bisect_plane(), BM_mesh_elem_hflag_disable_all(), BM_VERT, BM_vert_kill(), BMO_ERROR_CANCEL, BMO_error_raise(), BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_buffer_hflag_enable(), BMO_slot_buffer_len(), BMO_slot_float_get(), BMO_slot_vec_get(), BMVert::co, copy_v3_v3(), ELE_CUT, ELE_INPUT, ELE_NEW, is_zero_v3(), MEM_freeN, MEM_mallocN, min_ii(), plane_from_point_normal_v3(), plane_point_side_v3(), BMOperator::slots_in, BMOperator::slots_out, STACK_DECLARE, STACK_INIT, STACK_POP, STACK_PUSH, BMesh::totvert, and v.
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.
void bmo_bridge_loops_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 544 of file bmo_bridge.c.
References bm, BM_EDGE, bm_edge_test_cb(), BM_edgeloop_length_get(), BM_FACE, BM_mesh_edgeloops_calc_center(), BM_mesh_edgeloops_calc_normal(), BM_mesh_edgeloops_calc_order(), BM_mesh_edgeloops_find(), BM_mesh_edgeloops_free(), BMO_ERROR_CANCEL, BMO_error_raise(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), BMO_slot_int_get(), bridge_loop_pair(), count, EDGE_MARK, EDGE_OUT, FACE_OUT, ListBase::first, BMEdgeLoopStore::next, LinkData::next, NULL, BMOperator::slots_in, and BMOperator::slots_out.
void bmo_collapse_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 438 of file bmo_removedoubles.c.
References add_v3_v3(), BLI_assert, BLI_stack_free(), BLI_stack_is_empty(), BLI_stack_new, BLI_stack_peek(), BLI_stack_pop(), BLI_stack_push(), bm, BM_EDGE, BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_ITER_MESH, BMO_edge_flag_test, BMO_op_callf(), BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_get(), BMO_slot_map_elem_insert(), BMW_begin(), BMW_end(), BMW_FLAG_NOP, BMW_init(), BMW_MASK_NOP, BMW_NIL_LAY, BMW_step(), BMW_VERT_SHELL, center, BMVert::co, copy_v3_v3(), count, e, EDGE_MARK, BMOperator::flag, mul_v3_fl(), BMOperator::slots_in, and zero_v3().
void bmo_collapse_uvs_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 582 of file bmo_removedoubles.c.
References BLI_assert, bm, BM_EDGE, BM_EDGES_OF_MESH, BM_iter_mesh_count_flag(), bmo_collapsecon_do_layer(), BMO_slot_buffer_flag_enable(), CustomData_has_math(), CustomData_layer_has_math(), EDGE_MARK, BMesh::ldata, oflag, BMOperator::slots_in, and CustomData::totlayer.
void bmo_connect_vert_pair_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 583 of file bmo_connect_pair.c.
References PathContext::axis_sep, BLI_assert, BLI_heapsimple_clear(), BLI_heapsimple_free(), BLI_heapsimple_insert(), BLI_heapsimple_is_empty(), BLI_heapsimple_len(), BLI_heapsimple_new(), BLI_heapsimple_pop_min(), BLI_mempool_create(), BLI_mempool_destroy(), BLI_MEMPOOL_NOP, bm, PathContext::bm_bmoflag, BM_EDGE, BM_edge_split(), BM_elem_index_get, BM_FACE, BM_VERT, bm_vert_pair_to_matrix(), BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_buffer_flag_enable(), BMO_slot_copy, BMO_slot_get(), BMO_vert_flag_enable, BMVert::co, BMOpSlot::data, dot_m3_v3_row_x(), e, PathLink::ele, FACE_EXCLUDE, BMElem::head, BMHeader::htype, BMOpSlot::len, PathLinkState::link_last, PathContext::link_pool, PathContext::matrix, MEM_callocN, MEM_freeN, PathLink::next, NULL, op_sub(), BMOpSlot::p, BMOperator::slots_in, state, state_calc_co_pair_fac(), state_link_add(), state_step(), PathContext::states, v, PathContext::v_a, PathContext::v_b, VERT_EXCLUDE, and VERT_OUT.
void bmo_connect_verts_concave_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 183 of file bmo_connect_concave.c.
References BLI_heap_free(), BLI_heap_new_ex(), BLI_memarena_free(), BLI_memarena_new(), BLI_POLYFILL_ALLOC_NGON_RESERVE, BLI_POLYFILL_ARENA_SIZE, bm, BM_EDGE, BM_FACE, bm_face_convex_tag_verts(), bm_face_split_by_concave(), BMO_ITER, BMO_slot_buffer_from_enabled_flag(), EDGE_OUT, FACE_OUT, BMFace::len, NULL, BMOperator::slots_in, and BMOperator::slots_out.
void bmo_connect_verts_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 155 of file bmo_connect.c.
References BLI_LINKSTACK_DECLARE, BLI_LINKSTACK_FREE, BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, BLI_LINKSTACK_PUSH, bm, BM_EDGE, BM_FACE, bm_face_connect_verts(), BM_ITER_ELEM, BM_LOOPS_OF_VERT, BM_VERT, BMO_edge_flag_enable, BMO_ERROR_FATAL, BMO_error_raise(), BMO_face_flag_enable, BMO_face_flag_test, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMO_vert_flag_enable, BMO_vert_flag_test, BMLoop::e, EDGE_OUT, EDGE_OUT_ADJ, BMLoop::f, FACE_EXCLUDE, FACE_TAG, faces, BMFace::len, BMLoop::next, BMLoop::prev, BMOperator::slots_in, BMOperator::slots_out, BMLoop::v, v, and VERT_INPUT.
void bmo_connect_verts_nonplanar_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 131 of file bmo_connect_nonplanar.c.
References BLI_LINKSTACK_DECLARE, BLI_LINKSTACK_FREE, BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, BLI_LINKSTACK_PUSH, bm, BM_EDGE, BM_FACE, BM_face_normal_update(), bm_face_split_by_angle(), BMO_ITER, BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), cosf, EDGE_OUT, FACE_OUT, BMFace::len, len, BMOperator::slots_in, and BMOperator::slots_out.
void bmo_contextual_create_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 20 of file bmo_create.c.
References bm, BM_CREATE_NO_DOUBLE, BM_EDGE, BM_edge_create(), BM_EDGES_OF_VERT, BM_elem_flag_enable, BM_ELEM_SMOOTH, BM_FACE, BM_face_copy_shared(), BM_face_create_ngon_verts(), BM_VERT, BM_verts_sort_radial_plane(), BMO_edge_flag_enable, BMO_face_flag_enable, BMO_ITER, BMO_iter_as_array(), BMO_iter_elem_count_flag(), 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_copy, BMO_slot_int_get(), BMO_vert_flag_enable, BMO_vert_flag_test, e, BMEditSelection::ele, ELE_NEW, ELE_OUT, ListBase::first, BMOperator::flag, BMHeader::htype, BMEditSelection::htype, if(), BMFace::mat_nr, MEM_freeN, MEM_mallocN, BMEditSelection::next, NULL, op_sub(), BMesh::selected, BMOperator::slots_in, BMOperator::slots_out, v, and verts.
void bmo_convex_hull_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
void bmo_create_circle_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 1235 of file bmo_primitive.c.
References Freestyle::a, bm, BM_CREATE_NOP, BM_edge_create(), BM_face_create_quad_tri(), BM_mesh_calc_uvs_circle(), BM_VERT, BM_vert_create(), BMO_face_flag_enable, BMO_op_callf(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), BMO_slot_int_get(), BMO_slot_mat4_get(), BMO_vert_flag_enable, CD_MLOOPUV, CustomData_get_offset(), FACE_NEW, BMOperator::flag, BMesh::ldata, mul_m4_v3(), NULL, sin_cos_from_fraction(), BMOperator::slots_in, BMOperator::slots_out, v1, VERT_MARK, and zero_v3().
void bmo_create_cone_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 1352 of file bmo_primitive.c.
References bm, BM_CREATE_NOP, BM_edge_collapse(), BM_face_create_quad_tri(), BM_FACE_FIRST_LOOP, BM_mesh_calc_uvs_cone(), BM_VERT, BM_vert_create(), BM_vert_kill(), BMO_face_flag_enable, BMO_op_callf(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), BMO_slot_int_get(), BMO_slot_mat4_get(), BMO_vert_flag_enable, CD_MLOOPUV, CustomData_get_offset(), BMLoop::e, FACE_MARK, FACE_NEW, BMOperator::flag, l, BMesh::ldata, MEM_freeN, MEM_mallocN, mul_m4_v3(), BMLoop::next, NULL, BMLoop::prev, sin_cos_from_fraction(), BMOperator::slots_in, BMOperator::slots_out, BMLoop::v, v1, v2, and VERT_MARK.
void bmo_create_cube_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 1606 of file bmo_primitive.c.
References ARRAY_SIZE, bm, BM_CREATE_NOP, BM_face_create_verts(), BM_mesh_calc_uvs_cube(), BM_VERT, BM_vert_create(), BMO_face_flag_enable, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), BMO_slot_mat4_get(), BMO_vert_flag_enable, CD_MLOOPUV, CustomData_get_offset(), FACE_MARK, faces, float(), BMesh::ldata, mul_m4_v3(), NULL, quad, BMOperator::slots_in, BMOperator::slots_out, VERT_MARK, verts, x, y, and z.
void bmo_create_grid_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 712 of file bmo_primitive.c.
References bm, BM_CREATE_NOP, BM_face_create_verts(), BM_mesh_calc_uvs_grid(), BM_vert_create(), BMO_face_flag_enable, BMO_slot_bool_get(), BMO_slot_buffer_alloc(), BMO_slot_float_get(), BMO_slot_get(), BMO_slot_int_get(), BMO_slot_mat4_get(), BMO_vert_flag_enable, BMOpSlot::buf, CD_MLOOPUV, CustomData_get_offset(), BMOpSlot::data, FACE_MARK, BMesh::ldata, max_ii(), mul_v3_m4v3(), NULL, BMOperator::slots_in, BMOperator::slots_out, VERT_MARK, x, XY, and y.
void bmo_create_icosphere_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 952 of file bmo_primitive.c.
References Freestyle::a, bm, BM_CREATE_NOP, BM_EDGE, BM_ELEM_CD_GET_VOID_P, BM_face_create_quad_tri(), BM_ITER_ELEM, BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_VERT, BM_vert_create(), BM_VERTS_OF_MESH, BMO_edge_flag_enable, 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_float_get(), BMO_slot_int_get(), BMO_slot_mat4_get(), BMO_vert_flag_enable, BMO_vert_flag_test, CD_MLOOPUV, BMVert::co, CustomData_get_offset(), BMLoop::e, EDGE_MARK, BMOperator::flag, icoface, icouvs, icovert, l, BMesh::ldata, mul_m4_v3(), NULL, BMOperator::slots_in, BMOperator::slots_out, MLoopUV::uv, v, v1, v2, and VERT_MARK.
void bmo_create_monkey_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 1154 of file bmo_primitive.c.
References bm, BM_CREATE_NOP, BM_ELEM_CD_GET_VOID_P, BM_face_create_quad_tri(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, BM_VERT, BM_vert_create(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_mat4_get(), BMO_vert_flag_enable, CD_MLOOPUV, BMVert::co, CustomData_get_offset(), fabsf, l, BMesh::ldata, MEM_freeN, MEM_mallocN, monkeyf, monkeynf, monkeynv, monkeyo, monkeyuvs, monkeyv, mul_m4_v3(), NULL, BMOperator::slots_in, BMOperator::slots_out, MLoopUV::uv, v, and VERT_MARK.
void bmo_create_uvsphere_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 833 of file bmo_primitive.c.
References Freestyle::a, axis_angle_to_mat3(), bm, BM_CREATE_NOP, BM_edge_create(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_calc_uvs_sphere(), BM_VERT, BM_vert_create(), BM_VERTS_OF_MESH, BMO_edge_flag_enable, BMO_face_flag_enable, BMO_op_callf(), 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_float_get(), BMO_slot_int_get(), BMO_slot_mat4_get(), BMO_vert_flag_enable, BMO_vert_flag_test, CD_MLOOPUV, BMVert::co, cosf, CustomData_get_offset(), e, EDGE_ORIG, FACE_MARK, BMOperator::flag, float(), l, BMesh::ldata, len, len_v3v3(), M_PI, min_ff(), mul_m4_v3(), mul_v3_m3v3(), NULL, sin_cos_from_fraction(), sinf, BMOperator::slots_in, BMOperator::slots_out, BMLoop::v, and VERT_MARK.
void bmo_create_vert_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 29 of file bmo_utils.c.
References bm, BM_CREATE_NOP, BM_VERT, BM_vert_create(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_vec_get(), BMO_vert_flag_enable, ELE_NEW, NULL, BMOperator::slots_in, and BMOperator::slots_out.
void bmo_delete_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 452 of file bmo_dupe.c.
References bm, BM_ALL_NOLOOP, BMO_mesh_delete_oflag_context(), BMO_slot_buffer_flag_enable(), BMO_slot_int_get(), DEL_INPUT, and BMOperator::slots_in.
void bmo_dissolve_degenerate_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 507 of file bmo_dissolve.c.
References BLI_assert, bm, BM_EDGE, BM_edge_calc_length_squared(), BM_edge_split(), BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_face_split(), BM_ITER_MESH, bm_mesh_edge_collapse_flagged(), BMO_edge_flag_enable, BMO_edge_flag_test, BMO_slot_buffer_flag_enable(), BMO_slot_float_get(), BMVert::co, BMLoop::e, e, EDGE_COLLAPSE, EDGE_MARK, BMLoop::f, fabsf, BMOperator::flag, BMFace::len, len_v3v3(), min_ff(), BMLoop::next, normalize_v3(), NULL, BMLoop::prev, BMLoop::radial_next, reset, BMOperator::slots_in, sub_v3_v3v3(), BMLoop::v, and void.
void bmo_dissolve_edges_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 258 of file bmo_dissolve.c.
References BMesh::act_face, bm, BM_EDGE, BM_edge_face_pair(), BM_edge_kill(), BM_edge_loop_pair(), BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_face_find_double(), BM_FACE_FIRST_LOOP, BM_face_kill(), bm_face_split(), BM_faces_join_pair(), BM_ITER_ELEM, BM_ITER_MESH, BM_ITER_MESH_MUTABLE, BM_vert_collapse_edge(), BM_vert_is_edge_pair(), BM_vert_kill(), BM_VERTS_OF_MESH, BMO_edge_flag_enable, BMO_edge_flag_test, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_vert_flag_enable, BMO_vert_flag_set, BMO_vert_flag_test, BMVert::e, BMLoop::e, e, EDGE_ISGC, EDGE_TAG, l_b, BMLoop::next, NULL, BMOperator::slots_in, BMLoop::v, v, VERT_ISGC, VERT_MARK, and VERT_TAG.
void bmo_dissolve_faces_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 113 of file bmo_dissolve.c.
References BMesh::act_face, BLI_array_append, BLI_array_append_ret, BLI_array_clear, BLI_array_declare, BLI_array_free, BLI_array_len, BLI_assert, bm, BM_FACE, BM_faces_join(), BM_ITER_MESH, BM_ITER_MESH_MUTABLE, BM_vert_collapse_edge(), BM_vert_is_edge_pair(), BM_VERTS_OF_MESH, BMO_ERROR_FATAL, BMO_error_occurred_at_level(), BMO_face_flag_disable, BMO_face_flag_enable, BMO_face_flag_test, BMO_ITER, BMO_op_callf(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMO_vert_flag_set, BMO_vert_flag_test, BMW_begin(), BMW_end(), BMW_FLAG_NOP, BMW_init(), BMW_ISLAND_MANIFOLD, BMW_MASK_NOP, BMW_NIL_LAY, BMW_step(), DEL_FACES, BMVert::e, FACE_MARK, FACE_NEW, FACE_ORIG, FACE_TAG, faces, BMOperator::flag, MEM_freeN, NULL, BMOperator::slots_in, BMOperator::slots_out, BMesh::totface, v, and VERT_MARK.
void bmo_dissolve_limit_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 477 of file bmo_dissolve.c.
References bm, BM_FACE, BM_mesh_decimate_dissolve_ex(), BMO_SLOT_AS_BUFFER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), BMO_slot_get(), BMO_slot_int_get(), FACE_NEW, BMOpSlot::len, M_PI_2, min_ff(), BMOperator::slots_in, and BMOperator::slots_out.
void bmo_dissolve_verts_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 359 of file bmo_dissolve.c.
References BMesh::act_face, bm, BM_DISK_EDGE_NEXT, BM_edge_is_boundary(), BM_edge_is_wire(), BM_edge_kill(), BM_edge_loop_pair(), BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_face_find_double(), BM_face_kill(), bm_face_split(), BM_faces_join_pair(), BM_ITER_ELEM, BM_ITER_MESH_MUTABLE, BM_LOOPS_OF_VERT, BM_VERT, BM_vert_collapse_edge(), BM_vert_is_edge_pair(), BM_vert_kill(), BM_VERTS_OF_MESH, BMO_edge_flag_enable, BMO_edge_flag_test, BMO_ITER, BMO_slot_bool_get(), BMO_vert_flag_enable, BMO_vert_flag_test, BMVert::e, BMLoop::e, e, EDGE_ISGC, l_b, BMLoop::next, NULL, BMOperator::slots_in, BMLoop::v, v, VERT_ISGC, VERT_MARK, VERT_MARK_PAIR, and VERT_MARK_TEAR.
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.
void bmo_edgeloop_fill_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 21 of file bmo_fill_edgeloop.c.
References BLI_assert, bm, BM_CREATE_NOP, BM_EDGE, BM_edge_other_vert(), BM_EDGES_OF_VERT, BM_elem_flag_enable, BM_ELEM_SMOOTH, BM_FACE, BM_face_create_ngon_verts(), BM_face_exists(), BM_ITER_ELEM, BM_VERTS_OF_EDGE, BMO_edge_flag_enable, BMO_edge_flag_test, BMO_face_flag_enable, BMO_ITER, BMO_iter_elem_count_flag(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_buffer_len(), BMO_slot_int_get(), BMO_vert_flag_disable, BMO_vert_flag_enable, BMO_vert_flag_test, e, EDGE_MARK, ELE_OUT, BMFace::mat_nr, MEM_freeN, MEM_mallocN, NULL, BMOperator::slots_in, BMOperator::slots_out, v, VERT_USED, and verts.
void bmo_edgenet_fill_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 24 of file bmo_edgenet.c.
References bm, BM_EDGE, BM_elem_flag_enable, BM_ELEM_SMOOTH, BM_ELEM_TAG, BM_FACE, BM_face_normal_update(), BM_mesh_edgenet(), BM_mesh_elem_hflag_disable_all(), BMO_ITER, BMO_op_callf(), BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_hflag(), BMO_slot_buffer_hflag_enable(), BMO_slot_buffer_len(), BMO_slot_int_get(), BMOperator::flag, BMFace::mat_nr, BMOperator::slots_in, BMOperator::slots_out, BMesh::totedge, and BMesh::totvert.
void bmo_edgenet_prepare_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 92 of file bmo_edgenet.c.
References BLI_array_clear, BLI_array_declare, BLI_array_free, BLI_array_grow_one, BLI_array_len, BLI_array_len_set, bm, BM_CREATE_NO_DOUBLE, BM_EDGE, BM_edge_create(), BM_edge_share_vert_check(), BM_EDGES_OF_VERT, BM_vert_in_edge(), BMO_edge_flag_enable, BMO_edge_flag_test, BMO_ITER, BMO_iter_elem_count_flag(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMVert::co, count, cross_v3_v3v3(), dot_v3v3(), e, EDGE_MARK, edge_next(), EDGE_VIS, ELE_NEW, normal_tri_v3(), NULL, BMOperator::slots_in, BMOperator::slots_out, sub_v3_v3v3(), SWAP, BMEdge::v1, v1, BMEdge::v2, and v2.
void bmo_extrude_discrete_faces_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 37 of file bmo_extrude.c.
References BLI_ghash_free(), BLI_ghash_lookup(), bm, BM_CREATE_NOP, BM_elem_attrs_copy(), BM_FACE, BM_face_copy(), BM_face_create_quad_tri(), BM_FACE_FIRST_LOOP, BM_select_history_map_create(), BMO_face_flag_enable, BMO_ITER, BMO_op_callf(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), DEL_ONLYFACES, BMLoop::e, BMEditSelection::ele, EXT_DEL, EXT_KEEP, BMOperator::flag, BMLoop::next, NULL, BMOperator::slots_in, BMOperator::slots_out, and BMLoop::v.
void bmo_extrude_edge_only_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 162 of file bmo_extrude.c.
References bm, BM_ALL_NOLOOP, BM_CREATE_NOP, BM_EDGE, bm_extrude_copy_face_loop_attributes(), bm_extrude_disable_skin_root(), BM_face_create_verts(), BM_VERT, BMO_edge_flag_enable, BMO_edge_flag_test, BMO_face_flag_enable, BMO_ITER, BMO_iter_map_value_ptr(), BMO_iter_new(), BMO_iter_step(), BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_vert_flag_enable, CD_MVERT_SKIN, CustomData_has_layer(), e, EXT_INPUT, EXT_KEEP, BMOperator::flag, NULL, BMOperator::slots_in, BMOperator::slots_out, v, BMEdge::v1, BMEdge::v2, and BMesh::vdata.
void bmo_extrude_face_region_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 311 of file bmo_extrude.c.
References BMesh::act_face, add_v3_v3(), BLI_assert, bm, BM_CREATE_NO_DOUBLE, BM_CREATE_NOP, BM_DISK_EDGE_NEXT, BM_EDGE, BM_edge_collapse(), BM_edge_create(), BM_edge_exists(), BM_edge_is_boundary(), BM_edge_is_wire(), BM_edge_kill(), BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_elem_flag_disable, BM_elem_flag_enable, bm_extrude_copy_face_loop_attributes(), bm_extrude_disable_skin_root(), bm_extrude_region_edge_flag(), BM_FACE, BM_face_create(), BM_face_create_verts(), BM_face_normal_flip(), BM_FACES_OF_EDGE, BM_FACES_OF_MESH, BM_FACES_OF_VERT, BM_ITER_ELEM, BM_ITER_MESH, BM_VERT, BM_vert_is_edge_pair(), BM_vert_kill(), BM_VERTS_OF_MESH, bmesh_kernel_join_face_kill_edge(), BMO_edge_flag_enable, BMO_edge_flag_test, BMO_elem_flag_enable, BMO_elem_flag_test, BMO_face_flag_enable, BMO_face_flag_test, BMO_ITER, BMO_iter_map_value_ptr(), BMO_iter_new(), BMO_iter_step(), BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_copy, BMO_slot_get(), BMO_slot_map_len(), BMO_vert_flag_enable, CD_MVERT_SKIN, CustomData_has_layer(), DEL_ONLYTAGGED, dot_v3v3(), BMVert::e, e, EXT_DEL, EXT_INPUT, EXT_TAG, fabs(), BMOperator::flag, BMEdge::l, MEM_freeN, MEM_mallocN, BMFace::no, normalize_v3(), NULL, BMOperator::slots_in, BMOperator::slots_out, SWAP, BMLoop::v, v, BMEdge::v1, v1, BMEdge::v2, v2, BMesh::vdata, and zero_v3().
void bmo_extrude_vert_indiv_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 230 of file bmo_extrude.c.
References BLI_ghash_free(), BLI_ghash_lookup(), bm, BM_CREATE_NOP, BM_EDGE, BM_edge_create(), bm_extrude_disable_skin_root(), BM_select_history_map_create(), BM_VERT, BM_vert_create(), BMO_edge_flag_enable, BMO_iter_new(), BMO_iter_step(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_vert_flag_enable, CD_MVERT_SKIN, BMVert::co, CustomData_has_layer(), BMVert::e, e, BMEditSelection::ele, EXT_KEEP, NULL, BMOperator::slots_in, BMOperator::slots_out, SWAP, v, BMEdge::v1, and BMesh::vdata.
void bmo_face_attribute_fill_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 135 of file bmo_fill_attribute.c.
References bm, BM_ELEM_TAG, BM_FACE, BM_mesh_elem_hflag_disable_all(), bmesh_face_attribute_fill(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_hflag(), BMO_slot_buffer_hflag_enable(), BMO_slot_buffer_len(), BMOperator::slots_in, and BMOperator::slots_out.
void bmo_find_doubles_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 688 of file bmo_removedoubles.c.
References bm, bmesh_find_doubles_common(), BMO_slot_get(), and BMOperator::slots_out.
void bmo_grid_fill_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 583 of file bmo_fill_grid.c.
References BLI_assert, BLI_gset_free(), BLI_gset_ptr_new(), BLI_gsetIterator_getKey(), BLI_listbase_is_empty(), bm, BM_EDGE, BM_edge_collapse(), bm_edge_test_cb(), bm_edge_test_rail_cb(), BM_edgeloop_expand(), bm_edgeloop_flag_set(), BM_edgeloop_flip(), BM_edgeloop_is_closed(), BM_edgeloop_length_get(), BM_edgeloop_overlap_check(), BM_edgeloop_verts_get(), BM_ELEM_HIDDEN, BM_FACE, bm_grid_fill(), BM_mesh_edgeloops_find(), BM_mesh_edgeloops_find_path(), BM_mesh_edgeloops_free(), BMO_ERROR_CANCEL, BMO_error_raise(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_int_get(), count, data, e, EDGE_MARK, FACE_OUT, ListBase::first, GSET_ITER, ListBase::last, NULL, BMOperator::slots_in, and BMOperator::slots_out.
void bmo_holes_fill_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 16 of file bmo_fill_holes.c.
References bm, BM_EDGE, BM_ELEM_TAG, BM_FACE, BM_face_kill(), BM_face_normal_update(), BM_mesh_edgenet(), BM_mesh_elem_hflag_disable_all(), BMO_ITER, BMO_op_callf(), BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_buffer_from_enabled_hflag(), BMO_slot_buffer_hflag_enable(), BMO_slot_buffer_len(), BMO_slot_int_get(), BMOperator::flag, BMFace::len, BMOperator::slots_in, and BMOperator::slots_out.
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.
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 | | / | | / | | / | --+-----------------+-----------------------+-- | | | |
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().
void bmo_join_triangles_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 239 of file bmo_join_triangles.c.
References DelimitData::angle_face, DelimitData::angle_face__cos, DelimitData::angle_shape, BLI_sortutil_cmp_float(), bm, bm_edge_delimit_cdata(), BM_edge_face_pair(), bm_edge_is_delimit(), bm_edge_to_quad_verts(), BM_EDGES_OF_MESH, BM_FACE, BM_faces_join_pair(), BM_ITER_MESH, BMO_edge_flag_enable, BMO_edge_flag_test, BMO_face_flag_enable, BMO_face_flag_test, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), CD_MLOOPUV, DelimitData_CD::cd_offset, CD_PROP_BYTE_COLOR, DelimitData::cdata, DelimitData::cdata_len, cosf, SortPtrByFloat::data, DEG2RADF, DelimitData::do_angle_face, DelimitData::do_angle_shape, DelimitData::do_mat, DelimitData::do_seam, DelimitData::do_sharp, e, EDGE_MARK, error(), BMLoop::f, FACE_INPUT, FACE_OUT, l_b, BMesh::ldata, BMFace::len, MEM_freeN, MEM_mallocN, quad_calc_error(), BMOperator::slots_in, BMOperator::slots_out, SortPtrByFloat::sort_value, and verts.
void bmo_mesh_to_bmesh_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 22 of file bmo_mesh_convert.c.
References bm, BM_mesh_bm_from_me(), BMO_slot_bool_get(), BMO_slot_ptr_get(), Mesh::key, Object::shapenr, BMOperator::slots_in, and Key::totkey.
void bmo_mirror_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 22 of file bmo_mirror.c.
References BLI_assert, bm, BM_ALL_NOLOOP, BM_FACE, BM_ITER_ELEM, BM_LOOPS_OF_FACE, BM_VERT, BMO_ITER, BMO_op_callf(), BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_op_initf(), 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_elem_insert(), CD_MLOOPUV, ceilf, BMVert::co, CustomData_bmesh_get_n(), CustomData_number_of_layers(), BMHeader::data, ELE_NEW, fabsf, BMOperator::flag, fmodf, BMLoop::head, l, BMesh::ldata, NULL, BMOperator::slots_in, BMOperator::slots_out, MLoopUV::uv, and v.
void bmo_object_load_bmesh_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 40 of file bmo_mesh_convert.c.
References bm, BMO_op_callf(), BMO_slot_ptr_get(), Object::data, BMOperator::flag, and BMOperator::slots_in.
void bmo_offset_edgeloops_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 61 of file bmo_offset_edgeloops.c.
References BLI_array_alloca, BLI_assert, bm, BM_EDGE, BM_edge_other_vert(), BM_edge_split(), BM_EDGES_OF_VERT, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_elem_index_get, BM_ELEM_TAG, BM_FACE, BM_face_split(), bm_face_split_walk_back(), BM_ITER_ELEM, BM_LOOPS_OF_EDGE, BM_LOOPS_OF_VERT, BM_mesh_elem_hflag_disable_all(), BM_mesh_elem_index_ensure(), BM_VERT, BM_vert_is_edge_pair(), bmesh_kernel_join_edge_kill_vert(), BMO_edge_flag_enable, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_buffer_len(), BMO_vert_flag_enable, BMO_vert_flag_test, CLAMP_MIN, BMVert::e, BMLoop::e, e, ELE_NEW, ELE_VERT_ENDPOINT, BMLoop::f, l, BMFace::len, MEM_freeN, MEM_mallocN, BMLoop::next, NULL, OFFSET, BMLoop::prev, BMOperator::slots_in, BMOperator::slots_out, STACK_DECLARE, STACK_INIT, STACK_POP, STACK_PUSH, STACK_REMOVE, STACK_SIZE, UNLIKELY, UNUSED_VARS_NDEBUG, BMLoop::v, v, and verts.
void bmo_planar_faces_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 26 of file bmo_planar_faces.c.
References BLI_assert, BLI_ghash_clear(), BLI_ghash_ensure_p(), BLI_ghash_free(), BLI_ghash_ptr_new_ex(), BLI_ghashIterator_getKey(), BLI_ghashIterator_getValue(), BLI_mempool_calloc(), BLI_mempool_clear(), BLI_mempool_create(), BLI_mempool_destroy(), BLI_MEMPOOL_NOP, bm, BM_FACE, BM_face_calc_center_median_weighted(), BM_FACE_FIRST_LOOP, BM_face_normal_update(), BM_FACES_OF_VERT, BM_ITER_ELEM, BMO_face_flag_disable, BMO_face_flag_enable, BMO_face_flag_test, BMO_ITER_INDEX, BMO_slot_buffer_len(), BMO_slot_float_get(), BMO_slot_int_get(), BMO_vert_flag_enable, BMO_vert_flag_test, closest_to_plane_normalized_v3(), BMVert::co, VertAccum::co, VertAccum::co_tot, ELE_FACE_ADJUST, ELE_VERT_ADJUST, eps, float(), GHASH_ITER, interp_v3_v3v3(), BMFace::len, len_squared_v3v3(), MEM_freeN, MEM_mallocN, BMLoop::next, BMFace::no, NULL, plane_from_point_normal_v3(), BMOperator::slots_in, square_f(), BMLoop::v, and v.
void bmo_pointmerge_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 409 of file bmo_removedoubles.c.
References bm, BM_VERT, BMO_ITER, BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_slot_get(), BMO_slot_map_elem_insert(), BMO_slot_vec_get(), BMVert::co, copy_v3_v3(), BMOperator::flag, NULL, BMOperator::slots_in, and v.
void bmo_pointmerge_facedata_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 319 of file bmo_removedoubles.c.
References bm, BM_ELEM_CD_GET_VOID_P, BM_ITER_ELEM, BM_LOOPS_OF_VERT, BM_VERT, BM_vert_face_count(), BMO_ITER, BMO_slot_buffer_get_single(), BMO_slot_get(), CustomData_bmesh_copy_data(), CustomData_data_add(), CustomData_data_multiply(), CustomData_layer_has_math(), BMHeader::data, BMLoop::head, l, CustomData::layers, BMesh::ldata, NULL, offset, CustomDataLayer::offset, BMOperator::slots_in, CustomData::totlayer, type, CustomDataLayer::type, and v.
void bmo_poke_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Pokes a face
Splits a face into a triangle fan. Iterate over all selected faces, create a new center vertex and create triangles between original face edges and new center vertex.
Definition at line 28 of file bmo_poke.c.
References BLI_assert, bm, BM_CREATE_NOP, BM_elem_attrs_copy(), BM_FACE, BM_face_calc_center_bounds(), BM_face_calc_center_median(), BM_face_calc_center_median_weighted(), BM_face_create_quad_tri(), BM_FACE_FIRST_LOOP, BM_face_interp_multires_ex(), BM_face_kill(), BM_loop_interp_from_face(), BM_VERT, BM_vert_create(), BMO_face_flag_enable, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), BMO_slot_int_get(), BMO_vert_flag_enable, BMOP_POKE_BOUNDS, BMOP_POKE_MEDIAN, BMOP_POKE_MEDIAN_WEIGHTED, CD_MDISPS, BMVert::co, copy_v3_v3(), CustomData_get_offset(), ELE_NEW, float(), BMesh::ldata, BMFace::len, len_v3v3(), madd_v3_v3fl(), BMLoop::next, BMVert::no, BMFace::no, NULL, offset, BMLoop::prev, BMOperator::slots_in, BMOperator::slots_out, BMLoop::v, and void.
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.
void bmo_region_extend_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 362 of file bmo_utils.c.
References bm, BM_ALL_NOLOOP, bmo_region_extend_contract(), bmo_region_extend_expand(), BMO_slot_bool_get(), BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), SEL_FLAG, SEL_ORIG, BMOperator::slots_in, and BMOperator::slots_out.
void bmo_remove_doubles_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 676 of file bmo_removedoubles.c.
References bm, bmesh_find_doubles_common(), BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_slot_get(), BMOperator::flag, and BMOperator::slots_in.
void bmo_reverse_colors_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 688 of file bmo_utils.c.
References bm, BM_FACE, bm_face_reverse_colors(), BMO_ERROR_CANCEL, BMO_error_raise(), bmo_get_loop_color_ref(), BMO_ITER, BMO_slot_int_get(), and BMOperator::slots_in.
void bmo_reverse_faces_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 135 of file bmo_utils.c.
References bm, BM_FACE, BM_face_normal_flip_ex(), BMO_ITER, BMO_slot_bool_get(), CD_MDISPS, CustomData_get_offset(), BMesh::ldata, and BMOperator::slots_in.
void bmo_reverse_uvs_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 544 of file bmo_utils.c.
References bm, BM_FACE, bm_face_reverse_uvs(), BMO_ITER, CD_MLOOPUV, CustomData_get_offset(), BMesh::ldata, and BMOperator::slots_in.
void bmo_rotate_colors_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 584 of file bmo_utils.c.
References bm, BM_ELEM_CD_GET_VOID_P, BM_FACE, BM_ITER_ELEM, BM_LOOPS_OF_FACE, BMO_ERROR_CANCEL, BMO_error_raise(), bmo_get_loop_color_ref(), BMO_ITER, BMO_slot_bool_get(), BMO_slot_int_get(), CD_PROP_COLOR, size(), and BMOperator::slots_in.
void bmo_rotate_edges_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 219 of file bmo_rotate_edges.c.
References ARRAY_SIZE, bm, BM_EDGE, BM_edge_face_pair(), BM_EDGEROT_CHECK_DEGENERATE, BM_EDGEROT_CHECK_EXISTS, bm_rotate_edges_shared(), bm_rotate_edges_simple(), BMO_face_flag_enable, BMO_face_flag_test, BMO_ITER, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_buffer_len(), e, EDGE_OUT, FACE_MARK, BMOperator::slots_in, and BMOperator::slots_out.
void bmo_rotate_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 114 of file bmo_utils.c.
References bm, BMO_op_callf(), BMO_slot_mat4_get(), BMO_slot_vec_get(), center, BMOperator::flag, BMOperator::slots_in, and transform_pivot_set_m4().
void bmo_rotate_uvs_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 458 of file bmo_utils.c.
References bm, BM_ELEM_CD_GET_VOID_P, BM_FACE, BM_ITER_ELEM, BM_LOOPS_OF_FACE, BMO_ITER, BMO_slot_bool_get(), CD_MLOOPUV, copy_v2_v2(), CustomData_get_offset(), BMesh::ldata, BMOperator::slots_in, and MLoopUV::uv.
void bmo_scale_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 91 of file bmo_utils.c.
References bm, BMO_op_callf(), BMO_slot_vec_get(), BMOperator::flag, BMOperator::slots_in, and unit_m3().
void bmo_smooth_laplacian_vert_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 411 of file bmo_smooth_laplacian.c.
References bm, BM_elem_index_get, BM_mesh_elem_index_ensure(), BM_VERT, BMO_ITER, BMO_slot_bool_get(), BMO_slot_float_get(), BMVert::co, LaplacianSystem::context, delete_laplacian_system(), EIG_linear_least_squares_solver_new(), EIG_linear_solver_matrix_add(), EIG_linear_solver_right_hand_side_add(), EIG_linear_solver_solve(), EIG_linear_solver_variable_lock(), EIG_linear_solver_variable_set(), EIG_linear_solver_variable_unlock(), fill_laplacian_matrix(), init_laplacian_matrix(), init_laplacian_system(), memset_laplacian_system(), BLaplacianSystem::op, BMOperator::slots_in, BMesh::totedge, BMesh::totface, BMesh::totloop, BMesh::totvert, v, validate_solution(), vert_is_boundary(), and w().
void bmo_smooth_vert_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
void bmo_solidify_face_region_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 825 of file bmo_extrude.c.
References bm, BM_FACE, BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_op_initf(), BMO_slot_bool_set(), BMO_slot_buffer_flag_enable(), BMO_slot_copy, BMO_slot_float_get(), calc_solidify_normals(), FACE_MARK, BMOperator::flag, BMOperator::slots_in, BMOperator::slots_out, and solidify_add_thickness().
void bmo_spin_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Spin Operator
Extrude or duplicate geometry a number of times, rotating and possibly translating after each step
Definition at line 472 of file bmo_dupe.c.
References Freestyle::a, axis_angle_normalized_to_mat3(), bm, BM_EDGE, BM_edge_find_double(), BM_edge_splice(), BM_FACE, BM_face_find_double(), BM_face_kill(), BM_ITER_MESH_INDEX, BM_VERT, BM_vert_splice(), BM_VERTS_OF_MESH, BMO_op_callf(), BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_bool_get(), BMO_slot_copy, BMO_slot_float_get(), BMO_slot_get(), BMO_slot_int_get(), BMO_slot_vec_get(), BMOpSlot::buf, BMOpSlot::data, BMOperator::flag, is_zero_v3(), BMOpSlot::len, MEM_freeN, MEM_mallocN, mul_m3_v3(), BMVert::no, normalize_v3(), NULL, BMOperator::slots_in, BMOperator::slots_out, steps, BMesh::totvert, and v.
void bmo_split_edges_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 16 of file bmo_split_edges.c.
References bm, BM_EDGE, BM_ELEM_TAG, BM_mesh_edgesplit(), BM_mesh_elem_hflag_disable_all(), BM_VERT, BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_hflag(), BMO_slot_buffer_hflag_enable(), BMOperator::slots_in, and BMOperator::slots_out.
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
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.
void bmo_subdivide_edgering_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 1050 of file bmo_subdivide_edgering.c.
References BLI_array_alloca, BLI_assert, BLI_gset_free(), BLI_gset_len(), BLI_gsetIterator_getKey(), bm, BM_EDGE, bm_edge_rim_test_cb(), bm_edgeloop_check_overlap_all(), bm_edgering_pair_calc(), bm_edgering_pair_ringsubd(), bm_edgering_pair_store_create(), bm_edgering_pair_store_free(), BM_ELEM_TAG, BM_FACE, BM_FACES_OF_EDGE, BM_ITER_ELEM, BM_LOOPS_OF_FACE, BM_mesh_edgeloops_find(), BM_mesh_edgeloops_free(), BM_mesh_elem_hflag_disable_all(), BM_VERT, bm_verts_tag_count(), bmesh_subd_falloff_calc(), BMO_edge_flag_enable, BMO_edge_flag_test, BMO_ERROR_CANCEL, BMO_error_raise(), BMO_face_flag_enable, BMO_face_flag_test, BMO_ITER, BMO_slot_buffer_flag_enable(), BMO_slot_buffer_from_enabled_flag(), BMO_slot_float_get(), BMO_slot_int_get(), count, BMLoop::e, e, EDGE_RIM, EDGE_RING, fabsf, FACE_OUT, GHashPair::first, ListBase::first, float(), GSET_ITER_INDEX, l, ListBase::last, BMFace::len, MEM_freeN, NULL, GHashPair::second, BMOperator::slots_in, BMOperator::slots_out, and smooth().
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.
void bmo_symmetrize_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 17 of file bmo_symmetrize.c.
References bm, BM_ALL_NOLOOP, BM_VERT, BMO_ITER, BMO_op_callf(), BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_op_initf(), 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_elem_insert(), copy_v3_fl(), ELE_OUT, BMOperator::flag, BMOperator::slots_in, BMOperator::slots_out, and v.
void bmo_transform_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 39 of file bmo_utils.c.
References bm, BM_ELEM_CD_GET_VOID_P, BM_VERT, BMO_ITER, BMO_slot_bool_get(), BMO_slot_mat4_get(), CD_SHAPEKEY, BMVert::co, CustomData_get_offset(), CustomData_number_of_layers(), float(), invert_m4_m4(), is_zero_m4(), mul_m4_series, mul_m4_v3(), BMOperator::slots_in, v, and BMesh::vdata.
void bmo_translate_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 70 of file bmo_utils.c.
References bm, BMO_op_callf(), BMO_slot_vec_get(), copy_v3_v3(), BMOperator::flag, BMOperator::slots_in, and unit_m4().
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.
void bmo_triangulate_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 24 of file bmo_triangulate.c.
References bm, BM_EDGE, BM_ELEM_TAG, BM_FACE, BM_mesh_elem_hflag_disable_all(), BM_mesh_triangulate(), BMO_slot_buffer_from_enabled_hflag(), BMO_slot_buffer_hflag_enable(), BMO_slot_get(), BMO_slot_int_get(), BMOperator::slots_in, and BMOperator::slots_out.
void bmo_unsubdivide_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 18 of file bmo_unsubdivide.c.
References bm, BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_ITER_MESH, BM_mesh_decimate_unsubdivide_ex(), BM_VERTS_OF_MESH, BMO_slot_get(), BMO_slot_int_get(), BMOpSlot::buf, BMOpSlot::data, BMOpSlot::len, max_ii(), BMOperator::slots_in, and v.
void bmo_weld_verts_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 177 of file bmo_removedoubles.c.
References BMesh::act_face, BLI_assert, BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_ptr_new(), BLI_listbase_is_empty(), bm, BM_CREATE_NOP, BM_edge_create(), BM_edge_exists(), BM_EDGES_OF_MESH, BM_elem_flag_merge_ex, BM_ELEM_HIDDEN, BM_face_kill(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_select_history_merge_from_targetmap(), BM_VERTS_OF_MESH, bmesh_face_swap_data(), BMO_edge_flag_enable, BMO_edge_flag_test, BMO_face_flag_disable, BMO_face_flag_enable, BMO_mesh_delete_oflag_context(), BMO_slot_get(), BMO_vert_flag_enable, BMO_vert_flag_test, BMO_vert_flag_test_bool, DEL_ONLYTAGGED, BMLoop::e, e, EDGE_COL, ELE_DEL, l, BMFace::len, NULL, oflags, remdoubles_createface(), remdoubles_splitface(), BMesh::selected, BMOperator::slots_in, SWAP, BMesh::use_toolflags, BMLoop::v, v, v1, and v2.
void bmo_wireframe_exec | ( | BMesh * | bm, |
BMOperator * | op | ||
) |
Definition at line 20 of file bmo_wireframe.c.
References bm, BM_EDGE, BM_ELEM_TAG, BM_FACE, BM_mesh_elem_hflag_disable_all(), BM_mesh_wireframe(), BMO_slot_bool_get(), BMO_slot_buffer_from_enabled_hflag(), BMO_slot_buffer_hflag_enable(), BMO_slot_float_get(), MAXMAT, offset, BMOperator::slots_in, and BMOperator::slots_out.