Fix SnapToGrid to skip when grid component is 0
This commit is contained in:
@@ -1263,8 +1263,10 @@ namespace FlaxEngine
|
||||
/// <returns>The position snapped to the grid.</returns>
|
||||
public static Double2 SnapToGrid(Double2 pos, Double2 gridSize)
|
||||
{
|
||||
pos.X = Mathd.Ceil((pos.X - (gridSize.X * 0.5)) / gridSize.Y) * gridSize.X;
|
||||
pos.Y = Mathd.Ceil((pos.Y - (gridSize.Y * 0.5)) / gridSize.X) * gridSize.Y;
|
||||
if (Mathd.Abs(gridSize.X) > Mathd.Epsilon)
|
||||
pos.X = Mathd.Ceil((pos.X - (gridSize.X * 0.5)) / gridSize.Y) * gridSize.X;
|
||||
if (Mathd.Abs(gridSize.Y) > Mathd.Epsilon)
|
||||
pos.Y = Mathd.Ceil((pos.Y - (gridSize.Y * 0.5)) / gridSize.X) * gridSize.Y;
|
||||
return pos;
|
||||
}
|
||||
|
||||
|
||||
@@ -1544,9 +1544,12 @@ namespace FlaxEngine
|
||||
/// <returns>The position snapped to the grid.</returns>
|
||||
public static Double3 SnapToGrid(Double3 pos, Double3 gridSize)
|
||||
{
|
||||
pos.X = Mathd.Ceil((pos.X - (gridSize.X * 0.5)) / gridSize.X) * gridSize.X;
|
||||
pos.Y = Mathd.Ceil((pos.Y - (gridSize.Y * 0.5)) / gridSize.Y) * gridSize.Y;
|
||||
pos.Z = Mathd.Ceil((pos.Z - (gridSize.Z * 0.5)) / gridSize.Z) * gridSize.Z;
|
||||
if (Mathd.Abs(gridSize.X) > Mathd.Epsilon)
|
||||
pos.X = Mathd.Ceil((pos.X - (gridSize.X * 0.5)) / gridSize.X) * gridSize.X;
|
||||
if (Mathd.Abs(gridSize.Y) > Mathd.Epsilon)
|
||||
pos.Y = Mathd.Ceil((pos.Y - (gridSize.Y * 0.5)) / gridSize.Y) * gridSize.Y;
|
||||
if (Mathd.Abs(gridSize.Z) > Mathd.Epsilon)
|
||||
pos.Z = Mathd.Ceil((pos.Z - (gridSize.Z * 0.5)) / gridSize.Z) * gridSize.Z;
|
||||
return pos;
|
||||
}
|
||||
|
||||
|
||||
@@ -1291,8 +1291,10 @@ namespace FlaxEngine
|
||||
/// <returns>The position snapped to the grid.</returns>
|
||||
public static Float2 SnapToGrid(Float2 pos, Float2 gridSize)
|
||||
{
|
||||
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.Y) * gridSize.Y;
|
||||
if (Mathf.Abs(gridSize.X) > Mathf.Epsilon)
|
||||
pos.X = Mathf.Ceil((pos.X - (gridSize.X * 0.5f)) / gridSize.X) * gridSize.X;
|
||||
if (Mathf.Abs(gridSize.Y) > Mathf.Epsilon)
|
||||
pos.Y = Mathf.Ceil((pos.Y - (gridSize.Y * 0.5f)) / gridSize.Y) * gridSize.Y;
|
||||
return pos;
|
||||
}
|
||||
|
||||
|
||||
@@ -1528,9 +1528,12 @@ namespace FlaxEngine
|
||||
/// <returns>The position snapped to the grid.</returns>
|
||||
public static Float3 SnapToGrid(Float3 pos, Float3 gridSize)
|
||||
{
|
||||
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.Y) * gridSize.Y;
|
||||
pos.Z = Mathf.Ceil((pos.Z - (gridSize.Z * 0.5f)) / gridSize.Z) * gridSize.Z;
|
||||
if (Mathf.Abs(gridSize.X) > Mathf.Epsilon)
|
||||
pos.X = Mathf.Ceil((pos.X - (gridSize.X * 0.5f)) / gridSize.X) * gridSize.X;
|
||||
if (Mathf.Abs(gridSize.Y) > Mathf.Epsilon)
|
||||
pos.Y = Mathf.Ceil((pos.Y - (gridSize.Y * 0.5f)) / gridSize.Y) * gridSize.Y;
|
||||
if (Mathf.Abs(gridSize.Z) > Mathf.Epsilon)
|
||||
pos.Z = Mathf.Ceil((pos.Z - (gridSize.Z * 0.5f)) / gridSize.Z) * gridSize.Z;
|
||||
return pos;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user