46 const float screen_co[2])
62 else if (beztindex == 1) {
74 if (bezt && beztindex == 1) {
78 if (dist_test < data->dist) {
79 data->dist = dist_test;
84 data->hpoint = bezt ? beztindex : 0;
85 data->is_changed =
true;
110 for (
Base *base : bases) {
111 data.is_changed =
false;
117 if (r_base &&
data.is_changed) {
127 *r_handle =
data.hpoint;
171 if (!
ELEM(*r_nu,
nullptr, nu1)) {
178 if (*r_bezt || *r_bp) {
192 a = nu1->pntsu * nu1->pntsv;
195 if (!
ELEM(*r_nu,
nullptr, nu1)) {
202 if (*r_bezt || *r_bp) {
220 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)
BMesh const char void * data
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)
static void curve_pick_vert__do_closest(void *user_data, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, bool handles_visible, const float screen_co[2])
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 bool handles_visible(KeyframeEditData *ked, BezTriple *bezt)