UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SlateLayoutTransform.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
8
20{
21public:
23 : Scale(InScale)
24 , Translation(FVector2f(ForceInit))
25 {
26 }
27
34
36 :Scale(1.0f)
37 ,Translation(FVector2f(InTranslation))
38 {
39 }
40
46
48 float GetScale() const
49 {
50 return Scale;
51 }
52
55 {
57 Matrix.SetOrigin(FVector(FVector2d(Translation), 0.0f));
58 return Matrix;
59 }
60
65
70
79 {
80 // New Translation is essentially: RHS.TransformPoint(TransformPoint(FVector2D::ZeroVector))
81 // Since Zero through LHS -> Translation we optimize it slightly to skip the zero multiplies.
82 return FSlateLayoutTransform(::Concatenate(Scale, RHS.Scale), RHS.TransformPoint(Translation));
83 }
84
87 {
88 return FSlateLayoutTransform(::Inverse(Scale), ::Inverse(Translation) * ::Inverse(Scale));
89 }
90
93 {
94 return Scale == Other.Scale && Translation == Other.Translation;
95 }
96
99 {
100 return !operator==(Other);
101 }
102
103private:
104 float Scale;
105 FVector2f Translation;
106};
107
109template<typename T>
114
115template<typename T>
120
122template<typename T>
127
128template<typename T>
130{
132}
133
139template<typename T> struct ConcatenateRules<FSlateLayoutTransform, UE::Math::TVector2<T> > { typedef FSlateLayoutTransform ResultType; };
140template<typename T> struct ConcatenateRules<UE::Math::TVector2<T>, FSlateLayoutTransform > { typedef FSlateLayoutTransform ResultType; };
141template<typename T> struct ConcatenateRules<FSlateLayoutTransform , UE::Math::TMatrix<T> > { typedef UE::Math::TMatrix<T> ResultType; };
142template<typename T> struct ConcatenateRules<UE::Math::TMatrix<T> , FSlateLayoutTransform > { typedef UE::Math::TMatrix<T> ResultType; };
143
145template<typename T> struct ConcatenateRules<TScale2<T> , FSlateLayoutTransform > { typedef TTransform2<T> ResultType; };
146template<typename T> struct ConcatenateRules<TShear2<T> , FSlateLayoutTransform > { typedef TTransform2<T> ResultType; };
147template<typename T> struct ConcatenateRules<TQuat2<T> , FSlateLayoutTransform > { typedef TTransform2<T> ResultType; };
148template<typename T> struct ConcatenateRules<TMatrix2x2<T> , FSlateLayoutTransform > { typedef TTransform2<T> ResultType; };
149template<typename T> struct ConcatenateRules<FSlateLayoutTransform , TScale2<T> > { typedef TTransform2<T> ResultType; };
150template<typename T> struct ConcatenateRules<FSlateLayoutTransform , TShear2<T> > { typedef TTransform2<T> ResultType; };
151template<typename T> struct ConcatenateRules<FSlateLayoutTransform , TQuat2<T> > { typedef TTransform2<T> ResultType; };
152template<typename T> struct ConcatenateRules<FSlateLayoutTransform , TMatrix2x2<T> > { typedef TTransform2<T> ResultType; };
153
155// FSlateLayoutTransform adapters.
156//
157// Adapt FTransform2D to accept FSlateLayoutTransforms as well.
160{
161 return TTransform2<float>(TScale2<float>((float)Transform.GetScale()), Transform.GetTranslation());
162}
163
165{
167}
168
@ ForceInit
Definition CoreMiscDefines.h:155
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define FVector
Definition IOSSystemIncludes.h:8
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
UE::Math::TVector2< double > FVector2d
Definition MathFwd.h:61
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
FSlateLayoutTransform Concatenate(float Scale, const UE::Math::TVector2< T > &Translation)
Definition SlateLayoutTransform.h:110
PositionType TransformPoint(const TransformType &Transform, const PositionType &Point)
Definition TransformCalculus.h:358
Definition SlateLayoutTransform.h:20
FSlateLayoutTransform(float InScale, const UE::Slate::FDeprecateVector2DParameter &InTranslation)
Definition SlateLayoutTransform.h:29
float GetScale() const
Definition SlateLayoutTransform.h:48
UE::Slate::FDeprecateVector2DResult TransformPoint(const UE::Slate::FDeprecateVector2DParameter &Point) const
Definition SlateLayoutTransform.h:61
FSlateLayoutTransform Concatenate(const FSlateLayoutTransform &RHS) const
Definition SlateLayoutTransform.h:78
FMatrix ToMatrix() const
Definition SlateLayoutTransform.h:54
bool operator!=(const FSlateLayoutTransform &Other) const
Definition SlateLayoutTransform.h:98
UE::Slate::FDeprecateVector2DResult GetTranslation() const
Definition SlateLayoutTransform.h:42
UE::Slate::FDeprecateVector2DResult TransformVector(const UE::Slate::FDeprecateVector2DParameter &Vector) const
Definition SlateLayoutTransform.h:66
FSlateLayoutTransform(float InScale=1.0f)
Definition SlateLayoutTransform.h:22
bool operator==(const FSlateLayoutTransform &Other) const
Definition SlateLayoutTransform.h:92
FSlateLayoutTransform(const UE::Slate::FDeprecateVector2DParameter &InTranslation)
Definition SlateLayoutTransform.h:35
FSlateLayoutTransform Inverse() const
Definition SlateLayoutTransform.h:86
Definition TransformCalculus2D.h:404
Definition TransformCalculus2D.h:303
Definition TransformCalculus2D.h:114
Definition TransformCalculus2D.h:199
Definition TransformCalculus2D.h:682
FDeprecateSlateVector2D FDeprecateVector2DResult
Definition SlateVector2.h:469
const FVector2f & CastToVector2f(const FVector2f &InValue)
Definition SlateVector2.h:591
Definition AdvancedWidgetsModule.cpp:13
TTransform2< T > ResultType
Definition SlateLayoutTransform.h:152
TTransform2< T > ResultType
Definition SlateLayoutTransform.h:151
TTransform2< T > ResultType
Definition SlateLayoutTransform.h:149
TTransform2< T > ResultType
Definition SlateLayoutTransform.h:150
UE::Math::TMatrix< T > ResultType
Definition SlateLayoutTransform.h:141
FSlateLayoutTransform ResultType
Definition SlateLayoutTransform.h:139
FSlateLayoutTransform ResultType
Definition SlateLayoutTransform.h:136
FSlateLayoutTransform ResultType
Definition SlateLayoutTransform.h:135
TTransform2< T > ResultType
Definition SlateLayoutTransform.h:148
TTransform2< T > ResultType
Definition SlateLayoutTransform.h:147
TTransform2< T > ResultType
Definition SlateLayoutTransform.h:145
TTransform2< T > ResultType
Definition SlateLayoutTransform.h:146
UE::Math::TMatrix< T > ResultType
Definition SlateLayoutTransform.h:142
FSlateLayoutTransform ResultType
Definition SlateLayoutTransform.h:140
FSlateLayoutTransform ResultType
Definition SlateLayoutTransform.h:138
FSlateLayoutTransform ResultType
Definition SlateLayoutTransform.h:137
Definition TransformCalculus.h:273
Definition TransformCalculus.h:238
Definition SlateVector2.h:485