UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MaterialExpressionNamedReroute.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "MaterialExpressionNamedReroute.generated.h"
7
9
10UCLASS(abstract, MinimalAPI)
32
33UCLASS(collapsecategories, hidecategories=Object, DisplayName = "Named Reroute Declaration", MinimalAPI)
35{
37
38public:
39 // The input pin
40 UPROPERTY()
42
45
49
50 // The variable GUID, to support copy across graphs
51 UPROPERTY()
53
54 //~ Begin UObject Interface
58#if WITH_EDITOR
59 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
60#endif // WITH_EDITOR
61 //~ End UObject Interface
62
63 //~ Begin UMaterialExpression Interface
64#if WITH_EDITOR
65 ENGINE_API virtual void Build(MIR::FEmitter& Emitter) override;
66 ENGINE_API virtual int32 Compile(class FMaterialCompiler* Compiler, int32 OutputIndex) override;
67 ENGINE_API virtual int32 CompilePreview(FMaterialCompiler* Compiler, int32 OutputIndex) override;
68 ENGINE_API virtual void GetCaption(TArray<FString>& OutCaptions) const override;
69
70 ENGINE_API virtual FText GetCreationDescription() const override;
71 ENGINE_API virtual FText GetCreationName() const override;
72
73 ENGINE_API virtual bool MatchesSearchQuery(const TCHAR* SearchQuery) override;
74 ENGINE_API virtual bool CanRenameNode() const override;
75 ENGINE_API virtual FString GetEditableName() const override;
76 ENGINE_API virtual void SetEditableName(const FString& NewName) override;
77
79#endif // WITH_EDITOR
80 //~ End UMaterialExpression Interface
81
82protected:
83 //~ Begin UMaterialExpressionRerouteBase Interface
84 ENGINE_API virtual bool GetRerouteInput(FExpressionInput& OutInput) const override;
85 //~ End UMaterialExpressionRerouteBase Interface
86
87private:
92 void UpdateVariableGuid(bool bForceGeneration, bool bAllowMarkingPackageDirty);
93 void MakeNameUnique();
94};
95
96UCLASS(collapsecategories, hidecategories=Object, DisplayName = "Named Reroute Usage", MinimalAPI)
98{
100
101public:
102 // The declaration this node is linked to
103 UPROPERTY()
105
106 // The variable GUID, to support copy across graphs
107 UPROPERTY()
108 FGuid DeclarationGuid;
109
110 // Check that the declaration isn't deleted
111 bool IsDeclarationValid() const;
112
113 //~ Begin UMaterialExpression Interface
114#if WITH_EDITOR
115 ENGINE_API virtual void Build(MIR::FEmitter& Emitter) override;
116 ENGINE_API virtual int32 Compile(class FMaterialCompiler* Compiler, int32 OutputIndex) override;
117 ENGINE_API virtual int32 CompilePreview(FMaterialCompiler* Compiler, int32 OutputIndex) override;
118
119 ENGINE_API virtual void GetCaption(TArray<FString>& OutCaptions) const override;
120 ENGINE_API virtual EMaterialValueType GetOutputValueType(int32 OutputIndex) override;
121
122 ENGINE_API virtual bool MatchesSearchQuery(const TCHAR* SearchQuery) override;
123
125#endif // WITH_EDITOR
126 //~ End UMaterialExpression Interface
127
128protected:
129 //~ Begin UMaterialExpressionRerouteBase Interface
130 ENGINE_API virtual bool GetRerouteInput(FExpressionInput& OutInput) const override;
131 //~ End UMaterialExpressionRerouteBase Interface
132};
133
134template<typename ExpressionsArrayType>
136{
137 for (UMaterialExpression* Expression : Expressions)
138 {
139 auto* Declaration = Cast<UMaterialExpressionNamedRerouteDeclaration>(Expression);
140 if (Declaration && this != Declaration && Declaration->VariableGuid == VariableGuid)
141 {
142 return Declaration;
143 }
144 }
145 return nullptr;
146}
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EMaterialValueType
Definition MaterialValueType.h:15
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition MaterialCompiler.h:109
Definition NameTypes.h:617
Definition Text.h:385
Definition Array.h:670
Definition MaterialExpressionNamedReroute.h:12
ENGINE_API UMaterialExpressionNamedRerouteDeclaration * FindDeclarationInMaterial(const FGuid &VariableGuid) const
Definition MaterialExpressions.cpp:17918
UMaterialExpressionNamedRerouteDeclaration * FindDeclarationInArray(const FGuid &VariableGuid, const ExpressionsArrayType &Expressions) const
Definition MaterialExpressionNamedReroute.h:135
Definition MaterialExpressionNamedReroute.h:35
virtual ENGINE_API bool GetRerouteInput(FExpressionInput &OutInput) const override
Definition MaterialExpressions.cpp:18081
virtual ENGINE_API void PostInitProperties() override
Definition MaterialExpressions.cpp:17943
FLinearColor NodeColor
Definition MaterialExpressionNamedReroute.h:48
FGuid VariableGuid
Definition MaterialExpressionNamedReroute.h:52
virtual ENGINE_API void PostDuplicate(bool bDuplicateForPIE) override
Definition MaterialExpressions.cpp:17957
Definition MaterialExpressionNamedReroute.h:98
Definition MaterialExpressionRerouteBase.h:12
Definition MaterialExpression.h:150
Definition MaterialExpressionIO.h:23
Definition Guid.h:109
Definition Color.h:48
Definition UnrealType.h:6865
Definition ObjectPtr.h:488