コード例 #1
0
        public static void FromNormalVectors(Vector2[] vectors, ref Matrix4 matrix, out BoundingRectangle result)
        {
            Vector2 current;

            Vector2Helper.TransformNormal(ref vectors[0], ref matrix, out current);
            result.Max = current;
            result.Min = current;
            for (var index = 1; index < vectors.Length; ++index)
            {
                Vector2Helper.TransformNormal(ref vectors[index], ref matrix, out current);
                if (current.X > result.Max.X)
                {
                    result.Max.X = current.X;
                }
                else if (current.X < result.Min.X)
                {
                    result.Min.X = current.X;
                }
                if (current.Y > result.Max.Y)
                {
                    result.Max.Y = current.Y;
                }
                else if (current.Y < result.Min.Y)
                {
                    result.Min.Y = current.Y;
                }
            }
            result.Max.X += matrix.M13;
            result.Max.Y += matrix.M23;
            result.Min.X += matrix.M13;
            result.Min.Y += matrix.M23;
        }