Blender V4.5
editmesh_polybuild.cc File Reference
#include <algorithm>
#include "DNA_object_types.h"
#include "BKE_context.hh"
#include "BKE_editmesh.hh"
#include "BKE_layer.hh"
#include "BKE_object_types.hh"
#include "BKE_screen.hh"
#include "BLI_listbase.h"
#include "BLI_math_geom.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "WM_types.hh"
#include "ED_mesh.hh"
#include "ED_object.hh"
#include "ED_transform.hh"
#include "ED_view3d.hh"
#include "bmesh.hh"
#include "mesh_intern.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "WM_api.hh"
#include "DEG_depsgraph.hh"

Go to the source code of this file.

Functions

Local Utilities
static void edbm_selectmode_ensure (Scene *scene, BMEditMesh *em, short selectmode)
static void edbm_flag_disable_all_multi (const Scene *scene, ViewLayer *view_layer, View3D *v3d, const char hflag)
static bool edbm_preselect_or_active (bContext *C, const View3D *v3d, Base **r_base, BMElem **r_ele)
static ViewContext edbm_preselect_or_active_init_viewcontext (bContext *C, Base **r_base, BMElem **r_ele)
static wmOperatorStatus edbm_polybuild_transform_at_cursor_invoke (bContext *C, wmOperator *, const wmEvent *)
void MESH_OT_polybuild_transform_at_cursor (wmOperatorType *ot)
static wmOperatorStatus edbm_polybuild_delete_at_cursor_invoke (bContext *C, wmOperator *op, const wmEvent *)
void MESH_OT_polybuild_delete_at_cursor (wmOperatorType *ot)
Face at Cursor
static wmOperatorStatus edbm_polybuild_face_at_cursor_invoke (bContext *C, wmOperator *op, const wmEvent *event)
void MESH_OT_polybuild_face_at_cursor (wmOperatorType *ot)
Split at Cursor
static wmOperatorStatus edbm_polybuild_split_at_cursor_invoke (bContext *C, wmOperator *, const wmEvent *event)
void MESH_OT_polybuild_split_at_cursor (wmOperatorType *ot)
Dissolve at Cursor
static wmOperatorStatus edbm_polybuild_dissolve_at_cursor_invoke (bContext *C, wmOperator *op, const wmEvent *)
void MESH_OT_polybuild_dissolve_at_cursor (wmOperatorType *ot)

Detailed Description

Tools to implement face building tool, an experimental tool for quickly constructing/manipulating faces.

Definition in file editmesh_polybuild.cc.

Function Documentation

◆ edbm_flag_disable_all_multi()

◆ edbm_polybuild_delete_at_cursor_invoke()

◆ edbm_polybuild_dissolve_at_cursor_invoke()

◆ edbm_polybuild_face_at_cursor_invoke()

wmOperatorStatus edbm_polybuild_face_at_cursor_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

Definition at line 292 of file editmesh_polybuild.cc.

References blender::ed::object::base_activate(), BKE_view_layer_active_base_get(), BKE_view_layer_synced_ensure(), bm, BMEditMesh::bm, BM_CREATE_NOP, BM_DISK_EDGE_NEXT, BM_EDGE, BM_edge_calc_length_squared(), BM_edge_create(), BM_edge_is_boundary(), BM_edge_is_wire(), BM_edge_other_vert(), BM_edge_split(), BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_FACE, BM_face_create_verts(), BM_select_history_store, BM_VERT, BM_vert_create(), BM_vert_select_set(), C, EDBMUpdate_Params::calc_looptris, EDBMUpdate_Params::calc_normals, BMVert::co, copy_v3_v3(), Scene::cursor, Object::data, BMVert::e, ED_view3d_init_mats_rv3d(), ED_view3d_win_to_3d_int(), edbm_flag_disable_all_multi(), edbm_polybuild_face_at_cursor_invoke(), edbm_preselect_or_active_init_viewcontext(), edbm_selectmode_ensure(), EDBM_update(), ViewContext::em, BMLoop::f, BMElem::head, BMHeader::htype, i, invert_m4_m4(), EDBMUpdate_Params::is_destructive, BMEdge::l, l, BMFace::len, line_point_factor_v3(), View3DCursor::location, mid_v3_v3v3(), mul_m4_v3(), mul_v3_m4v3(), wmEvent::mval, ViewContext::obedit, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, ViewContext::region, RNA_boolean_get(), Object::runtime, ViewContext::rv3d, SCE_SELECT_VERTEX, ViewContext::scene, BMLoop::v, BMEdge::v1, BMEdge::v2, ViewContext::v3d, ViewContext::view_layer, ViewContext::win, and WM_event_add_mousemove().

Referenced by edbm_polybuild_face_at_cursor_invoke(), and MESH_OT_polybuild_face_at_cursor().

◆ edbm_polybuild_split_at_cursor_invoke()

◆ edbm_polybuild_transform_at_cursor_invoke()

◆ edbm_preselect_or_active()

◆ edbm_preselect_or_active_init_viewcontext()

◆ edbm_selectmode_ensure()

◆ MESH_OT_polybuild_delete_at_cursor()

◆ MESH_OT_polybuild_dissolve_at_cursor()

◆ MESH_OT_polybuild_face_at_cursor()

◆ MESH_OT_polybuild_split_at_cursor()

◆ MESH_OT_polybuild_transform_at_cursor()