コード例 #1
0
        public static double Angle(this Rotation2Order4 @this)
        {
            switch (@this)
            {
            case Rotation2Order4.Rotation0:
                return(0);

            case Rotation2Order4.Rotation90:
                return(Math.PI / 2);

            case Rotation2Order4.Rotation180:
                return(Math.PI);

            case Rotation2Order4.Rotation270:
                return(-Math.PI / 2);

            default:
                throw new InternalException("Illegal rotation!");
            }
        }
コード例 #2
0
        public static Vector2 ApplyInv(this Rotation2Order4 @this, Vector2 v)
        {
            switch (@this)
            {
            case Rotation2Order4.Rotation0:
                return(v);

            case Rotation2Order4.Rotation90:
                return(new Vector2(v.Y, -v.X));

            case Rotation2Order4.Rotation180:
                return(-v);

            case Rotation2Order4.Rotation270:
                return(new Vector2(-v.Y, v.X));

            default:
                throw new InternalException("Illegal rotation!");
            }
        }
コード例 #3
0
        public static Rotation2Order4 Inv(this Rotation2Order4 @this)
        {
            switch (@this)
            {
            case Rotation2Order4.Rotation0:
                return(Rotation2Order4.Rotation0);

            case Rotation2Order4.Rotation90:
                return(Rotation2Order4.Rotation270);

            case Rotation2Order4.Rotation180:
                return(Rotation2Order4.Rotation180);

            case Rotation2Order4.Rotation270:
                return(Rotation2Order4.Rotation90);

            default:
                throw new InternalException("Illegal rotation!");
            }
        }
コード例 #4
0
 public static Rotation2Order4 Compose(Rotation2Order4 x, Rotation2Order4 y)
 {
     return((Rotation2Order4)(((int)x + (int)y) % 4));
 }