UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PerParticlePBDEulerStep.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
7
8namespace Chaos
9{
14{
15 public:
18
19 template<class T_PARTICLES>
20 inline void ApplyHelper(T_PARTICLES& InParticles, const FReal Dt, const int32 Index) const
21 {
22 InParticles.SetP(Index, InParticles.GetX(Index) + InParticles.GetV(Index) * Dt);
23 }
24
25 inline void Apply(FPBDParticles& InParticles, const FReal Dt, const int32 Index) const override //-V762
26 {
28 }
29
30 inline void Apply(TPBDRigidParticles<FReal, 3>& InParticles, const FReal Dt, const int32 Index) const override //-V762
31 {
34
35 PCoM = PCoM + InParticles.GetV(Index) * Dt;
36 QCoM = FRotation3::IntegrateRotationWithAngularVelocity(QCoM, InParticles.GetW(Index), Dt);
37
38 InParticles.SetTransformPQCom(Index, PCoM, QCoM);
39 }
40
41 inline void Apply(TTransientPBDRigidParticleHandle<FReal, 3>& Particle, const FReal Dt) const override
42 {
43 FVec3 PCoM = Particle.XCom();
44 FRotation3 QCoM = Particle.RCom();
45
46 PCoM = PCoM + Particle.GetV() * Dt;
47 QCoM = FRotation3::IntegrateRotationWithAngularVelocity(QCoM, Particle.GetW(), Dt);
48
49 Particle.SetTransformPQCom(PCoM, QCoM);
50 }
51};
52
53template<class T, int d>
54using TPerParticlePBDEulerStep UE_DEPRECATED(4.27, "Deprecated. this class is to be deleted, use FPerParticlePBDEulerStep instead") = FPerParticlePBDEulerStep;
55}
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
Definition PerParticlePBDEulerStep.h:14
void Apply(TPBDRigidParticles< FReal, 3 > &InParticles, const FReal Dt, const int32 Index) const override
Definition PerParticlePBDEulerStep.h:30
void Apply(FPBDParticles &InParticles, const FReal Dt, const int32 Index) const override
Definition PerParticlePBDEulerStep.h:25
void ApplyHelper(T_PARTICLES &InParticles, const FReal Dt, const int32 Index) const
Definition PerParticlePBDEulerStep.h:20
virtual ~FPerParticlePBDEulerStep()
Definition PerParticlePBDEulerStep.h:17
FPerParticlePBDEulerStep()
Definition PerParticlePBDEulerStep.h:16
void Apply(TTransientPBDRigidParticleHandle< FReal, 3 > &Particle, const FReal Dt) const override
Definition PerParticlePBDEulerStep.h:41
Definition PerParticleRule.h:18
const TVector< T, d > GetW() const
Definition ParticleHandle.h:957
const TVector< T, d > GetV() const
Definition ParticleHandle.h:948
Definition PBDParticles.h:12
Definition ParticleHandle.h:987
const TRotation< T, d > RCom() const
Definition ParticleHandle.h:1123
const TVector< T, d > XCom() const
Definition ParticleHandle.h:1119
void SetTransformPQCom(const TVector< T, d > &InPCom, const TRotation< T, d > &InQCom)
Definition ParticleHandle.h:1136
Definition PBDRigidParticles.h:22
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22
U16 Index
Definition radfft.cpp:71