Blender V4.3
editmesh_path.cc File Reference
#include "MEM_guardedalloc.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_windowmanager_types.h"
#include "BLI_linklist.h"
#include "BLI_math_vector.h"
#include "BKE_context.hh"
#include "BKE_customdata.hh"
#include "BKE_editmesh.hh"
#include "BKE_layer.hh"
#include "BKE_mesh_types.hh"
#include "BKE_report.hh"
#include "ED_mesh.hh"
#include "ED_object.hh"
#include "ED_screen.hh"
#include "ED_select_utils.hh"
#include "ED_uvedit.hh"
#include "ED_view3d.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "bmesh.hh"
#include "bmesh_tools.hh"
#include "DEG_depsgraph.hh"
#include "mesh_intern.hh"

Go to the source code of this file.

Classes

struct  PathSelectParams
 
struct  UserData
 

Functions

Vert Path
static bool verttag_filter_cb (BMVert *v, void *)
 
static bool verttag_test_cb (BMVert *v, void *)
 
static void verttag_set_cb (BMVert *v, bool val, void *user_data_v)
 
static void mouse_mesh_shortest_path_vert (Scene *, Object *obedit, const PathSelectParams *op_params, BMVert *v_act, BMVert *v_dst)
 
Edge Path
static bool edgetag_filter_cb (BMEdge *e, void *)
 
static bool edgetag_test_cb (BMEdge *e, void *user_data_v)
 
static void edgetag_set_cb (BMEdge *e, bool val, void *user_data_v)
 
static void edgetag_ensure_cd_flag (Mesh *mesh, const char edge_mode)
 
static void mouse_mesh_shortest_path_edge (Scene *scene, Object *obedit, const PathSelectParams *op_params, BMEdge *e_act, BMEdge *e_dst)
 
Face Path
static bool facetag_filter_cb (BMFace *f, void *)
 
static bool facetag_test_cb (BMFace *f, void *)
 
static void facetag_set_cb (BMFace *f, bool val, void *user_data_v)
 
static void mouse_mesh_shortest_path_face (Scene *, Object *obedit, const PathSelectParams *op_params, BMFace *f_act, BMFace *f_dst)
 
Main Operator for vert/edge/face tag
static bool edbm_shortest_path_pick_ex (Scene *scene, Object *obedit, const PathSelectParams *op_params, BMElem *ele_src, BMElem *ele_dst)
 
static int edbm_shortest_path_pick_exec (bContext *C, wmOperator *op)
 
static BMElemedbm_elem_find_nearest (ViewContext *vc, const char htype)
 
static BMElemedbm_elem_active_elem_or_face_get (BMesh *bm)
 
static int edbm_shortest_path_pick_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void MESH_OT_shortest_path_pick (wmOperatorType *ot)
 
Select Path Between Existing Selection
static int edbm_shortest_path_select_exec (bContext *C, wmOperator *op)
 
void MESH_OT_shortest_path_select (wmOperatorType *ot)
 

Path Select Struct & Properties

enum  {
  EDGE_MODE_SELECT = 0 , EDGE_MODE_TAG_SEAM = 1 , EDGE_MODE_TAG_SHARP = 2 , EDGE_MODE_TAG_CREASE = 3 ,
  EDGE_MODE_TAG_BEVEL = 4 , EDGE_MODE_TAG_FREESTYLE = 5
}
 
static void path_select_properties (wmOperatorType *ot)
 
static void path_select_params_from_op (wmOperator *op, ToolSettings *ts, PathSelectParams *op_params)
 
static bool path_select_poll_property (const bContext *C, wmOperator *, const PropertyRNA *prop)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
EDGE_MODE_SELECT 
EDGE_MODE_TAG_SEAM 
EDGE_MODE_TAG_SHARP 
EDGE_MODE_TAG_CREASE 
EDGE_MODE_TAG_BEVEL 
EDGE_MODE_TAG_FREESTYLE 

Definition at line 56 of file editmesh_path.cc.

Function Documentation

◆ edbm_elem_active_elem_or_face_get()

static BMElem * edbm_elem_active_elem_or_face_get ( BMesh * bm)
static

◆ edbm_elem_find_nearest()

◆ edbm_shortest_path_pick_ex()

◆ edbm_shortest_path_pick_exec()

◆ edbm_shortest_path_pick_invoke()

◆ edbm_shortest_path_select_exec()

◆ edgetag_ensure_cd_flag()

◆ edgetag_filter_cb()

static bool edgetag_filter_cb ( BMEdge * e,
void *  )
static

Definition at line 291 of file editmesh_path.cc.

References BM_elem_flag_test, BM_ELEM_HIDDEN, and e.

Referenced by mouse_mesh_shortest_path_edge().

◆ edgetag_set_cb()

◆ edgetag_test_cb()

◆ facetag_filter_cb()

static bool facetag_filter_cb ( BMFace * f,
void *  )
static

Definition at line 516 of file editmesh_path.cc.

References BM_elem_flag_test, and BM_ELEM_HIDDEN.

Referenced by mouse_mesh_shortest_path_face().

◆ facetag_set_cb()

static void facetag_set_cb ( BMFace * f,
bool val,
void * user_data_v )
static

Definition at line 526 of file editmesh_path.cc.

References UserData::bm, and BM_face_select_set().

Referenced by mouse_mesh_shortest_path_face().

◆ facetag_test_cb()

static bool facetag_test_cb ( BMFace * f,
void *  )
static

Definition at line 521 of file editmesh_path.cc.

References BM_elem_flag_test_bool, and BM_ELEM_SELECT.

Referenced by mouse_mesh_shortest_path_face().

◆ MESH_OT_shortest_path_pick()

◆ MESH_OT_shortest_path_select()

◆ mouse_mesh_shortest_path_edge()

◆ mouse_mesh_shortest_path_face()

◆ mouse_mesh_shortest_path_vert()

◆ path_select_params_from_op()

◆ path_select_poll_property()

static bool path_select_poll_property ( const bContext * C,
wmOperator * ,
const PropertyRNA * prop )
static

◆ path_select_properties()

◆ verttag_filter_cb()

static bool verttag_filter_cb ( BMVert * v,
void *  )
static

Definition at line 166 of file editmesh_path.cc.

References BM_elem_flag_test, BM_ELEM_HIDDEN, and v.

Referenced by mouse_mesh_shortest_path_vert().

◆ verttag_set_cb()

static void verttag_set_cb ( BMVert * v,
bool val,
void * user_data_v )
static

Definition at line 174 of file editmesh_path.cc.

References UserData::bm, BM_vert_select_set(), and v.

Referenced by mouse_mesh_shortest_path_vert().

◆ verttag_test_cb()

static bool verttag_test_cb ( BMVert * v,
void *  )
static

Definition at line 170 of file editmesh_path.cc.

References BM_elem_flag_test_bool, BM_ELEM_SELECT, and v.

Referenced by mouse_mesh_shortest_path_vert().