Blender  V3.3
editmesh_extrude.c File Reference
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BKE_context.h"
#include "BKE_editmesh.h"
#include "BKE_layer.h"
#include "BKE_report.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_mesh.h"
#include "ED_screen.h"
#include "ED_transform.h"
#include "ED_view3d.h"
#include "MEM_guardedalloc.h"
#include "mesh_intern.h"

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 691 of file editmesh_extrude.c.

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(), C, center, BMVert::co, copy_v3_v3(), blender::math::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(), Object::imat, invert_m4_m4(), line_point_side_v2(), View3DCursor::location, MEM_freeN, 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, Object::obmat, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, wmOperator::ptr, ViewContext::region, RNA_boolean_get(), ViewContext::rv3d, SCE_SNAP, SCE_SNAP_MODE_FACE_RAYCAST, ViewContext::scene, BMOperator::slots_out, ToolSettings::snap_flag, ToolSettings::snap_mode, sub_v3_v3(), Scene::toolsettings, BMesh::totvertsel, unit_m3(), BMEdge::v1, 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()

static int edbm_extrude_context_exec ( bContext C,
wmOperator op 
)
static

◆ edbm_extrude_discrete_faces()

static bool edbm_extrude_discrete_faces ( BMEditMesh em,
wmOperator op,
const char  hflag 
)
static

◆ edbm_extrude_edge_exclude_mirror()

static void edbm_extrude_edge_exclude_mirror ( Object obedit,
BMEditMesh em,
const char  hflag,
BMOperator op,
BMOpSlot slot_edges_exclude 
)
static

◆ edbm_extrude_edges_exec()

static int edbm_extrude_edges_exec ( bContext C,
wmOperator op 
)
static

◆ edbm_extrude_edges_indiv()

bool edbm_extrude_edges_indiv ( struct BMEditMesh em,
struct wmOperator op,
char  hflag,
bool  use_normal_flip 
)

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

static int edbm_extrude_faces_exec ( bContext C,
wmOperator op 
)
static

◆ edbm_extrude_htype_from_em_select()

static char edbm_extrude_htype_from_em_select ( BMEditMesh em)
static

◆ edbm_extrude_mesh()

static bool edbm_extrude_mesh ( Object obedit,
BMEditMesh em,
wmOperator op 
)
static

◆ edbm_extrude_region_exec()

static int edbm_extrude_region_exec ( bContext C,
wmOperator op 
)
static

◆ edbm_extrude_repeat_exec()

static int edbm_extrude_repeat_exec ( bContext C,
wmOperator op 
)
static

◆ edbm_extrude_verts_exec()

static int edbm_extrude_verts_exec ( bContext C,
wmOperator op 
)
static

◆ edbm_extrude_verts_indiv()

static bool edbm_extrude_verts_indiv ( BMEditMesh em,
wmOperator op,
const char  hflag 
)
static

◆ MESH_OT_dupli_extrude_cursor()

void MESH_OT_dupli_extrude_cursor ( wmOperatorType ot)

◆ MESH_OT_extrude_context()

void MESH_OT_extrude_context ( wmOperatorType ot)

◆ MESH_OT_extrude_edges_indiv()

void MESH_OT_extrude_edges_indiv ( wmOperatorType ot)

◆ MESH_OT_extrude_faces_indiv()

void MESH_OT_extrude_faces_indiv ( wmOperatorType ot)

◆ MESH_OT_extrude_region()

void MESH_OT_extrude_region ( wmOperatorType ot)

◆ MESH_OT_extrude_repeat()

void MESH_OT_extrude_repeat ( wmOperatorType ot)

◆ MESH_OT_extrude_verts_indiv()

void MESH_OT_extrude_verts_indiv ( wmOperatorType ot)