27 bool is_object_active)
42 const float *head_vec =
nullptr, *tail_vec =
nullptr;
44 const bool is_editmode = arm->
edbo !=
nullptr;
46 const bool skip_selected = (is_editmode || is_posemode) &&
54 if (is_selected && skip_selected) {
58 if (nearest2d.
snap_edge(eBone->head, eBone->tail)) {
59 head_vec = eBone->head;
60 tail_vec = eBone->tail;
73 if (is_selected && skip_selected) {
77 if (nearest2d.
snap_edge(pchan->pose_head, pchan->pose_tail)) {
78 head_vec = pchan->pose_head;
79 tail_vec = pchan->pose_tail;
Functions to deal with Armatures.
#define LISTBASE_FOREACH(type, var, list)
@ SCE_SNAP_TARGET_NOT_SELECTED
@ SCE_SNAP_TO_EDGE_ENDPOINT
bool bone_is_visible(const bArmature *armature, const Bone *bone)
MatBase< float, 4, 4 > float4x4
struct blender::ed::transform::SnapObjectContext::@170374026073064374202114033260227063176045253050 runtime
struct blender::ed::transform::SnapObjectContext::Output ret