Beispiel #1
0
        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");
            }
        }
Beispiel #2
0
        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");
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 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;
        }
Beispiel #6
0
        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;
            }
        }
Beispiel #7
0
 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;
     }
 }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
            }
        }
Beispiel #10
0
        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);
            }
        }
Beispiel #11
0
 public static int DimOfDir3D(int x, int y, int z, Direction3D dir)
 {
     return(DimOfDir3D(x, y, z, GetOrientation3D(dir)));
 }
Beispiel #12
0
 public static void MoveInDirection3D(ref Loc3D loc, Direction3D dir, int length)
 {
     MoveInDirection3D(ref loc.X, ref loc.Y, loc.Z, dir, length);
 }
Beispiel #13
0
 internal SubCurve3D(Direction3D firstMove, Direction3D secondMove, Direction3D overallDirection)
 {
     this.FirstMove        = firstMove;
     this.SecondMove       = secondMove;
     this.OverallDirection = overallDirection;
 }
Beispiel #14
0
 public static Direction3D Opposite(this Direction3D orig)
 {
     return((Direction3D)(((int)orig >> 3) | ((int)orig << 3)) & Direction3D.All);
 }
Beispiel #15
0
 public FloorBorder(Loc2D?location, Direction3D linkDir)
 {
     Location = location;
     LinkDir  = linkDir;
 }
Beispiel #16
0
 public static Vector3 DirectionToVector3(Direction3D dir)
 {
     return(dir.ToVector3());
 }
Beispiel #17
0
        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));
 }
Beispiel #20
0
 public FloorBorder(Loc2D? location, Direction3D linkDir)
 {
     Location = location;
     LinkDir = linkDir;
 }
Beispiel #21
0
 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;
     }
 }
Beispiel #22
0
 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));
 }
Beispiel #23
0
 public static bool HasFlag(this Direction3D cs, Direction3D flag)
 {
     return(((int)cs & (int)flag) != 0);
 }
Beispiel #24
0
		public static string DirectionToString(Direction3D dir) {
			return direction3DNames[(int)dir];
		}
Beispiel #25
0
 // Use this for initialization
 void Start()
 {
     transform.position = new Vector3(4.5f, 9 + (length / 2), -4.5f);
     topFace            = Direction3D.UP;
 }