static void ApplySnapResize(TransInfo *t, float vec[3]) { float point[3]; getSnapPoint(t, point); float dist = ResizeBetween(t, t->tsnap.snapTarget, point); copy_v3_fl(vec, dist); }
static void ApplySnapRotation(TransInfo *t, float *value) { float point[3]; getSnapPoint(t, point); float dist = RotationBetween(t, t->tsnap.snapTarget, point); *value = dist; }
RS_ActionDrawLineAngle::~RS_ActionDrawLineAngle() { RS_SETTINGS->beginGroup("/Draw"); if (!hasFixedAngle()) { RS_SETTINGS->writeEntry("/LineAngleAngle", RS_Math::rad2deg(getAngle())); } RS_SETTINGS->writeEntry("/LineAngleLength", getLength()); RS_SETTINGS->writeEntry("/LineAngleSnapPoint", getSnapPoint()); RS_SETTINGS->endGroup(); }
static void ApplySnapTranslation(TransInfo *t, float vec[3]) { float point[3]; getSnapPoint(t, point); if (t->spacetype == SPACE_NODE) { char border = t->tsnap.snapNodeBorder; if (border & (NODE_LEFT | NODE_RIGHT)) vec[0] = point[0] - t->tsnap.snapTarget[0]; if (border & (NODE_BOTTOM | NODE_TOP)) vec[1] = point[1] - t->tsnap.snapTarget[1]; } else { sub_v3_v3v3(vec, point, t->tsnap.snapTarget); } }
static void ApplySnapTranslation(TransInfo *t, float vec[3]) { float point[3]; getSnapPoint(t, point); if (t->spacetype == SPACE_NODE) { char border = t->tsnap.snapNodeBorder; if (border & (NODE_LEFT | NODE_RIGHT)) vec[0] = point[0] - t->tsnap.snapTarget[0]; if (border & (NODE_BOTTOM | NODE_TOP)) vec[1] = point[1] - t->tsnap.snapTarget[1]; } else { if (t->spacetype == SPACE_VIEW3D) { if (t->options & CTX_PAINT_CURVE) { if (ED_view3d_project_float_global(t->ar, point, point, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK) { zero_v3(point); /* no good answer here... */ } } } sub_v3_v3v3(vec, point, t->tsnap.snapTarget); } }