UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneViewExtensionContext.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"
6#include "SceneInterface.h"
7#include "UnrealClient.h"
8#include "ViewportClient.h"
9#include "Engine/Engine.h"
10#include "SceneViewExtensionContext.generated.h"
11
12class FViewport;
14class FViewport;
15
20{
21private:
22 // A quick and dirty way to determine which Context (sub)class this is. Every subclass should implement it.
23 virtual FName GetRTTI() const { return TEXT("FSceneViewExtensionContext"); }
24
25public:
26 // The scene view extension can be defined with either a Viewport or a Scene
27
28 FViewport* Viewport = nullptr;
30 bool bStereoEnabled = false;
31
32 FSceneViewExtensionContext() : Viewport(nullptr), Scene(nullptr) {}
35
37
38 // Returns true if the given object is of the same type.
40 {
41 return GetRTTI() == Other.GetRTTI();
42 }
43
44 // Returns true if the given object is of the same type.
46 {
47 return IsA(static_cast<const FSceneViewExtensionContext&>(Other));
48 }
49
52 {
53 if (Viewport != nullptr)
54 {
55 if (const FViewportClient* ViewportClient = Viewport->GetClient())
56 {
57 return ViewportClient->GetWorld();
58 }
59 }
60
61 if (Scene != nullptr)
62 {
63 return Scene->GetWorld();
64 }
65
66 return nullptr;
67 }
68
69 bool IsStereoSupported() const
70 {
72 }
73
74 // Return true, if HMD supported
75 virtual bool IsHMDSupported() const
76 {
77 return true;
78 }
79};
80
81
86
91USTRUCT(BlueprintType)
93{
95
96private:
97
98 // The Guid is a way to identify the lambda in case it you want to later find it and remove it.
99 FGuid Guid;
100
101public:
102
103 // Constructor
107
108 // Returns the Guid of this Functor.
110 {
111 return Guid;
112 }
113
114 // This is the lambda function used to determine if the Scene View Extension should be active or not.
116
117 // Make this a functor so that it behaves like the lambda it carries.
118 TOptional<bool> operator () (const ISceneViewExtension* SceneViewExtension, const FSceneViewExtensionContext& Context) const
119 {
120 // If there is no lambda assigned, simply return an unset optional.
121 if (!IsActiveFunction)
122 {
123 return TOptional<bool>();
124 }
125
126 // Evaluate the lambda function with the given arguments
127 return IsActiveFunction(SceneViewExtension, Context);
128 }
129};
130
131
ENGINE_API class UEngine * GEngine
Definition UnrealEngine.cpp:427
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition NameTypes.h:617
Definition SceneInterface.h:106
virtual class UWorld * GetWorld() const =0
Definition ViewportClient.h:28
Definition UnrealClient.h:412
FViewportClient * GetClient() const
Definition UnrealClient.h:649
Definition SceneViewExtension.h:113
ENGINE_API bool IsStereoscopic3D(const FViewport *InViewport=nullptr) const
Definition UnrealEngine.cpp:4521
Definition World.h:918
virtual UE_API UWorld * GetWorld() const override
Definition World.cpp:1820
Definition Guid.h:109
Definition SceneViewExtensionContext.h:20
bool bStereoEnabled
Definition SceneViewExtensionContext.h:30
FViewport * Viewport
Definition SceneViewExtensionContext.h:28
UWorld * GetWorld() const
Definition SceneViewExtensionContext.h:51
virtual bool IsHMDSupported() const
Definition SceneViewExtensionContext.h:75
bool IsA(const FSceneViewExtensionContext &&Other) const
Definition SceneViewExtensionContext.h:45
FSceneViewExtensionContext(FSceneInterface *InScene)
Definition SceneViewExtensionContext.h:34
virtual ~FSceneViewExtensionContext()
Definition SceneViewExtensionContext.h:36
bool IsA(const FSceneViewExtensionContext &Other) const
Definition SceneViewExtensionContext.h:39
FSceneViewExtensionContext()
Definition SceneViewExtensionContext.h:32
FSceneViewExtensionContext(FViewport *InViewport)
Definition SceneViewExtensionContext.h:33
bool IsStereoSupported() const
Definition SceneViewExtensionContext.h:69
FSceneInterface * Scene
Definition SceneViewExtensionContext.h:29
Definition SceneViewExtensionContext.h:93
TSceneViewExtensionIsActiveFunction IsActiveFunction
Definition SceneViewExtensionContext.h:115
FGuid GetGuid() const
Definition SceneViewExtensionContext.h:109
FSceneViewExtensionIsActiveFunctor()
Definition SceneViewExtensionContext.h:104
Definition Optional.h:131