Example #1
0
void VisualToolScale::UpdateHold() {
	Vector2D delta = (mouse_pos - drag_start) * Vector2D(1, -1);
	if (shift_down)
		delta = delta.SingleAxis();

	scale = Vector2D(0, 0).Max(delta * 1.25f + initial_scale);
	if (ctrl_down)
		scale = scale.Round(25.f);

	SetSelectedOverride("\\fscx", wxString::Format("%d", (int)scale.X()));
	SetSelectedOverride("\\fscy", wxString::Format("%d", (int)scale.Y()));
}
void VisualToolScale::UpdateHold() {
	Vector2D delta = (mouse_pos - drag_start) * Vector2D(1, -1);
	if (shift_down)
		delta = delta.SingleAxis();
	if (alt_down) {
		if (abs(delta.X()) > abs(delta.Y()))
			delta = Vector2D(delta.X(), delta.X() * (initial_scale.Y() / initial_scale.X()));
		else
			delta = Vector2D(delta.Y() * (initial_scale.X() / initial_scale.Y()), delta.Y());
	}

	scale = Vector2D(0, 0).Max(delta * 1.25f + initial_scale);
	if (ctrl_down)
		scale = scale.Round(25.f);

	SetSelectedOverride("\\fscx", std::to_string((int)scale.X()));
	SetSelectedOverride("\\fscy", std::to_string((int)scale.Y()));
}
void VisualToolRotateXY::UpdateHold() {
	Vector2D delta = (mouse_pos - drag_start) * 2;
	if (shift_down)
		delta = delta.SingleAxis();

	angle_x = orig_x - delta.Y();
	angle_y = orig_y + delta.X();

	if (ctrl_down) {
		angle_x = floorf(angle_x / 30.f + .5f) * 30.f;
		angle_y = floorf(angle_y / 30.f + .5f) * 30.f;
	}

	angle_x = fmodf(angle_x + 360.f, 360.f);
	angle_y = fmodf(angle_y + 360.f, 360.f);

	SetSelectedOverride("\\frx", str(boost::format("%.4g") % angle_x));
	SetSelectedOverride("\\fry", str(boost::format("%.4g") % angle_y));
}