UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SplineMeshComponentDescriptor.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
10#include "SplineMeshComponentDescriptor.generated.h"
11
12// Inspired in large part from ISMComponentDescriptor.h
13
15class UStaticMesh;
17enum class ERendererStencilMask : uint8;
18
19USTRUCT()
21{
23
27
29
30 ENGINE_API virtual void InitFrom(const UStaticMeshComponent* Component, bool bInitBodyInstance = true);
31 ENGINE_API virtual uint32 ComputeHash() const;
32 ENGINE_API virtual void InitComponent(USplineMeshComponent* SplineMeshComponent) const;
33
34 ENGINE_API void PostLoadFixup(UObject* Loader);
35
37 ENGINE_API bool operator==(const FSplineMeshComponentDescriptorBase& Other) const;
38
40 {
41 return Key.GetTypeHash();
42 }
43
45 {
46 if (Hash == 0)
47 {
49 }
50 return Hash;
51 }
52
53public:
54 UPROPERTY()
56
57 UPROPERTY(EditAnywhere, Category = "Component Settings")
59
60 UPROPERTY(EditAnywhere, Category = "Component Settings")
62
63 UPROPERTY(EditAnywhere, Category = "Component Settings")
64 ERuntimeVirtualTextureMainPassType VirtualTextureRenderPassType;
65
66 UPROPERTY(EditAnywhere, Category = "Component Settings")
67 ELightmapType LightmapType;
68
69 UPROPERTY(EditAnywhere, Category = "Component Settings")
70 FLightingChannels LightingChannels;
71
72 UPROPERTY(EditAnywhere, Category = "Component Settings")
73 int32 RayTracingGroupId;
74
75 UPROPERTY(EditAnywhere, Category = "Component Settings")
76 ERayTracingGroupCullingPriority RayTracingGroupCullingPriority;
77
78 UPROPERTY(EditAnywhere, Category = "Component Settings")
79 TEnumAsByte<EHasCustomNavigableGeometry::Type> bHasCustomNavigableGeometry;
80
81 UPROPERTY(EditAnywhere, Category = "Component Settings")
82 ERendererStencilMask CustomDepthStencilWriteMask;
83
84 UPROPERTY(EditAnywhere, Category = "Component Settings")
85 FBodyInstance BodyInstance;
86
87 UPROPERTY(EditAnywhere, Category = "Component Settings")
88 int32 VirtualTextureCullMips;
89
90 UPROPERTY(EditAnywhere, Category = "Component Settings")
91 int32 TranslucencySortPriority;
92
93 UPROPERTY(EditAnywhere, Category = "Component Settings")
94 int32 OverriddenLightMapRes;
95
96 UPROPERTY(EditAnywhere, Category = "Component Settings")
97 int32 CustomDepthStencilValue;
98
99#if WITH_EDITORONLY_DATA
100 UPROPERTY(EditAnywhere, Category = "Component Settings")
102#endif
103
104 UPROPERTY(EditAnywhere, Category = "Component Settings")
105 uint8 bCastShadow : 1;
106
107 UPROPERTY(EditAnywhere, Category = "Component Settings")
108 uint8 bEmissiveLightSource : 1;
109
110 UPROPERTY(EditAnywhere, Category = "Component Settings")
111 uint8 bCastDynamicShadow : 1;
112
113 UPROPERTY(EditAnywhere, Category = "Component Settings")
114 uint8 bCastStaticShadow : 1;
115
116 UPROPERTY(EditAnywhere, Category = "Component Settings")
117 uint8 bCastContactShadow : 1;
118
119 UPROPERTY(EditAnywhere, Category = "Component Settings")
120 uint8 bCastShadowAsTwoSided : 1;
121
122 UPROPERTY(EditAnywhere, Category = "Component Settings")
123 uint8 bCastHiddenShadow : 1;
124
125 UPROPERTY(EditAnywhere, Category = "Component Settings")
126 uint8 bAffectDynamicIndirectLighting : 1;
127
128 UPROPERTY(EditAnywhere, Category = "Component Settings")
129 uint8 bAffectDynamicIndirectLightingWhileHidden : 1;
130
131 UPROPERTY(EditAnywhere, Category = "Component Settings")
132 uint8 bAffectDistanceFieldLighting : 1;
133
134 UPROPERTY(EditAnywhere, Category = "Component Settings")
135 uint8 bReceivesDecals : 1;
136
137 UPROPERTY(EditAnywhere, Category = "Component Settings")
138 uint8 bOverrideLightMapRes : 1;
139
140 UPROPERTY(EditAnywhere, Category = "Component Settings")
141 uint8 bUseAsOccluder : 1;
142
143 UPROPERTY(EditAnywhere, Category = "Component Settings")
144 uint8 bEnableDiscardOnLoad : 1;
145
146 UPROPERTY(EditAnywhere, Category = "Component Settings")
147 uint8 bRenderCustomDepth : 1;
148
149 UPROPERTY(EditAnywhere, Category = "Component Settings")
150 uint8 bVisibleInRayTracing : 1;
151
152 UPROPERTY(EditAnywhere, Category = "Component Settings")
153 uint8 bHiddenInGame : 1;
154
155 UPROPERTY(EditAnywhere, Category = "Component Settings")
156 uint8 bIsEditorOnly : 1;
157
158 UPROPERTY(EditAnywhere, Category = "Component Settings")
159 uint8 bVisible : 1;
160
161 UPROPERTY(EditAnywhere, Category = "Component Settings")
162 uint8 bEvaluateWorldPositionOffset : 1;
163
164 UPROPERTY(EditAnywhere, Category = "Component Settings")
165 uint8 bReverseCulling : 1;
166
167#if WITH_EDITORONLY_DATA
168 UPROPERTY(EditAnywhere, Category = "Component Settings")
170
171 UPROPERTY(EditAnywhere, Category = "Component Settings")
173#endif
174
175 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "bGenerateOverlapEvents"))
176 uint8 bUseDefaultCollision : 1;
177
178 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "CustomDepthStencilWriteMask"))
179 uint8 bGenerateOverlapEvents : 1;
180
181 UPROPERTY(EditAnywhere, Category = "Component Settings")
182 uint8 bOverrideNavigationExport : 1;
183
184 UPROPERTY(EditAnywhere, Category = "Component Settings")
185 uint8 bForceNavigationObstacle : 1;
186
187 UPROPERTY(EditAnywhere, Category = "Component Settings")
188 uint8 bFillCollisionUnderneathForNavmesh : 1;
189
190 UPROPERTY(EditAnywhere, Category = "Component Settings")
191 int32 WorldPositionOffsetDisableDistance;
192
193 UPROPERTY(EditAnywhere, Category = "Component Settings")
194 EShadowCacheInvalidationBehavior ShadowCacheInvalidationBehavior;
195
196 UPROPERTY(EditAnywhere, Category = "Component Settings")
198};
199
200USTRUCT()
202{
204
208 static ENGINE_API FSplineMeshComponentDescriptor CreateFrom(const TSubclassOf<UStaticMeshComponent>& ComponentClass);
209
210 ENGINE_API virtual void InitFrom(const UStaticMeshComponent* Component, bool bInitBodyInstance = true) override;
211 ENGINE_API virtual uint32 ComputeHash() const;
212 ENGINE_API virtual void InitComponent(USplineMeshComponent* SplineMeshComponent) const override;
213
215 ENGINE_API bool operator==(const FSplineMeshComponentDescriptor& Other) const;
216
218 {
219 return Lhs.Hash < Rhs.Hash;
220 }
221
222public:
223 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
225
226 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
228
229 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
231
232 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
233 TArray<TObjectPtr<URuntimeVirtualTexture>> RuntimeVirtualTextures;
234};
235
236USTRUCT()
238{
240
245
246 ENGINE_API virtual void InitFrom(const UStaticMeshComponent* Component, bool bInitBodyInstance = true) override;
247 ENGINE_API virtual uint32 ComputeHash() const;
248 ENGINE_API virtual void InitComponent(USplineMeshComponent* SplineMeshComponent) const override;
249
251 ENGINE_API bool operator==(const FSoftSplineMeshComponentDescriptor& Other) const;
252
254 {
255 return Lhs.Hash < Rhs.Hash;
256 }
257
258public:
259 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
261
262 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
264
265 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
267
268 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (DisplayAfter = "ComponentClass"))
270};
ENoInit
Definition CoreMiscDefines.h:158
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
ELightmapType
Definition EngineTypes.h:210
EHLODBatchingPolicy
Definition HLODBatchingPolicy.h:14
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
EObjectFlags
Definition ObjectMacros.h:552
@ RF_NoFlags
No flags, used to avoid a cast.
Definition ObjectMacros.h:555
#define USTRUCT(...)
Definition ObjectMacros.h:746
ERendererStencilMask
Definition PrimitiveComponent.h:103
ERayTracingGroupCullingPriority
Definition PrimitiveComponent.h:119
uint64 ComputeHash(const FRHITextureCreateInfo &InCreateInfo, uint64 HeapOffset)
Definition RHICoreTransientResourceAllocator.h:15
ERuntimeVirtualTextureMainPassType
Definition RuntimeVirtualTextureEnum.h:58
EDetailMode
Definition SceneComponent.h:32
EShadowCacheInvalidationBehavior
Definition SceneTypes.h:219
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition Array.h:670
Definition EnumAsByte.h:22
Definition SubclassOf.h:30
Definition MaterialInterface.h:296
Definition Object.h:95
Definition RuntimeVirtualTexture.h:18
Definition StaticMesh.h:593
Definition EngineTypes.h:3787
Definition NavigationElement.h:18
Definition BodyInstance.h:320
Definition EngineTypes.h:562
Definition SplineMeshComponentDescriptor.h:238
ENGINE_API ~FSoftSplineMeshComponentDescriptor()
static ENGINE_API FSoftSplineMeshComponentDescriptor CreateFrom(const TSubclassOf< UStaticMeshComponent > &ComponentClass)
friend bool operator<(const FSoftSplineMeshComponentDescriptor &Lhs, const FSoftSplineMeshComponentDescriptor &Rhs)
Definition SplineMeshComponentDescriptor.h:253
Definition SplineMeshComponentDescriptor.h:21
virtual ENGINE_API ~FSplineMeshComponentDescriptorBase()
uint32 GetTypeHash() const
Definition SplineMeshComponentDescriptor.h:44
friend uint32 GetTypeHash(const FSplineMeshComponentDescriptorBase &Key)
Definition SplineMeshComponentDescriptor.h:39
uint32 Hash
Definition SplineMeshComponentDescriptor.h:55
Definition SplineMeshComponentDescriptor.h:202
friend bool operator<(const FSplineMeshComponentDescriptor &Lhs, const FSplineMeshComponentDescriptor &Rhs)
Definition SplineMeshComponentDescriptor.h:217
ENGINE_API ~FSplineMeshComponentDescriptor()
Definition ObjectPtr.h:488
Definition SoftObjectPtr.h:174