UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ParticleModuleTypeDataBeam2.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4#pragma once
5
6#include "CoreMinimal.h"
10#include "ParticleModuleTypeDataBeam2.generated.h"
11
18class UParticleSystemComponent;
19struct FCurveEdEntry;
21
22UENUM()
24{
25 PEB2M_Distance UMETA(DisplayName="Distance"),
26 PEB2M_Target UMETA(DisplayName="Target"),
27 PEB2M_Branch UMETA(DisplayName="Branch"),
29};
30
31//
32// Beam Tapering Variables.
33//
34UENUM()
36{
37 PEBTM_None UMETA(DisplayName="None"),
38 PEBTM_Full UMETA(DisplayName="Full"),
39 PEBTM_Partial UMETA(DisplayName="Partial"),
41};
42
43//
44// Beam Multi-target Variables.
45//
46USTRUCT()
48{
50
51
52 UPROPERTY(EditAnywhere, Category=BeamTargetData)
53 FName TargetName;
54
56 UPROPERTY(EditAnywhere, Category=BeamTargetData)
57 float TargetPercentage;
58
59
61 : TargetPercentage(0)
62 {
63 }
64
65};
66
67UCLASS(editinlinenew, dontcollapsecategories, hidecategories=Object, MinimalAPI, meta=(DisplayName = "Beam Data"))
69{
71
72 //
73 // General Beam Variables.
74 //
75
76
82 UPROPERTY(EditAnywhere, Category=Beam)
84
89 UPROPERTY(EditAnywhere, Category=Beam)
90 int32 TextureTile;
91
95 UPROPERTY(EditAnywhere, Category=Beam)
96 float TextureTileDistance;
97
99 UPROPERTY(EditAnywhere, Category=Beam)
100 int32 Sheets;
101
103 UPROPERTY(EditAnywhere, Category=Beam)
104 int32 MaxBeamCount;
105
109 UPROPERTY(EditAnywhere, Category=Beam)
110 float Speed;
111
117 UPROPERTY(EditAnywhere, Category=Beam)
118 int32 InterpolationPoints;
119
121 UPROPERTY(EditAnywhere, Category=Beam)
122 uint32 bAlwaysOn:1;
123
132 UPROPERTY(EditAnywhere, Category=Beam)
133 int32 UpVectorStepSize;
134
135 //
136 // Beam Branching Variables.
137 //
138
142 UPROPERTY(EditAnywhere, Category=Branching)
143 FName BranchParentName;
144
145 //
146 // Beam Distance Variables.
147 //
148
153 UPROPERTY(EditAnywhere, Category=Distance)
155
162 UPROPERTY(EditAnywhere, Category=Taper)
164
166 UPROPERTY(EditAnywhere, Category=Taper)
167 struct FRawDistributionFloat TaperFactor;
168
175 UPROPERTY(EditAnywhere, Category=Taper)
176 struct FRawDistributionFloat TaperScale;
177
178 //
179 // Beam Rendering Variables.
180 //
181 UPROPERTY(EditAnywhere, Category=Rendering)
182 uint32 RenderGeometry:1;
183
184 UPROPERTY(EditAnywhere, Category=Rendering)
185 uint32 RenderDirectLine:1;
186
187 UPROPERTY(EditAnywhere, Category=Rendering)
188 uint32 RenderLines:1;
189
190 UPROPERTY(EditAnywhere, Category=Rendering)
191 uint32 RenderTessellation:1;
192
194 TArray<UParticleModuleBeamSource*> LOD_BeamModule_Source;
195 TArray<UParticleModuleBeamTarget*> LOD_BeamModule_Target;
196 TArray<UParticleModuleBeamNoise*> LOD_BeamModule_Noise;
197 TArray<UParticleModuleBeamModifier*> LOD_BeamModule_SourceModifier;
198 TArray<UParticleModuleBeamModifier*> LOD_BeamModule_TargetModifier;
200
202 void InitializeDefaults();
203
204 //~ Begin UObject Interface
205#if WITH_EDITOR
206 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
207#endif // WITH_EDITOR
208 virtual void PostInitProperties() override;
209 //~ End UObject Interface
210
211
212 //~ Begin UParticleModule Interface
213 virtual void Spawn(const FSpawnContext& Context) override;
214 virtual void Update(const FUpdateContext& Context) override;
215 virtual uint32 RequiredBytes(UParticleModuleTypeDataBase* TypeData) override;
216 virtual bool AddModuleCurvesToEditor(UInterpCurveEdSetup* EdSetup, TArray<const FCurveEdEntry*>& OutCurveEntries) override;
217 virtual bool CanTickInAnyThread() override
218 {
219 return true;
220 }
221 //~ End UParticleModule Interface
222
223
224 //~ Begin UParticleModuleTypeDataBase Interface
226 virtual void CacheModuleInfo(UParticleEmitter* Emitter) override;
227 virtual const FVertexFactoryType* GetVertexFactoryType() const override;
228 virtual EPrimitiveType GetPrimitiveType() const { return PT_TriangleStrip; }
229 virtual void CollectPSOPrecacheData(const UParticleEmitter* Emitter, FPSOPrecacheParams& OutParams) override;
230 //~ End UParticleModuleTypeDataBase Interface
231
232
251 virtual void GetDataPointers(FParticleEmitterInstance* Owner, const uint8* ParticleBase,
257
275 virtual void GetDataPointerOffsets(FParticleEmitterInstance* Owner, const uint8* ParticleBase,
276 int32& CurrentOffset, int32& BeamDataOffset, int32& InterpolatedPointsOffset, int32& NoiseRateOffset,
277 int32& NoiseDeltaTimeOffset, int32& TargetNoisePointsOffset, int32& NextNoisePointsOffset,
278 int32& TaperCount, int32& TaperValuesOffset, int32& NoiseDistanceScaleOffset);
279
287 void GetNoiseRange(FVector& NoiseMin, FVector& NoiseMax);
288};
289
290
291
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
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
EBeam2Method
Definition ParticleModuleTypeDataBeam2.h:24
@ PEB2M_MAX
Definition ParticleModuleTypeDataBeam2.h:28
EBeamTaperMethod
Definition ParticleModuleTypeDataBeam2.h:36
@ UMETA
Definition ParticleModuleTypeDataBeam2.h:25
@ PEBTM_MAX
Definition ParticleModuleTypeDataBeam2.h:40
EPrimitiveType
Definition RHIDefinitions.h:822
@ PT_TriangleStrip
Definition RHIDefinitions.h:827
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 VertexFactory.h:314
Definition ParticleEmitterInstanceOwner.h:29
Definition Array.h:670
Definition EnumAsByte.h:22
Definition InterpCurveEdSetup.h:105
Definition ParticleEmitter.h:98
Definition ParticleModuleBeamModifier.h:66
Definition ParticleModuleBeamNoise.h:24
Definition ParticleModuleBeamSource.h:26
Definition ParticleModuleBeamTarget.h:25
Definition ParticleModuleTypeDataBase.h:18
Definition ParticleModuleTypeDataBeam2.h:69
Definition ParticleHelper.h:621
Definition ParticleHelper.h:685
Definition ParticleModuleTypeDataBeam2.h:48
Definition InterpCurveEdSetup.h:15
Definition PSOPrecache.h:30
Definition ParticleEmitterInstances.h:226
Definition UnrealType.h:6865
Definition DistributionFloat.h:28