Пример #1
0
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);
}
Пример #2
0
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);
	}
}
Пример #5
0
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);
	}
}