Esempio n. 1
0
        public static Vector2 MultiplyVector2(FMatrix3x3 m1, Vector2 vec)
        {
            Vector2 outVector = new Vector2();

            outVector.x = m1.m00 * vec.x + m1.m01 * vec.y + m1.m02;
            outVector.y = m1.m10 * vec.x + m1.m11 * vec.y + m1.m12;
            return(outVector);
        }
Esempio n. 2
0
 public static FAABB2D Multiply(FAABB2D box, FMatrix3x3 matrix)
 {
     return(new FAABB2D()
     {
         Min = matrix * box.Min,
         Max = matrix * box.Max
     });
 }
        protected override void UpdateCollisionBody_internal()
        {
            FCollRect rect = new FCollRect()
            {
                Offset = Offset, Size = Size
            };

            rect.TRS = FMatrix3x3.CreateTRS(Vector2.zero, transform.rotation.eulerAngles.z, transform.localScale);

            CollisionBody = rect.ToPoly();
        }
Esempio n. 4
0
        protected override void UpdateCollisionBody_internal()
        {
            FMatrix3x3 TRS = FMatrix3x3.CreateTRS(Offset, transform.rotation.eulerAngles.z, transform.localScale);

            CollisionBody = new FCollPoly()
            {
                Vertices = new Vector2[Vertices.Length]
            };

            for (int i = 0; i < Vertices.Length; i++)
            {
                CollisionBody.Vertices[i] = TRS * Vertices[i];
            }
        }
Esempio n. 5
0
        public static FMatrix3x3 CreateTRS(Vector2 translation, float rotation, Vector2 scale)
        {
            float cos = Mathf.Cos(rotation * Mathf.Deg2Rad);
            float sin = Mathf.Sin(rotation * Mathf.Deg2Rad);

            FMatrix3x3 m = new FMatrix3x3();

            m.m00 = scale.x * cos;
            m.m01 = scale.y * -sin;
            m.m02 = translation.x;
            m.m10 = scale.x * sin;
            m.m11 = scale.y * cos;
            m.m12 = translation.y;
            m.m20 = 0;
            m.m21 = 0;
            m.m22 = 1;
            return(m);
        }
Esempio n. 6
0
 public static Vector2 operator *(FMatrix3x3 m, Vector2 v)
 {
     return(FMatrix3x3.MultiplyVector2(m, v));
 }