Add Ctrl to snap points to grid in Multi Blend editor
This commit is contained in:
@@ -128,7 +128,17 @@ namespace FlaxEditor.Surface.Archetypes
|
|||||||
_mouseMoveStartValues = _editor._node.Surface.Undo != null ? (object[])_editor._node.Values.Clone() : null;
|
_mouseMoveStartValues = _editor._node.Surface.Undo != null ? (object[])_editor._node.Values.Clone() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
_editor.SetLocation(_index, _editor.BlendPointPosToBlendSpacePos(Location + location));
|
var newLocation = Location + location;
|
||||||
|
newLocation = _editor.BlendPointPosToBlendSpacePos(newLocation);
|
||||||
|
if (Root != null && Root.GetKey(KeyboardKeys.Control))
|
||||||
|
{
|
||||||
|
var data0 = (Float4)_editor._node.Values[0];
|
||||||
|
var rangeX = new Float2(data0.X, data0.Y);
|
||||||
|
var rangeY = _editor._is2D ? new Float2(data0.Z, data0.W) : Float2.One;
|
||||||
|
var grid = new Float2(Mathf.Abs(rangeX.Y - rangeX.X) * 0.01f, Mathf.Abs(rangeY.X - rangeY.Y) * 0.01f);
|
||||||
|
newLocation = Float2.SnapToGrid(newLocation, grid);
|
||||||
|
}
|
||||||
|
_editor.SetLocation(_index, newLocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnMouseMove(location);
|
base.OnMouseMove(location);
|
||||||
|
|||||||
@@ -1281,8 +1281,8 @@ namespace FlaxEngine
|
|||||||
/// <returns>The position snapped to the grid.</returns>
|
/// <returns>The position snapped to the grid.</returns>
|
||||||
public static Float2 SnapToGrid(Float2 pos, Float2 gridSize)
|
public static Float2 SnapToGrid(Float2 pos, Float2 gridSize)
|
||||||
{
|
{
|
||||||
pos.X = Mathf.Ceil((pos.X - (gridSize.X * 0.5f)) / gridSize.Y) * gridSize.X;
|
pos.X = Mathf.Ceil((pos.X - (gridSize.X * 0.5f)) / gridSize.X) * gridSize.X;
|
||||||
pos.Y = Mathf.Ceil((pos.Y - (gridSize.Y * 0.5f)) / gridSize.X) * gridSize.Y;
|
pos.Y = Mathf.Ceil((pos.Y - (gridSize.Y * 0.5f)) / gridSize.Y) * gridSize.Y;
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user