Blender V4.3
editmesh_extrude.cc File Reference
#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)
 

Function Documentation

◆ edbm_dupli_extrude_cursor_invoke()

static int edbm_dupli_extrude_cursor_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
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().

◆ edbm_extrude_context_exec()

◆ edbm_extrude_discrete_faces()

◆ edbm_extrude_edge_exclude_mirror()

◆ edbm_extrude_edges_exec()

◆ edbm_extrude_edges_indiv()

◆ edbm_extrude_ex()

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 )
static

◆ edbm_extrude_faces_exec()

◆ edbm_extrude_htype_from_em_select()

static char edbm_extrude_htype_from_em_select ( BMEditMesh * em)
static

◆ edbm_extrude_mesh()

◆ edbm_extrude_region_exec()

◆ edbm_extrude_repeat_exec()

◆ edbm_extrude_verts_exec()

◆ edbm_extrude_verts_indiv()

◆ MESH_OT_dupli_extrude_cursor()

◆ 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()