49 const float screen_co[2])
65 else if (beztindex == 1) {
77 if (bezt && beztindex == 1) {
81 if (dist_test < data->dist) {
82 data->dist = dist_test;
87 data->hpoint = bezt ? beztindex : 0;
88 data->is_changed =
true;
108 data.mval_fl[0] = vc->
mval[0];
109 data.mval_fl[1] = vc->
mval[1];
113 for (
Base *base : bases) {
114 data.is_changed =
false;
120 if (r_base && data.is_changed) {
130 *r_handle = data.hpoint;
133 return (data.bezt || data.bp);
174 if (!
ELEM(*r_nu,
nullptr, nu1)) {
181 if (*r_bezt || *r_bp) {
195 a = nu1->pntsu * nu1->pntsv;
198 if (!
ELEM(*r_nu,
nullptr, nu1)) {
205 if (*r_bezt || *r_bp) {
223 void *vert =
nullptr;
bool BKE_curve_nurb_vert_active_get(Curve *cu, Nurb **r_nu, void **r_vert)
blender::Vector< Base * > BKE_view_layer_array_from_bases_in_edit_mode_unique_data(const Scene *scene, ViewLayer *view_layer, const View3D *v3d)
#define LISTBASE_FOREACH(type, var, list)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE float len_manhattan_v2v2(const float a[2], const float b[2]) ATTR_WARN_UNUSED_RESULT
#define UNUSED_VARS_NDEBUG(...)
#define BEZT_ISSEL_ANY_HIDDENHANDLES(v3d, bezt)
Object is a sort of wrapper for general info.
float ED_view3d_select_dist_px()
void nurbs_foreachScreenVert(const ViewContext *vc, void(*func)(void *user_data, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, bool handle_visible, const float screen_co[2]), void *user_data, eV3DProjTest clip_flag)
void ED_view3d_init_mats_rv3d(const Object *ob, RegionView3D *rv3d)
#define V3D_PROJ_TEST_CLIP_DEFAULT
void ED_view3d_viewcontext_init_object(ViewContext *vc, Object *obact)
Read Guarded memory(de)allocation.
bool ED_curve_pick_vert_ex(ViewContext *vc, const bool select, const int dist_px, Nurb **r_nurb, BezTriple **r_bezt, BPoint **r_bp, short *r_handle, Base **r_base)
void ED_curve_nurb_vert_selected_find(Curve *cu, View3D *v3d, Nurb **r_nu, BezTriple **r_bezt, BPoint **r_bp)
bool ED_curve_pick_vert(ViewContext *vc, short sel, Nurb **r_nurb, BezTriple **r_bezt, BPoint **r_bp, short *r_handle, Base **r_base)
bool ED_curve_active_center(Curve *cu, float center[3])
static void ED_curve_pick_vert__do_closest(void *user_data, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, bool handles_visible, const float screen_co[2])
ccl_device_inline float4 select(const int4 mask, const float4 a, const float4 b)