public static Direction3D Inverse(this Direction3D direction) { switch (direction) { case Direction3D.Right: return(Direction3D.Left); case Direction3D.Left: return(Direction3D.Right); case Direction3D.Up: return(Direction3D.Down); case Direction3D.Down: return(Direction3D.Up); case Direction3D.Forward: return(Direction3D.Backward); case Direction3D.Backward: return(Direction3D.Forward); default: throw new ArgumentException("Value \"" + direction + "\" not recognized"); } }
public static Vector3i ToVector3i(this Direction3D direction) { switch (direction) { case Direction3D.Right: return(Vector3i.UnitX); case Direction3D.Left: return(-Vector3i.UnitX); case Direction3D.Up: return(Vector3i.UnitY); case Direction3D.Down: return(-Vector3i.UnitY); case Direction3D.Forward: return(Vector3i.UnitZ); case Direction3D.Backward: return(-Vector3i.UnitZ); default: throw new ArgumentException("Value \"" + direction + "\" not recognized"); } }
public static Vector3 GetVector3(this Direction3D d, bool normalized = true) { Vector3 v = Vector3.zero; if (d.HasFlag(Direction3D.Forward)) { v += Vector3.forward; } if (d.HasFlag(Direction3D.Back)) { v += Vector3.back; } if (d.HasFlag(Direction3D.Left)) { v += Vector3.left; } if (d.HasFlag(Direction3D.Right)) { v += Vector3.right; } if (d.HasFlag(Direction3D.Up)) { v += Vector3.up; } if (d.HasFlag(Direction3D.Down)) { v += Vector3.down; } if (normalized) { v.Normalize(); } return(v); }
public Feature(string name, Point3D center, Direction3D direction, double size) { Id = new FeatureId(); Name = name; Center = center; Direction = direction; Size = size; }
public Sensor3D(Direction3D senDirection) { Random rnd = new Random(); State = true; BatteryLevel = 1000; DischargeRate = (uint)rnd.Next(1, 1001); SensorDirection = senDirection; }
public static void MoveInDirection3D(ref int x, ref int y, int z, Direction3D dir, int length) { switch (dir) { case Direction3D.Down: { y += length; } break; case Direction3D.Up: { y -= length; } break; default: break; } switch (dir) { case Direction3D.Left: { x -= length; } break; case Direction3D.Right: { x += length; } break; default: break; } switch (dir) { case Direction3D.Forth: { z -= length; } break; case Direction3D.Back: { z += length; } break; default: break; } }
public static void AssignDirDim3D(int x, int y, int z, int p, Direction3D dir) { if (dir == Direction3D.Down || dir == Direction3D.Up) { y = p; } else if (dir == Direction3D.Left || dir == Direction3D.Right) { x = p; } else { z = p; } }
public static Vector3 ToVector3(this Direction3D dir) { switch (dir) { case Direction3D.Up: return(Vector3.up); case Direction3D.Right: return(Vector3.right); case Direction3D.Down: return(Vector3.down); case Direction3D.Left: return(Vector3.left); case Direction3D.Forward: return(Vector3.forward); case Direction3D.Back: return(Vector3.back); } return(Vector3.zero); }
public static Direction3D ReverseDir3D(Direction3D dir) { switch (dir) { case Direction3D.Down: return(Direction3D.Up); case Direction3D.Up: return(Direction3D.Down); case Direction3D.Left: return(Direction3D.Right); case Direction3D.Right: return(Direction3D.Left); case Direction3D.Forth: return(Direction3D.Back); case Direction3D.Back: return(Direction3D.Forth); default: return(Direction3D.None); } }
public static Orientation3D GetOrientation3D(Direction3D dir) { switch (dir) { case Direction3D.Down: case Direction3D.Up: return(Orientation3D.Vert); case Direction3D.Left: case Direction3D.Right: return(Orientation3D.Horiz); case Direction3D.Forth: case Direction3D.Back: return(Orientation3D.Depth); default: return(Orientation3D.None); } }
public static int DimOfDir3D(int x, int y, int z, Direction3D dir) { return(DimOfDir3D(x, y, z, GetOrientation3D(dir))); }
public static void MoveInDirection3D(ref Loc3D loc, Direction3D dir, int length) { MoveInDirection3D(ref loc.X, ref loc.Y, loc.Z, dir, length); }
internal SubCurve3D(Direction3D firstMove, Direction3D secondMove, Direction3D overallDirection) { this.FirstMove = firstMove; this.SecondMove = secondMove; this.OverallDirection = overallDirection; }
public static Direction3D Opposite(this Direction3D orig) { return((Direction3D)(((int)orig >> 3) | ((int)orig << 3)) & Direction3D.All); }
public FloorBorder(Loc2D?location, Direction3D linkDir) { Location = location; LinkDir = linkDir; }
public static Vector3 DirectionToVector3(Direction3D dir) { return(dir.ToVector3()); }
public static int DistanceInFront3D(int x1, int y1, int z1, int x2, int y2, int z2, Direction3D dir) { switch (dir) { case Direction3D.Down: { return(y2 - y1); } case Direction3D.Left: { return(x1 - x2); } case Direction3D.Up: { return(y1 - y2); } case Direction3D.Right: { return(x2 - x1); } case Direction3D.Forth: { return(z1 - z2); } case Direction3D.Back: { return(z2 - z1); } default: return(0); } }
public void LerpDirection(Direction3D dir) { LerpDirection(dir.GetVector3()); }
public bool isValid(Direction3D direction3D) { return(Sensors[direction3D].isValid(Grid3D, posR, posC, CurrentLevel)); }
public FloorBorder(Loc2D? location, Direction3D linkDir) { Location = location; LinkDir = linkDir; }
public void Look(Direction3D direction) { ResetCameraAngles(); switch (direction) { case Direction3D.Up: CameraAngleX = MathHelper.PiOver2; break; case Direction3D.Down: CameraAngleX = -MathHelper.PiOver2; break; case Direction3D.Left: CameraAngleY = MathHelper.PiOver2; break; case Direction3D.Right: CameraAngleY = -MathHelper.PiOver2; break; case Direction3D.Backward: CameraAngleY = MathHelper.Pi; break; } }
public static int DistanceInFront3D(Loc3D loc1, Loc3D loc2, Direction3D dir) { return(DistanceInFront3D(loc1.X, loc1.Y, loc1.Z, loc2.X, loc2.Y, loc2.Z, dir)); }
public static bool HasFlag(this Direction3D cs, Direction3D flag) { return(((int)cs & (int)flag) != 0); }
public static string DirectionToString(Direction3D dir) { return direction3DNames[(int)dir]; }
// Use this for initialization void Start() { transform.position = new Vector3(4.5f, 9 + (length / 2), -4.5f); topFace = Direction3D.UP; }