public static Vector3 GetLocalPositionByGridPos(GridPos3D gridPos, Transform transform, int gridSize) { float x = gridPos.x * gridSize; float y = gridPos.y * gridSize; float z = gridPos.z * gridSize; return(new Vector3(x, y, z)); }
public bool Contains(GridPos3D gp) { if (gp.x > x_max || gp.x < x_min || gp.z > z_max || gp.z < z_min) { return(false); } return(true); }
public override bool Equals(object obj) { if (obj != null) { GridPos3D target = (GridPos3D)obj; return(x == target.x && y == target.y && z == target.z); } else { return(false); } }
public static List <GridPos3D> TransformOccupiedPositions_XZ(GridPosR.Orientation orientation, List <GridPos3D> ori_OccupiedPositions) { List <GridPos3D> res = new List <GridPos3D>(); foreach (GridPos3D oriGP in ori_OccupiedPositions) { GridPos temp_rot = GridPos.RotateGridPos(new GridPos(oriGP.x, oriGP.z), orientation); GridPos3D final = new GridPos3D(temp_rot.x, oriGP.y, temp_rot.z); res.Add(final); } return(res); }
public static GridPos3D GetNearestGPFromList(GridPos3D srcGP, List <GridPos3D> possibleGPs) { float minDistance = float.MaxValue; GridPos3D nearestGP = Zero; foreach (GridPos3D possibleGP in possibleGPs) { float dist = (srcGP - possibleGP).magnitude; if (dist < minDistance) { minDistance = dist; nearestGP = possibleGP; } } return(nearestGP); }
public static BoundsInt GetBoundingRectFromListGridPos(this List <GridPos3D> offsetGPs, GridPos3D baseGP) { int X_min = int.MaxValue; int X_max = int.MinValue; int Y_min = int.MaxValue; int Y_max = int.MinValue; int Z_min = int.MaxValue; int Z_max = int.MinValue; foreach (GridPos3D offset in offsetGPs) { GridPos3D gp = offset + baseGP; if (gp.x < X_min) { X_min = gp.x; } if (gp.x > X_max) { X_max = gp.x; } if (gp.y < Y_min) { Y_min = gp.y; } if (gp.y > Y_max) { Y_max = gp.y; } if (gp.z < Z_min) { Z_min = gp.z; } if (gp.z > Z_max) { Z_max = gp.z; } } return(new BoundsInt(X_min, Y_min, Z_min, X_max - X_min + 1, Y_max - Y_min + 1, Z_max - Z_min + 1)); }
public static void ApplyGridPosToLocalTrans(GridPos3D gridPos, Transform transform, int gridSize) { transform.localPosition = GetLocalPositionByGridPos(gridPos, transform, gridSize); }