Blender V4.3
editcurve_query.cc File Reference
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_math_vector.h"
#include "BKE_curve.hh"
#include "BKE_fcurve.hh"
#include "BKE_layer.hh"
#include "ED_curve.hh"
#include "ED_view3d.hh"
#include "curve_intern.hh"

Go to the source code of this file.

Classes

struct  PickUserData
 

Functions

Cursor Picking API
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])
 
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)
 
bool ED_curve_pick_vert (ViewContext *vc, short sel, Nurb **r_nurb, BezTriple **r_bezt, BPoint **r_bp, short *r_handle, Base **r_base)
 
Selection Queries
void ED_curve_nurb_vert_selected_find (Curve *cu, View3D *v3d, Nurb **r_nu, BezTriple **r_bezt, BPoint **r_bp)
 
bool ED_curve_active_center (Curve *cu, float center[3])
 

Function Documentation

◆ ED_curve_active_center()

bool ED_curve_active_center ( Curve * cu,
float center[3] )

◆ ED_curve_nurb_vert_selected_find()

void ED_curve_nurb_vert_selected_find ( Curve * cu,
View3D * v3d,
Nurb ** r_nu,
BezTriple ** r_bezt,
BPoint ** r_bp )

◆ ED_curve_pick_vert()

bool ED_curve_pick_vert ( ViewContext * vc,
short sel,
Nurb ** r_nurb,
BezTriple ** r_bezt,
BPoint ** r_bp,
short * r_handle,
Base ** r_base )

◆ ED_curve_pick_vert__do_closest()

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] )
static

◆ ED_curve_pick_vert_ex()

bool ED_curve_pick_vert_ex ( ViewContext * vc,
bool select,
int dist_px,
Nurb ** r_nurb,
BezTriple ** r_bezt,
BPoint ** r_bp,
short * r_handle,
Base ** r_base )

Pick the nearest r_nurb and r_bezt or r_bp.

Parameters
selectselected vertices have a disadvantage.
sel_dist_mulA multiplier on the default select distance.
r_handleFor bezier triples, set the handle index [0, 1, 2].

Definition at line 94 of file editcurve_query.cc.

References BKE_view_layer_array_from_bases_in_edit_mode_unique_data(), PickUserData::dist, ED_curve_pick_vert__do_closest(), ED_view3d_init_mats_rv3d(), ED_view3d_viewcontext_init_object(), ViewContext::mval, nurbs_foreachScreenVert(), ViewContext::obedit, ViewContext::rv3d, ViewContext::scene, SELECT, select(), ViewContext::v3d, V3D_PROJ_TEST_CLIP_DEFAULT, and ViewContext::view_layer.

Referenced by ED_curve_editnurb_select_pick(), and ED_curve_pick_vert().