24 bool has_snap =
false;
37 if (use_obedit ==
false) {
54 if (nu->bezt[u].hide) {
59 bool is_selected = (nu->bezt[u].f2 &
SELECT) != 0;
60 if (is_selected && skip_selected) {
66 bool is_selected_h1 = (nu->bezt[u].f1 &
SELECT) != 0;
67 bool is_selected_h2 = (nu->bezt[u].f3 &
SELECT) != 0;
68 bool is_autoalign_h1 = (nu->bezt[u].h1 &
HD_ALIGN) != 0;
69 bool is_autoalign_h2 = (nu->bezt[u].h2 &
HD_ALIGN) != 0;
70 if (!skip_selected || !(is_selected_h1 || (is_autoalign_h1 && is_selected_h2))) {
71 has_snap |= nearest2d.
snap_point(nu->bezt[u].vec[0]);
74 if (!skip_selected || !(is_selected_h2 || (is_autoalign_h2 && is_selected_h1))) {
75 has_snap |= nearest2d.
snap_point(nu->bezt[u].vec[2]);
78 has_snap |= nearest2d.
snap_point(nu->bezt[u].vec[1]);
82 for (
int u :
IndexRange(nu->pntsu * nu->pntsv)) {
89 bool is_selected = (nu->bp[u].f1 &
SELECT) != 0;
90 if (is_selected && skip_selected) {
94 has_snap |= nearest2d.
snap_point(nu->bp[u].vec);
std::optional< blender::Bounds< blender::float3 > > BKE_curve_minmax(const Curve *cu, bool use_radius)
General operations, lookup, etc. for blender objects.
bool BKE_object_is_in_editmode(const Object *ob)
#define LISTBASE_FOREACH(type, var, list)
@ SCE_SNAP_TARGET_NOT_SELECTED
MatBase< float, 4, 4 > float4x4
struct blender::ed::transform::SnapObjectContext::@170374026073064374202114033260227063176045253050 runtime