71 const float screen_co_a[2],
72 const float screen_co_b[2],
99 const float UNUSED(no_f[3]),
100 const short UNUSED(no_s[3]))
113 data->func(
data->userData,
mv, screen_co, index);
119 void (*func)(
void *userData,
MVert *eve,
const float screen_co[2],
int index),
135 data.userData = userData;
136 data.clip_flag = clip_flag;
148 const float UNUSED(no_f[3]),
149 const short UNUSED(no_s[3]))
162 data->func(
data->userData, eve, screen_co, index);
168 void (*func)(
void *userData,
BMVert *eve,
const float screen_co[2],
int index),
181 data.userData = userData;
182 data.clip_flag = clip_flag;
203 float screen_co_a[2];
204 float screen_co_b[2];
222 data->func(
data->userData, eed, screen_co_a, screen_co_b, index);
227 void (*func)(
void *userData,
229 const float screen_co_a[2],
230 const float screen_co_b[2],
244 data.win_rect.xmin = 0;
245 data.win_rect.ymin = 0;
250 data.userData = userData;
251 data.clip_flag = clip_flag;
285 float screen_co_a[2];
286 float screen_co_b[2];
307 data->func(
data->userData, eed, screen_co_a, screen_co_b, index);
316 void (*func)(
void *userData,
318 const float screen_co_a[2],
319 const float screen_co_b[2],
333 data.win_rect.xmin = 0;
334 data.win_rect.ymin = 0;
339 data.userData = userData;
340 data.clip_flag = clip_flag;
367 data->func(
data->userData, efa, screen_co, index);
374 void (*func)(
void *userData,
BMFace *efa,
const float screen_co_b[2],
int index),
386 data.userData = userData;
387 data.clip_flag = clip_flag;
404 void (*func)(
void *userData,
409 bool handles_visible,
410 const float screen_co_b[2]),
427 for (nu = nurbs->
first; nu; nu = nu->
next) {
429 for (i = 0; i < nu->
pntsu; i++) {
432 if (bezt->
hide == 0) {
437 if (!handles_visible) {
443 func(userData, nu,
NULL, bezt, 1,
false, screen_co);
452 func(userData, nu,
NULL, bezt, 0,
true, screen_co);
459 func(userData, nu,
NULL, bezt, 1,
true, screen_co);
466 func(userData, nu,
NULL, bezt, 2,
true, screen_co);
481 func(userData, nu, bp,
NULL, -1,
false, screen_co);
493 void (*func)(
void *userData,
495 const float screen_co_b[2]),
508 func(userData, ml, screen_co);
516 void (*func)(
void *userData,
BPoint *bp,
const float screen_co[2]),
535 for (i = 0; i <
N; i++, bp++,
co += 3) {
540 func(userData, bp, screen_co);
550 void (*func)(
void *userData,
552 const float screen_co_a[2],
553 const float screen_co_b[2]),
564 float screen_co_a[2], screen_co_b[2];
565 int points_proj_tot = 0;
587 if (points_proj_tot) {
588 func(userData, ebone, screen_co_a, screen_co_b);
599 void (*func)(
void *userData,
601 const float screen_co_a[2],
602 const float screen_co_b[2]),
616 float screen_co_a[2], screen_co_b[2];
617 int points_proj_tot = 0;
639 if (points_proj_tot) {
640 func(userData, pchan, screen_co_a, screen_co_b);
struct Mesh * editbmesh_get_eval_cage_from_orig(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *obedit, const struct CustomData_MeshMasks *dataMask)
Blender kernel action and pose functionality.
struct bPoseChannel * BKE_pose_channel_find_name(const struct bPose *pose, const char *name)
#define PBONE_VISIBLE(arm, bone)
struct ListBase * BKE_curve_editNurbs_get(struct Curve *cu)
const CustomData_MeshMasks CD_MASK_BAREMESH
display list (or rather multi purpose list) stuff.
DispList * BKE_displist_find(struct ListBase *lb, int type)
void BKE_mesh_foreach_mapped_edge(struct Mesh *mesh, void(*func)(void *userData, int index, const float v0co[3], const float v1co[3]), void *userData)
void BKE_mesh_foreach_mapped_subdiv_face_center(struct Mesh *mesh, void(*func)(void *userData, int index, const float cent[3], const float no[3]), void *userData, MeshForeachFlag flag)
void BKE_mesh_foreach_mapped_face_center(struct Mesh *mesh, void(*func)(void *userData, int index, const float cent[3], const float no[3]), void *userData, MeshForeachFlag flag)
void BKE_mesh_foreach_mapped_vert(struct Mesh *mesh, void(*func)(void *userData, int index, const float co[3], const float no_f[3], const short no_s[3]), void *userData, MeshForeachFlag flag)
struct Mesh * mesh_get_eval_final(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, const struct CustomData_MeshMasks *dataMask)
bool BKE_modifiers_uses_subsurf_facedots(const struct Scene *scene, struct Object *ob)
bool clip_segment_v3_plane_n(const float p1[3], const float p2[3], const float plane_array[][4], const int plane_tot, float r_p1[3], float r_p2[3])
bool BLI_rctf_isect_segment(const struct rctf *rect, const float s1[2], const float s2[2])
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
#define BEZT_ISSEL_ANY(bezt)
Object is a sort of wrapper for general info.
#define EBONE_VISIBLE(arm, ebone)
eV3DProjStatus ED_view3d_project_float_object(const struct ARegion *region, const float co[3], float r_co[2], const eV3DProjTest flag)
void ED_view3d_clipping_local(struct RegionView3D *rv3d, const float mat[4][4])
#define ED_view3d_check_mats_rv3d(rv3d)
#define BM_elem_flag_test(ele, hflag)
void BM_mesh_elem_table_ensure(BMesh *bm, const char htype)
BLI_INLINE BMFace * BM_face_at_index(BMesh *bm, const int index)
BLI_INLINE BMEdge * BM_edge_at_index(BMesh *bm, const int index)
BLI_INLINE BMVert * BM_vert_at_index(BMesh *bm, const int index)
struct EditLatt * editlatt
struct CurveCache * curve_cache
struct Depsgraph * depsgraph
struct RegionView3D * rv3d
struct bPoseChannel * next
void(* func)(void *userData, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index)
void(* func)(void *userData, BMFace *efa, const float screen_co_b[2], int index)
void(* func)(void *userData, MVert *mv, const float screen_co_b[2], int index)
void(* func)(void *userData, BMVert *eve, const float screen_co_b[2], int index)
void armature_foreachScreenBone(struct ViewContext *vc, void(*func)(void *userData, struct EditBone *ebone, const float screen_co_a[2], const float screen_co_b[2]), void *userData, const eV3DProjTest clip_flag)
void mball_foreachScreenElem(struct ViewContext *vc, void(*func)(void *userData, struct MetaElem *ml, const float screen_co_b[2]), void *userData, const eV3DProjTest clip_flag)
struct foreachScreenVert_userData foreachScreenVert_userData
void mesh_foreachScreenEdge_clip_bb_segment(ViewContext *vc, void(*func)(void *userData, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index), void *userData, eV3DProjTest clip_flag)
void mesh_foreachScreenEdge(ViewContext *vc, void(*func)(void *userData, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index), void *userData, eV3DProjTest clip_flag)
struct foreachScreenFace_userData foreachScreenFace_userData
static void meshobject_foreachScreenVert__mapFunc(void *userData, int index, const float co[3], const float UNUSED(no_f[3]), const short UNUSED(no_s[3]))
static void mesh_foreachScreenEdge__mapFunc(void *userData, int index, const float v0co[3], const float v1co[3])
void nurbs_foreachScreenVert(ViewContext *vc, void(*func)(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, bool handles_visible, const float screen_co_b[2]), void *userData, const eV3DProjTest clip_flag)
struct foreachScreenObjectVert_userData foreachScreenObjectVert_userData
static void mesh_foreachScreenEdge_clip_bb_segment__mapFunc(void *userData, int index, const float v0co[3], const float v1co[3])
void lattice_foreachScreenVert(ViewContext *vc, void(*func)(void *userData, BPoint *bp, const float screen_co[2]), void *userData, const eV3DProjTest clip_flag)
void mesh_foreachScreenVert(ViewContext *vc, void(*func)(void *userData, BMVert *eve, const float screen_co[2], int index), void *userData, eV3DProjTest clip_flag)
static void mesh_foreachScreenFace__mapFunc(void *userData, int index, const float cent[3], const float UNUSED(no[3]))
void meshobject_foreachScreenVert(ViewContext *vc, void(*func)(void *userData, MVert *eve, const float screen_co[2], int index), void *userData, eV3DProjTest clip_flag)
struct foreachScreenEdge_userData foreachScreenEdge_userData
void mesh_foreachScreenFace(ViewContext *vc, void(*func)(void *userData, BMFace *efa, const float screen_co_b[2], int index), void *userData, const eV3DProjTest clip_flag)
void pose_foreachScreenBone(struct ViewContext *vc, void(*func)(void *userData, struct bPoseChannel *pchan, const float screen_co_a[2], const float screen_co_b[2]), void *userData, const eV3DProjTest clip_flag)
static void mesh_foreachScreenVert__mapFunc(void *userData, int index, const float co[3], const float UNUSED(no_f[3]), const short UNUSED(no_s[3]))