UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PerParticleGravity.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
7
8namespace Chaos
9{
11 {
12 public:
13 static constexpr uint32 MaxGravityGroups = 8;
14
16 {
17 SetAllGravities(FVec3(0, 0, (FReal)-980.665));
18 }
19
21 {
22 SetAllGravities(G);
23 }
24 FPerParticleGravity(const FVec3& Direction, const FReal Magnitude)
25 {
26 SetAllGravities(Direction * Magnitude);
27 }
29
30 void Apply(TTransientPBDRigidParticleHandle<FReal, 3>& Particle, const FReal Dt) const override //-V762
31 {
32 if(Particle.GravityEnabled())
33 {
34 Particle.Acceleration() += MAccelerations[Particle.GravityGroupIndex()];
35 }
36 }
37
38 void SetAcceleration(const FVec3& Acceleration, int32 GroupIndex)
39 {
40 MAccelerations[GroupIndex] = Acceleration;
41 }
42
43 const FVec3& GetAcceleration(int32 GroupIndex) const
44 {
45 return MAccelerations[GroupIndex];
46 }
47
48 private:
49 void SetAllGravities(const FVec3& Gravity)
50 {
51 for (int32 Index = 0; Index < MaxGravityGroups; Index++)
52 {
53 MAccelerations[Index] = Gravity;
54 }
55 }
56
57 private:
58 FVec3 MAccelerations[MaxGravityGroups];
59 };
60
61 template<class T, int d>
62 using TPerParticleGravity UE_DEPRECATED(4.27, "Deprecated. this class is to be deleted, use FPerParticleGravity instead") = FPerParticleGravity;
63}
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition PerParticleGravity.h:11
static constexpr uint32 MaxGravityGroups
Definition PerParticleGravity.h:13
void Apply(TTransientPBDRigidParticleHandle< FReal, 3 > &Particle, const FReal Dt) const override
Definition PerParticleGravity.h:30
void SetAcceleration(const FVec3 &Acceleration, int32 GroupIndex)
Definition PerParticleGravity.h:38
const FVec3 & GetAcceleration(int32 GroupIndex) const
Definition PerParticleGravity.h:43
FPerParticleGravity(const FVec3 &G)
Definition PerParticleGravity.h:20
FPerParticleGravity(const FVec3 &Direction, const FReal Magnitude)
Definition PerParticleGravity.h:24
FPerParticleGravity()
Definition PerParticleGravity.h:15
virtual ~FPerParticleGravity()
Definition PerParticleGravity.h:28
Definition PerParticleRule.h:18
Definition ParticleHandle.h:987
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22
TVector< FReal, 3 > FVec3
Definition Core.h:17
U16 Index
Definition radfft.cpp:71