UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MaterialExpressionConvert.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
9#include "MaterialValueType.h"
10
11#include "MaterialExpressionConvert.generated.h"
12
13class UEdGraphPin;
14
15#define LOCTEXT_NAMESPACE "MaterialExpressionConvert"
16
17UENUM()
25
27{
28 static inline int32 GetComponentCount(const EMaterialExpressionConvertType InConvertType)
29 {
30 switch (InConvertType)
31 {
36 default: checkNoEntry(); return INDEX_NONE;
37 }
38 }
39
40 static inline EMaterialValueType ToMaterialValueType(const EMaterialExpressionConvertType InConvertType)
41 {
42 switch (InConvertType)
43 {
48 default: checkNoEntry(); return MCT_Float;
49 }
50 }
51
52 static inline FText ToText(const EMaterialExpressionConvertType InConvertType)
53 {
54 switch (InConvertType)
55 {
56 case EMaterialExpressionConvertType::Scalar: return LOCTEXT("Scalar", "Scalar");
57 case EMaterialExpressionConvertType::Vector2: return LOCTEXT("Vector2", "Vector2");
58 case EMaterialExpressionConvertType::Vector3: return LOCTEXT("Vector3", "Vector3");
59 case EMaterialExpressionConvertType::Vector4: return LOCTEXT("Vector4", "Vector4");
60 default: checkNoEntry(); return INVTEXT("");
61 }
62 }
63}
64
65USTRUCT()
67{
69
70 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert", meta = (RequiredInput = "false"))
71 FExpressionInput ExpressionInput;
72
73 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
75
77 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
79};
80
81USTRUCT()
83{
85
86 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
88
90 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
92};
93
94USTRUCT()
96{
98
100 FMaterialExpressionConvertMapping(int32 InputIndex, int32 InputComponentIndex, int32 OutputIndex, int32 OutputComponentIndex)
101 : InputIndex(InputIndex)
102 , InputComponentIndex(InputComponentIndex)
103 , OutputIndex(OutputIndex)
104 , OutputComponentIndex(OutputComponentIndex)
105 {}
106
108 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
109 int32 InputIndex = 0;
110
112 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
113 int32 InputComponentIndex = 0;
114
116 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
117 int32 OutputIndex = 0;
118
120 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
121 int32 OutputComponentIndex = 0;
122};
123
124UCLASS(MinimalAPI)
126{
128public:
129 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
131
132 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
134
136 UPROPERTY()
138
139 UPROPERTY(EditAnywhere, Category = "MaterialExpressionConvert")
140 FString NodeName = TEXT("Convert");
141
143
144 //~Begin UObject Interface
145 #if WITH_EDITOR
146 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
147 ENGINE_API virtual void PostEditChangeChainProperty(struct FPropertyChangedChainEvent& PropertyChangedEvent) override;
148 #endif // WITH_EDITOR
149 //~End UObject Interface
150
151 //~ Begin UMaterialExpression Interface
152 #if WITH_EDITOR
153 virtual void Build(MIR::FEmitter& Emitter) override;
154 virtual int32 Compile(class FMaterialCompiler* Compiler, int32 OutputIndex) override;
155 virtual void GetCaption(TArray<FString>& OutCaptions) const override;
156 virtual void GetConnectorToolTip(int32 InputIndex, int32 OutputIndex, TArray<FString>& OutToolTip) override;
157
158 virtual int32 CountInputs() const override;
159 virtual EMaterialValueType GetInputValueType(int32 InputIndex) override;
160 virtual FExpressionInput* GetInput(int32 InputIndex) override;
161
162 virtual EMaterialValueType GetOutputValueType(int32 OutputIndex) override;
163 virtual TArray<FExpressionOutput>& GetOutputs() override;
164
165 virtual bool CanDeletePin(EEdGraphPinDirection PinDirection, int32 PinIndex) const override;
166 virtual void DeletePin(EEdGraphPinDirection PinDirection, int32 PinIndex) override;
168 virtual void RegisterAdditionalMenuActions(FGraphActionMenuBuilder& ActionMenuBuilder, const FText& CategoryName) override;
169 #endif //WITH_EDITOR
170 //~ End UMaterialExpression Interface
171private:
172 #if WITH_EDITOR
173 void RecreateOutputs();
175 #endif //WITH_EDITOR
176};
177
178#undef LOCTEXT_NAMESPACE
#define checkNoEntry()
Definition AssertionMacros.h:316
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define TEXT(x)
Definition Platform.h:1272
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
EEdGraphPinDirection
Definition EdGraphNode.h:98
#define INVTEXT(InTextLiteral)
Definition Internationalization.h:305
#define LOCTEXT(InKey, InTextLiteral)
Definition Internationalization.h:295
EMaterialExpressionConvertType
Definition MaterialExpressionConvert.h:19
EMaterialValueType
Definition MaterialValueType.h:15
@ MCT_Float2
Definition MaterialValueType.h:22
@ MCT_Float4
Definition MaterialValueType.h:24
@ MCT_Float1
Definition MaterialValueType.h:21
@ MCT_Float
Definition MaterialValueType.h:89
@ MCT_Float3
Definition MaterialValueType.h:23
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition MaterialCompiler.h:109
Definition UObjectGlobals.h:1292
Definition Text.h:385
Definition Array.h:670
Definition SharedPointer.h:692
Definition EdGraphPin.h:294
Definition MaterialExpressionConvert.h:126
Definition MaterialExpression.h:150
Definition MaterialExpressionConvert.h:27
Definition MaterialExpressionIO.h:23
Definition EdGraphSchema.h:641
Definition Color.h:48
Definition MaterialExpressionConvert.h:67
Definition MaterialExpressionConvert.h:96
Definition MaterialExpressionConvert.h:83
Definition UnrealType.h:7001
Definition UnrealType.h:6865