Blender  V3.3
Classes
editmesh_path.c 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.h"
#include "BKE_context.h"
#include "BKE_editmesh.h"
#include "BKE_layer.h"
#include "BKE_report.h"
#include "ED_mesh.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
#include "ED_uvedit.h"
#include "ED_view3d.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
#include "bmesh.h"
#include "bmesh_tools.h"
#include "DEG_depsgraph.h"
#include "mesh_intern.h"

Go to the source code of this file.

Classes

struct  PathSelectParams
 
struct  UserData
 

Functions

Vert Path
static bool verttag_filter_cb (BMVert *v, void *UNUSED(user_data_v))
 
static bool verttag_test_cb (BMVert *v, void *UNUSED(user_data_v))
 
static void verttag_set_cb (BMVert *v, bool val, void *user_data_v)
 
static void mouse_mesh_shortest_path_vert (Scene *UNUSED(scene), Object *obedit, const struct PathSelectParams *op_params, BMVert *v_act, BMVert *v_dst)
 
Edge Path
static bool edgetag_filter_cb (BMEdge *e, void *UNUSED(user_data_v))
 
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 *me, const char edge_mode)
 
static void mouse_mesh_shortest_path_edge (Scene *scene, Object *obedit, const struct PathSelectParams *op_params, BMEdge *e_act, BMEdge *e_dst)
 
Face Path
static bool facetag_filter_cb (BMFace *f, void *UNUSED(user_data_v))
 
static bool facetag_test_cb (BMFace *f, void *UNUSED(user_data_v))
 
static void facetag_set_cb (BMFace *f, bool val, void *user_data_v)
 
static void mouse_mesh_shortest_path_face (Scene *UNUSED(scene), Object *obedit, const struct 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 struct 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, struct PathSelectParams *op_params)
 
static bool path_select_poll_property (const bContext *C, wmOperator *UNUSED(op), 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 52 of file editmesh_path.c.

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

static BMElem* edbm_elem_find_nearest ( ViewContext vc,
const char  htype 
)
static

◆ edbm_shortest_path_pick_ex()

static bool edbm_shortest_path_pick_ex ( Scene scene,
Object obedit,
const struct PathSelectParams op_params,
BMElem ele_src,
BMElem ele_dst 
)
static

◆ edbm_shortest_path_pick_exec()

static int edbm_shortest_path_pick_exec ( bContext C,
wmOperator op 
)
static

◆ edbm_shortest_path_pick_invoke()

static int edbm_shortest_path_pick_invoke ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ edbm_shortest_path_select_exec()

static int edbm_shortest_path_select_exec ( bContext C,
wmOperator op 
)
static

◆ edgetag_ensure_cd_flag()

static void edgetag_ensure_cd_flag ( Mesh me,
const char  edge_mode 
)
static

◆ edgetag_filter_cb()

static bool edgetag_filter_cb ( BMEdge e,
void UNUSEDuser_data_v 
)
static

Definition at line 274 of file editmesh_path.c.

References BM_elem_flag_test, BM_ELEM_HIDDEN, and e.

Referenced by mouse_mesh_shortest_path_edge().

◆ edgetag_set_cb()

static void edgetag_set_cb ( BMEdge e,
bool  val,
void user_data_v 
)
static

◆ edgetag_test_cb()

static bool edgetag_test_cb ( BMEdge e,
void user_data_v 
)
static

◆ facetag_filter_cb()

static bool facetag_filter_cb ( BMFace f,
void UNUSEDuser_data_v 
)
static

Definition at line 487 of file editmesh_path.c.

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 497 of file editmesh_path.c.

References BM_face_select_set(), and user_data.

Referenced by mouse_mesh_shortest_path_face().

◆ facetag_test_cb()

static bool facetag_test_cb ( BMFace f,
void UNUSEDuser_data_v 
)
static

Definition at line 492 of file editmesh_path.c.

References BM_elem_flag_test_bool, and BM_ELEM_SELECT.

Referenced by mouse_mesh_shortest_path_face().

◆ MESH_OT_shortest_path_pick()

void MESH_OT_shortest_path_pick ( wmOperatorType ot)

◆ MESH_OT_shortest_path_select()

void MESH_OT_shortest_path_select ( wmOperatorType ot)

◆ mouse_mesh_shortest_path_edge()

static void mouse_mesh_shortest_path_edge ( Scene scene,
Object obedit,
const struct PathSelectParams op_params,
BMEdge e_act,
BMEdge e_dst 
)
static

◆ mouse_mesh_shortest_path_face()

static void mouse_mesh_shortest_path_face ( Scene UNUSEDscene,
Object obedit,
const struct PathSelectParams op_params,
BMFace f_act,
BMFace f_dst 
)
static

◆ mouse_mesh_shortest_path_vert()

static void mouse_mesh_shortest_path_vert ( Scene UNUSEDscene,
Object obedit,
const struct PathSelectParams op_params,
BMVert v_act,
BMVert v_dst 
)
static

◆ path_select_params_from_op()

static void path_select_params_from_op ( wmOperator op,
ToolSettings ts,
struct PathSelectParams op_params 
)
static

◆ path_select_poll_property()

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

◆ path_select_properties()

static void path_select_properties ( wmOperatorType ot)
static

◆ verttag_filter_cb()

static bool verttag_filter_cb ( BMVert v,
void UNUSEDuser_data_v 
)
static

Definition at line 161 of file editmesh_path.c.

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 169 of file editmesh_path.c.

References BM_vert_select_set(), user_data, and v.

Referenced by mouse_mesh_shortest_path_vert().

◆ verttag_test_cb()

static bool verttag_test_cb ( BMVert v,
void UNUSEDuser_data_v 
)
static

Definition at line 165 of file editmesh_path.c.

References BM_elem_flag_test_bool, BM_ELEM_SELECT, and v.

Referenced by mouse_mesh_shortest_path_vert().