|
Blender V4.3
|
#include "DNA_modifier_types.h"#include "DNA_object_types.h"#include "BLI_listbase.h"#include "BLI_math_matrix.h"#include "BLI_math_rotation.h"#include "BLI_math_vector.h"#include "BKE_context.hh"#include "BKE_editmesh.hh"#include "BKE_layer.hh"#include "BKE_object_types.hh"#include "BKE_report.hh"#include "RNA_access.hh"#include "RNA_define.hh"#include "WM_api.hh"#include "WM_types.hh"#include "ED_mesh.hh"#include "ED_screen.hh"#include "ED_transform.hh"#include "ED_view3d.hh"#include "MEM_guardedalloc.h"#include "mesh_intern.hh"Go to the source code of this file.
Functions | |
Extrude Internal Utilities | |
| static void | edbm_extrude_edge_exclude_mirror (Object *obedit, BMEditMesh *em, const char hflag, BMOperator *op, BMOpSlot *slot_edges_exclude) |
| static bool | edbm_extrude_discrete_faces (BMEditMesh *em, wmOperator *op, const char hflag) |
| bool | edbm_extrude_edges_indiv (BMEditMesh *em, wmOperator *op, const char hflag, const bool use_normal_flip) |
| static bool | edbm_extrude_verts_indiv (BMEditMesh *em, wmOperator *op, const char hflag) |
| static char | edbm_extrude_htype_from_em_select (BMEditMesh *em) |
| static bool | edbm_extrude_ex (Object *obedit, BMEditMesh *em, char htype, const char hflag, const bool use_normal_flip, const bool use_dissolve_ortho_edges, const bool use_mirror, const bool use_select_history) |
Extrude Repeat Operator | |
| static int | edbm_extrude_repeat_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_extrude_repeat (wmOperatorType *ot) |
Extrude Operator | |
| static bool | edbm_extrude_mesh (Object *obedit, BMEditMesh *em, wmOperator *op) |
| static int | edbm_extrude_region_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_extrude_region (wmOperatorType *ot) |
Extrude Context Operator | |
Guess what to do based on selection. | |
| static int | edbm_extrude_context_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_extrude_context (wmOperatorType *ot) |
Extrude Verts Operator | |
| static int | edbm_extrude_verts_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_extrude_verts_indiv (wmOperatorType *ot) |
Extrude Edges Operator | |
| static int | edbm_extrude_edges_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_extrude_edges_indiv (wmOperatorType *ot) |
Extrude Faces Operator | |
| static int | edbm_extrude_faces_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_extrude_faces_indiv (wmOperatorType *ot) |
Dupli-Extrude Operator | |
Add-click-mesh (extrude) operator. | |
| static int | edbm_dupli_extrude_cursor_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | MESH_OT_dupli_extrude_cursor (wmOperatorType *ot) |
|
static |
Definition at line 687 of file editmesh_extrude.cc.
References add_v3_v3(), angle(), angle_normalized_v3v3(), axis_angle_to_mat3(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_MESH, BM_VERT, BM_vert_select_set(), BM_VERTS_OF_MESH, BMO_ITER, BMO_op_exec(), BMVert::co, copy_v3_v3(), cross(), cross_v3_v3v3(), CTX_data_ensure_evaluated_depsgraph(), Scene::cursor, Object::data, depsgraph, ED_view3d_init_mats_rv3d(), ED_view3d_project_float_object(), ED_view3d_viewcontext_init_object(), ED_view3d_win_to_3d_int(), edbm_extrude_ex(), edbm_extrude_htype_from_em_select(), EDBM_op_callf(), EDBM_op_finish(), EDBM_op_init(), EDBM_project_snap_verts(), EDBM_update(), ViewContext::em, em_setup_viewcontext(), float, invert_m4_m4(), line_point_side_v2(), View3DCursor::location, mul_m4_v3(), mul_mat3_m4_v3(), mul_v3_fl(), mul_v3_m4v3(), mul_v3_mat3_m4v3(), wmEvent::mval, NC_GEOM, ND_DATA, ND_SELECT, nor, normalize_v3(), normalize_v3_v3(), ViewContext::obact, ViewContext::obedit, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, params, wmOperator::ptr, ViewContext::region, RNA_boolean_get(), Object::runtime, ViewContext::rv3d, SCE_SNAP, SCE_SNAP_INDIVIDUAL_PROJECT, SCE_SNAP_TO_FACE, ViewContext::scene, BMOperator::slots_out, ToolSettings::snap_flag, ToolSettings::snap_mode, sub_v3_v3(), Scene::toolsettings, BMesh::totvertsel, unit_m3(), BMEdge::v1, BMEdge::v2, ViewContext::v3d, V3D_PROJ_RET_OK, V3D_PROJ_TEST_NOP, ViewContext::view_layer, RegionView3D::viewinv, WM_event_add_notifier(), WM_operator_flag_only_pass_through_on_press(), and zero_v3().
Referenced by MESH_OT_dupli_extrude_cursor().
|
static |
Definition at line 486 of file editmesh_extrude.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), edbm_extrude_mesh(), EDBM_update(), OPERATOR_FINISHED, params, and BMesh::totvertsel.
Referenced by MESH_OT_extrude_context().
|
static |
Definition at line 105 of file editmesh_extrude.cc.
References BMEditMesh::bm, BM_ELEM_SELECT, BM_FACE, BM_face_select_set(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, BMO_ITER, BMO_op_exec(), copy_v3_v3(), EDBM_flag_disable_all(), EDBM_op_finish(), EDBM_op_init(), l, BMFace::no, BMVert::no, BMOperator::slots_out, and BMLoop::v.
Referenced by edbm_extrude_faces_exec().
|
static |
Definition at line 44 of file editmesh_extrude.cc.
References bm, BMEditMesh::bm, BM_edge_is_boundary(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ITER_MESH, BMO_slot_map_empty_insert(), copy_v3_v3(), eModifierMode_Realtime, eModifierType_Mirror, fabsf, MirrorModifierData::flag, invert_m4_m4(), LISTBASE_FOREACH, MirrorModifierData::mirror_ob, MOD_MIR_AXIS_X, MOD_MIR_AXIS_Y, MOD_MIR_AXIS_Z, MOD_MIR_CLIPPING, Object::modifiers, mul_m4_m4m4(), mul_v3_m4v3(), and MirrorModifierData::tolerance.
Referenced by edbm_extrude_ex().
|
static |
Definition at line 586 of file editmesh_extrude.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_ELEM_SELECT, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), edbm_extrude_edges_indiv(), EDBM_update(), OPERATOR_FINISHED, params, wmOperator::ptr, RNA_boolean_get(), and BMesh::totedgesel.
Referenced by MESH_OT_extrude_edges_indiv().
| bool edbm_extrude_edges_indiv | ( | BMEditMesh * | em, |
| wmOperator * | op, | ||
| char | hflag, | ||
| bool | use_normal_flip ) |
Extrudes individual edges.
Definition at line 137 of file editmesh_extrude.cc.
References bm, BMEditMesh::bm, BM_EDGE, BM_ELEM_SELECT, BM_SELECT_HISTORY_BACKUP, BM_SELECT_HISTORY_RESTORE, BM_VERT, BMO_op_exec(), BMO_slot_buffer_hflag_enable(), EDBM_flag_disable_all(), EDBM_op_finish(), EDBM_op_init(), and BMOperator::slots_out.
Referenced by edbm_extrude_edges_exec(), edbm_extrude_mesh(), and geometry_extract_apply().
|
static |
Definition at line 213 of file editmesh_extrude.cc.
References bm, BMEditMesh::bm, BM_ALL_NOLOOP, BM_EDGE, BM_ELEM_SELECT, BM_elem_select_set(), BM_FACE, BM_SELECT_HISTORY_BACKUP, BM_SELECT_HISTORY_RESTORE, BMO_FLAG_DEFAULTS, BMO_ITER, BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_slot_bool_set(), BMO_slot_buffer_from_enabled_hflag(), BMO_slot_get(), edbm_extrude_edge_exclude_mirror(), EDBM_flag_disable_all(), BMOperator::slots_in, and BMOperator::slots_out.
Referenced by edbm_dupli_extrude_cursor_invoke(), edbm_extrude_mesh(), and edbm_extrude_repeat_exec().
|
static |
Definition at line 637 of file editmesh_extrude.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_ELEM_SELECT, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), edbm_extrude_discrete_faces(), EDBM_update(), OPERATOR_FINISHED, params, and BMesh::totfacesel.
Referenced by MESH_OT_extrude_faces_indiv().
|
static |
Definition at line 189 of file editmesh_extrude.cc.
References BMEditMesh::bm, BM_ALL_NOLOOP, BM_EDGE, BM_FACE, BM_VERT, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::totedgesel, and BMesh::totfacesel.
Referenced by edbm_dupli_extrude_cursor_invoke(), and edbm_extrude_mesh().
|
static |
Implement generic externally called extrude function.
Definition at line 358 of file editmesh_extrude.cc.
References BKE_report(), BMEditMesh::bm, BM_ELEM_SELECT, edbm_extrude_edges_indiv(), edbm_extrude_ex(), edbm_extrude_htype_from_em_select(), edbm_extrude_verts_indiv(), NONE, wmOperator::ptr, wmOperator::reports, RNA_boolean_get(), RPT_ERROR, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by edbm_extrude_context_exec(), and edbm_extrude_region_exec().
|
static |
Definition at line 430 of file editmesh_extrude.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), edbm_extrude_mesh(), EDBM_update(), OPERATOR_FINISHED, params, and BMesh::totvertsel.
Referenced by MESH_OT_extrude_region().
|
static |
Definition at line 266 of file editmesh_extrude.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_ALL_NOLOOP, BM_ELEM_SELECT, BMO_FLAG_DEFAULTS, BMO_op_callf(), copy_m3_m4(), copy_v3_v3(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region_view3d(), CTX_wm_view3d(), edbm_extrude_ex(), EDBM_update(), invert_m3(), mul_v3_fl(), mul_v3_m3v3(), normalize_v3_v3(), OPERATOR_FINISHED, params, RegionView3D::persinv, wmOperator::ptr, RNA_float_get(), RNA_int_get(), RNA_property_float_get_array(), RNA_property_float_set_array(), RNA_property_is_set(), RNA_struct_find_property(), and steps.
Referenced by MESH_OT_extrude_repeat().
|
static |
Definition at line 537 of file editmesh_extrude.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_ELEM_SELECT, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), edbm_extrude_verts_indiv(), EDBM_update(), OPERATOR_FINISHED, params, and BMesh::totvertsel.
Referenced by MESH_OT_extrude_verts_indiv().
|
static |
Definition at line 170 of file editmesh_extrude.cc.
References BMEditMesh::bm, BM_ELEM_SELECT, BM_VERT, BMO_op_exec(), BMO_slot_buffer_hflag_disable(), BMO_slot_buffer_hflag_enable(), EDBM_op_finish(), EDBM_op_init(), BMOperator::slots_in, and BMOperator::slots_out.
Referenced by edbm_extrude_mesh(), and edbm_extrude_verts_exec().
| void MESH_OT_dupli_extrude_cursor | ( | wmOperatorType * | ot | ) |
Definition at line 902 of file editmesh_extrude.cc.
References wmOperatorType::description, ED_operator_editmesh_region_view3d(), edbm_dupli_extrude_cursor_invoke(), wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_DEPENDS_ON_CURSOR, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_extrude_context | ( | wmOperatorType * | ot | ) |
Definition at line 512 of file editmesh_extrude.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_extrude_context_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, P_MIRROR_DUMMY, P_NO_DEFAULTS, wmOperatorType::poll, RNA_def_boolean(), wmOperatorType::srna, and Transform_Properties().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_extrude_edges_indiv | ( | wmOperatorType * | ot | ) |
Definition at line 612 of file editmesh_extrude.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_extrude_edges_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, P_MIRROR_DUMMY, P_NO_DEFAULTS, wmOperatorType::poll, RNA_def_boolean(), wmOperatorType::srna, and Transform_Properties().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_extrude_faces_indiv | ( | wmOperatorType * | ot | ) |
Definition at line 662 of file editmesh_extrude.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_extrude_faces_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, P_MIRROR_DUMMY, P_NO_DEFAULTS, wmOperatorType::poll, and Transform_Properties().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_extrude_region | ( | wmOperatorType * | ot | ) |
Definition at line 457 of file editmesh_extrude.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_extrude_region_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, P_MIRROR_DUMMY, P_NO_DEFAULTS, wmOperatorType::poll, RNA_def_boolean(), wmOperatorType::srna, and Transform_Properties().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_extrude_repeat | ( | wmOperatorType * | ot | ) |
Definition at line 321 of file editmesh_extrude.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_extrude_repeat_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RNA_def_float(), RNA_def_float_vector_xyz(), RNA_def_int(), RNA_def_property_flag(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_extrude_verts_indiv | ( | wmOperatorType * | ot | ) |
Definition at line 562 of file editmesh_extrude.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_extrude_verts_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, P_MIRROR_DUMMY, P_NO_DEFAULTS, wmOperatorType::poll, and Transform_Properties().
Referenced by ED_operatortypes_mesh().