7#include "Math/Matrix.h"
20
21
22
23
24
25
26
27 TOrthoMatrix(T Width,T Height,T ZScale,T ZOffset);
31 explicit TOrthoMatrix(
const TOrthoMatrix<FArg>& From) : TMatrix<T>(From) {}
36struct TReversedZOrthoMatrix :
public TMatrix<T>
39 TReversedZOrthoMatrix(T Width,T Height,T ZScale,T ZOffset);
40 TReversedZOrthoMatrix(T Left, T Right, T Bottom, T Top, T ZScale, T ZOffset);
44 explicit TReversedZOrthoMatrix(
const TReversedZOrthoMatrix<FArg>& From) : TMatrix<T>(From) {}
48FORCEINLINE TOrthoMatrix<T>::TOrthoMatrix(T Width, T Height, T ZScale, T ZOffset)
50 TPlane<T>((Width != 0.0f) ? (1.0f / Width) : 1.0f, 0.0f, 0.0f, 0.0f),
51 TPlane<T>(0.0f, (Height != 0.0f) ? (1.0f / Height) : 1.f, 0.0f, 0.0f),
52 TPlane<T>(0.0f, 0.0f, ZScale, 0.0f),
53 TPlane<T>(0.0f, 0.0f, ZOffset * ZScale, 1.0f)
59FORCEINLINE TReversedZOrthoMatrix<T>::TReversedZOrthoMatrix(T Width, T Height, T ZScale, T ZOffset)
61 TPlane<T>((Width != 0.0f) ? (1.0f / Width) : 1.0f, 0.0f, 0.0f, 0.0f),
62 TPlane<T>(0.0f, (Height != 0.0f) ? (1.0f / Height) : 1.f, 0.0f, 0.0f),
63 TPlane<T>(0.0f, 0.0f, -ZScale, 0.0f),
64 TPlane<T>(0.0f, 0.0f, 1.0f - ZOffset * ZScale, 1.0f)
69FORCEINLINE TReversedZOrthoMatrix<T>::TReversedZOrthoMatrix(T Left, T Right, T Bottom, T Top, T ZScale, T ZOffset)
71 TPlane<T>(1.0f / (Right - Left), 0.0f, 0.0f, 0.0f),
72 TPlane<T>(0.0f, 1.0f / (Top - Bottom), 0.0f, 0.0f),
73 TPlane<T>(0.0f, 0.0f, -ZScale, 0.0f),
74 TPlane<T>((Left + Right) / (Left - Right), (Top + Bottom) / (Bottom - Top), 1.0f - ZOffset * ZScale, 1.0f)
84template<>
struct TIsUECoreVariant<FOrthoMatrix44f> {
enum { Value =
true }; };
85template<>
struct TIsUECoreVariant<FOrthoMatrix44d> {
enum { Value =
true }; };
86template<>
struct TIsUECoreVariant<FReversedZOrthoMatrix44f> {
enum { Value =
true }; };
87template<>
struct TIsUECoreVariant<FReversedZOrthoMatrix44d> {
enum { Value =
true }; };
#define UE_DECLARE_LWC_TYPE(...)
#define TEMPLATE_REQUIRES(...)