UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Viewport.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
9#include "ShowFlags.h"
10#include "Widgets/SWidget.h"
11#include "UnrealClient.h"
12#include "SceneTypes.h"
13#include "Camera/CameraTypes.h"
14#include "SceneManagement.h"
16#include "ViewportClient.h"
17
18#include "Viewport.generated.h"
19
20class FCanvas;
21class FPreviewScene;
23
28{
29public:
31
34
37 {
38 ViewRotation = Rotation;
39 }
40
43 {
44 LookAt = InLookAt;
45 }
46
49 {
50 OrthoZoom = InOrthoZoom;
51 }
52
53
55 inline const FVector& GetLocation() const { return ViewLocation; }
56
58 inline const FRotator& GetRotation() const { return ViewRotation; }
59
61 inline const FVector& GetLookAt() const { return LookAt; }
62
64 inline float GetOrthoZoom() const { return OrthoZoom; }
65
73
80
85private:
87 double TransitionStartTime;
89 FVector ViewLocation;
91 FRotator ViewRotation;
93 FVector DesiredLocation;
95 FVector LookAt;
97 FVector StartLocation;
99 float OrthoZoom;
100};
101
102
104{
105public:
108
110
111 // FViewportClient interface
112 UMG_API virtual UWorld* GetWorld() const override;
113 UMG_API virtual void Draw(FViewport* InViewport, FCanvas* Canvas) override;
114
115 // FUMGViewportClient
116
117 UMG_API virtual void Tick(float InDeltaTime);
118
119 UMG_API virtual FSceneView* CalcSceneView(FSceneViewFamily* ViewFamily);
120
121
125 UMG_API virtual FSceneInterface* GetScene() const;
126
127
129
132
138
140 void SetViewRotation(const FRotator& NewRotation)
141 {
142 ViewTransform.SetRotation(NewRotation);
143 }
144
164
167 {
168 // A zero ortho zoom is not supported and causes NaN/div0 errors
169 check(InOrthoZoom != 0);
171 }
172
175 {
176 return ViewTransform.GetLocation();
177 }
178
181 {
182 return ViewTransform.GetRotation();
183 }
184
187 {
188 return ViewTransform.GetLookAt();
189 }
190
192 float GetOrthoZoom() const
193 {
195 }
196
199
204
206
207protected:
208
211
213
215
218
220
223
226
228};
229
233UCLASS(Experimental, MinimalAPI)
235{
237
238 UE_DEPRECATED(5.2, "Direct access to BackgroundColor is deprecated. Please use the getter or setter.")
239 UPROPERTY(EditAnywhere, BlueprintReadWrite, Getter, Setter, Category = Appearance)
240 FLinearColor BackgroundColor;
241
242 UFUNCTION(BlueprintCallable, Category="Viewport")
243 UMG_API UWorld* GetViewportWorld() const;
244
245 UFUNCTION(BlueprintCallable, Category="Camera")
246 UMG_API FVector GetViewLocation() const;
247
248 UFUNCTION(BlueprintCallable, Category="Camera")
249 UMG_API void SetViewLocation(FVector Location);
250
251 UFUNCTION(BlueprintCallable, Category="Camera")
252 UMG_API FRotator GetViewRotation() const;
253
254 UFUNCTION(BlueprintCallable, Category="Camera")
255 UMG_API void SetViewRotation(FRotator Rotation);
256
257 UFUNCTION(BlueprintCallable, Category="Viewport")
258 UMG_API AActor* Spawn(TSubclassOf<AActor> ActorClass);
259
260 UMG_API void SetBackgroundColor(const FLinearColor& InColor);
261
262 UMG_API const FLinearColor& GetBackgroundColor() const;
263
264 UFUNCTION(BlueprintCallable, Category = "Viewport")
265 UMG_API void SetEnableAdvancedFeatures(bool InEnableAdvancedFeatures);
266
267 UFUNCTION(BlueprintCallable, Category = "Viewport")
268 UMG_API void SetLightIntensity(float LightIntensity);
269
270 UFUNCTION(BlueprintCallable, Category = "Viewport")
271 UMG_API void SetSkyIntensity(float LightIntensity);
272
273 UFUNCTION(BlueprintCallable, Category = "Viewport")
274 UMG_API void SetShowFlag(FString InShowFlagName, bool InValue);
275
276 UFUNCTION(BlueprintCallable, Category = "Viewport")
277 UMG_API FMatrix GetViewProjectionMatrix() const;
278
279
280 // UWidget interface
281 UMG_API virtual void SynchronizeProperties() override;
282 // End of UWidget interface
283
284 UMG_API virtual void ReleaseSlateResources(bool bReleaseChildren) override;
285
286#if WITH_EDITOR
287 UMG_API virtual const FText GetPaletteCategory() override;
288#endif
289
290protected:
291
292 // UPanelWidget
293 UMG_API virtual void OnSlotAdded(UPanelSlot* Slot) override;
294 UMG_API virtual void OnSlotRemoved(UPanelSlot* Slot) override;
295 // End UPanelWidget
296
297protected:
299
300protected:
301 // UWidget interface
302 UMG_API virtual TSharedRef<SWidget> RebuildWidget() override;
303 // End of UWidget interface
304
307};
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition Actor.h:257
Definition CanvasTypes.h:211
Definition ViewportClient.h:417
Definition PreviewScene.h:19
Definition SceneInterface.h:106
Definition SceneView.h:2212
Definition SceneTypes.h:50
Definition SceneView.h:1425
Definition Text.h:385
Definition Viewport.h:104
void SetViewLocation(const FVector &NewLocation)
Definition Viewport.h:134
virtual UMG_API ~FUMGViewportClient()
Definition Viewport.cpp:108
FEngineShowFlags EngineShowFlags
Definition Viewport.h:225
FMinimalViewInfo ViewInfo
Definition Viewport.h:212
FMatrix CachedViewProjectionMatrix
Definition Viewport.h:227
FViewport * Viewport
Definition Viewport.h:219
UMG_API float GetOrthoUnitsPerPixel(const FViewport *Viewport) const
Definition Viewport.cpp:253
const FRotator & GetViewRotation() const
Definition Viewport.h:180
void SetLookAtLocation(const FVector &LookAt, bool bRecalculateView=false)
Definition Viewport.h:151
UMG_API bool IsAspectRatioConstrained() const
Definition Viewport.cpp:238
FLinearColor BackgroundColor
Definition Viewport.h:214
virtual UMG_API FSceneView * CalcSceneView(FSceneViewFamily *ViewFamily)
Definition Viewport.cpp:266
void SetViewRotation(const FRotator &NewRotation)
Definition Viewport.h:140
FSceneViewStateReference ViewState
Definition Viewport.h:222
FPreviewScene * PreviewScene
Definition Viewport.h:210
virtual UMG_API UWorld * GetWorld() const override
Definition Viewport.cpp:223
UMG_API void SetBackgroundColor(FLinearColor InBackgroundColor)
Definition Viewport.cpp:243
FUMGViewportCameraTransform ViewTransform
Definition Viewport.h:217
void SetOrthoZoom(float InOrthoZoom)
Definition Viewport.h:166
const FVector & GetViewLocation() const
Definition Viewport.h:174
UMG_API FLinearColor GetBackgroundColor() const
Definition Viewport.cpp:248
FMatrix GetViewProjectionMatrix() const
Definition Viewport.cpp:261
virtual UMG_API FSceneInterface * GetScene() const
Definition Viewport.cpp:212
const FVector & GetLookAtLocation() const
Definition Viewport.h:186
float GetOrthoZoom() const
Definition Viewport.h:192
virtual UMG_API void Draw(FViewport *InViewport, FCanvas *Canvas) override
Definition Viewport.cpp:136
void SetEngineShowFlags(FEngineShowFlags InEngineShowFlags)
Definition Viewport.h:200
Definition SceneManagement.h:1280
virtual void Draw(const FSceneView *View, FPrimitiveDrawInterface *PDI)
Definition SceneManagement.h:1286
Definition UnrealClient.h:412
Definition Viewport.cpp:318
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SubclassOf.h:30
Definition ContentWidget.h:13
Definition PanelSlot.h:13
Definition Viewport.h:235
FEngineShowFlags ShowFlags
Definition Viewport.h:306
TSharedPtr< class SAutoRefreshViewport > ViewportWidget
Definition Viewport.h:298
Definition World.h:918
Definition RobinHoodHashTable.h:18
Definition ShowFlags.h:56
Definition Color.h:48
Definition CameraTypes.h:37
Definition Viewport.h:28
const FRotator & GetRotation() const
Definition Viewport.h:58
const FVector & GetLookAt() const
Definition Viewport.h:61
void SetLookAt(const FVector &InLookAt)
Definition Viewport.h:42
UMG_API FMatrix ComputeOrbitMatrix() const
Definition Viewport.cpp:86
UMG_API bool UpdateTransition()
Definition Viewport.cpp:60
UMG_API void TransitionToLocation(const FVector &InDesiredLocation, bool bInstant)
Definition Viewport.cpp:44
UMG_API FUMGViewportCameraTransform()
Definition Viewport.cpp:28
UMG_API void SetLocation(const FVector &Position)
Definition Viewport.cpp:38
void SetRotation(const FRotator &Rotation)
Definition Viewport.h:36
float GetOrthoZoom() const
Definition Viewport.h:64
const FVector & GetLocation() const
Definition Viewport.h:55
void SetOrthoZoom(float InOrthoZoom)
Definition Viewport.h:48
TMatrix< T > InverseFast() const
Definition Matrix.inl:357