public static Vector3int Cross(Vector3int v1, Vector3int v2) { return(new Vector3int( v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x)); }
public override bool Equals(object obj) { if (obj == null) { return(false); } if (!(obj is Vector3int)) { return(false); } Vector3int p = (Vector3int)obj; if ((System.Object)p == null) { return(false); } if (x != p.x) { return(false); } if (y != p.y) { return(false); } if (z != p.z) { return(false); } return(true); }
public static Vector3int[] QuadBetween(Vector3int first, Vector3int second) { var array = new Vector3int[2]; var offset = second - first; array[0] = first + new Vector3int(offset.x, 0, 0); array[1] = first + new Vector3int(0, 0, offset.z); return(array); }
public Vector3int[] SurroundingPlanar4Diagonal() { var surr = new Vector3int[4]; surr[0] = this + left + forward; surr[1] = this + left + back; surr[2] = this + right + forward; surr[3] = this + right + back; return(surr); }
public Vector3int[] SurroundingPlanar8() { var surr = new Vector3int[8]; surr[0] = this + left; surr[1] = this + right; surr[2] = this + forward; surr[3] = this + back; surr[4] = this + left + forward; surr[5] = this + left + back; surr[6] = this + right + forward; surr[7] = this + right + back; return(surr); }
//public Vector3int[] Neighbours { get { return VoxelMap.GetPathableNeighbors(this); } } static Vector3int() { zero = new Vector3int(0, 0, 0); up = new Vector3int(0, 1, 0); down = new Vector3int(0, -1, 0); left = new Vector3int(-1, 0, 0); right = new Vector3int(1, 0, 0); forward = new Vector3int(0, 0, 1); back = new Vector3int(0, 0, -1); one = new Vector3int(1, 1, 1); direction = new Dictionary<Cardinal, Vector3int>(); compass = new Dictionary<Vector3int, Cardinal>(); direction[Cardinal.North] = forward; direction[Cardinal.South] = back; direction[Cardinal.East] = left; direction[Cardinal.West] = right; foreach(var pair in direction) compass[pair.Value] = pair.Key; }
//public Vector3int[] Neighbours { get { return VoxelMap.GetPathableNeighbors(this); } } static Vector3int() { zero = new Vector3int(0, 0, 0); up = new Vector3int(0, 1, 0); down = new Vector3int(0, -1, 0); left = new Vector3int(-1, 0, 0); right = new Vector3int(1, 0, 0); forward = new Vector3int(0, 0, 1); back = new Vector3int(0, 0, -1); one = new Vector3int(1, 1, 1); direction = new Dictionary <Cardinal, Vector3int>(); compass = new Dictionary <Vector3int, Cardinal>(); direction[Cardinal.North] = forward; direction[Cardinal.South] = back; direction[Cardinal.East] = left; direction[Cardinal.West] = right; foreach (var pair in direction) { compass[pair.Value] = pair.Key; } }
public static int BlockDistance(Vector3int a, Vector3int b) { return(Math.Abs(a.x - b.x) + Math.Abs(a.y - b.y) + Math.Abs(a.z - b.z)); }
public static Vector3int Cross(Vector3int v1, Vector3int v2) { return new Vector3int( v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x); }
public Vector3int[] SurroundingPlanar8() { var surr = new Vector3int[8]; surr[0] = this + left; surr[1] = this + right; surr[2] = this + forward; surr[3] = this + back; surr[4] = this + left + forward; surr[5] = this + left + back; surr[6] = this + right + forward; surr[7] = this + right + back; return surr; }
public Vector3int[] SurroundingPlanar4Diagonal() { var surr = new Vector3int[4]; surr[0] = this + left + forward; surr[1] = this + left + back; surr[2] = this + right + forward; surr[3] = this + right + back; return surr; }
public static int SquareDistance(Vector3int a, Vector3int b) { return (a.x - b.x).Squared() + (a.y - b.y).Squared() + (a.z - b.z).Squared(); }
public static Vector3int[] QuadBetween(Vector3int first, Vector3int second) { var array = new Vector3int[2]; var offset = second - first; array[0] = first + new Vector3int(offset.x, 0, 0); array[1] = first + new Vector3int(0, 0, offset.z); return array; }
public static Vector2int FromVector3intXZ(Vector3int v3) { return(new Vector2int(v3.x, v3.z)); }
public static int SquareDistance(Vector3int a, Vector3int b) { return((a.x - b.x).Squared() + (a.y - b.y).Squared() + (a.z - b.z).Squared()); }
public static Vector2int FromVector3intXZ(Vector3int v3) { return new Vector2int(v3.x, v3.z); }
public static int BlockDistance(Vector3int a, Vector3int b) { return Math.Abs(a.x - b.x) + Math.Abs(a.y - b.y) + Math.Abs(a.z - b.z); }