Add 2d unifrom scale

This commit is contained in:
marynate 2014-05-17 10:41:04 +08:00
parent a364bc4371
commit 9737c02e21

View file

@ -1058,7 +1058,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
Vector2 begin=local_rect.pos;
Vector2 end=local_rect.pos+local_rect.size;
Vector2 minsize = canvas_item->edit_get_minimum_size();
bool symmetric=m.mod.shift;
bool uniform = m.mod.shift;
bool symmetric=m.mod.alt;
switch(drag) {
@ -1078,10 +1079,19 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
} break;
case DRAG_BOTTOM_RIGHT: {
if (uniform) {
drag_vector.y=drag_vector.x;
minsize.y=minsize.x;
}
incend(begin.x,end.x,drag_vector.x,minsize.x,symmetric);
incend(begin.y,end.y,drag_vector.y,minsize.y,symmetric);
} break;
case DRAG_TOP_LEFT: {
if (uniform) {
drag_vector.y=drag_vector.x;
minsize.y=minsize.x;
}
incbeg(begin.x,end.x,drag_vector.x,minsize.x,symmetric);
incbeg(begin.y,end.y,drag_vector.y,minsize.y,symmetric);
} break;
@ -1097,12 +1107,20 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
} break;
case DRAG_TOP_RIGHT: {
if (uniform) {
drag_vector.x=-drag_vector.y;
minsize.x=minsize.y;
}
incbeg(begin.y,end.y,drag_vector.y,minsize.y,symmetric);
incend(begin.x,end.x,drag_vector.x,minsize.x,symmetric);
} break;
case DRAG_BOTTOM_LEFT: {
if (uniform) {
drag_vector.x=-drag_vector.y;
minsize.x=minsize.y;
}
incbeg(begin.x,end.x,drag_vector.x,minsize.x,symmetric);
incend(begin.y,end.y,drag_vector.y,minsize.y,symmetric);
} break;