UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PBDSuspensionConstraintData.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
9
10namespace Chaos
11{
12
14 {
15 Location = 0,
16 Enabled = static_cast<uint64_t>(1) << 1,
17 Target = static_cast<uint64_t>(1) << 2,
18 HardstopStiffness = static_cast<uint64_t>(1) << 3,
19 HardstopVelocityCompensation = static_cast<uint64_t>(1) << 4,
20 SpringPreload = static_cast<uint64_t>(1) << 5,
21 SpringStiffness = static_cast<uint64_t>(1) << 6,
22 SpringDamping = static_cast<uint64_t>(1) << 7,
23 MinLength = static_cast<uint64_t>(1) << 8,
24 MaxLength = static_cast<uint64_t>(1) << 9,
25 Axis = static_cast<uint64_t>(1) << 10,
26 Normal = static_cast<uint64_t>(1) << 11,
27
29 };
30
32
34 {
35 public:
37 virtual ~FSuspensionConstraint() override {}
38
39
42
44
45#define CHAOS_INNER_SUSP_PROPERTY(OuterProp, Name, InnerType)\
46 void Set##Name(InnerType Val){ OuterProp.Modify(/*bInvalidate=*/true, DirtyFlags, Proxy, [&Val](auto& Data) { Data.Name = Val; }); }\
47 InnerType Get##Name() const { return OuterProp.Read().Name;}\
48
50
51 protected:
56
58 {
59 SuspensionSettings.SyncRemote(Manager, DataIdx, RemoteData);
60 SuspensionLocation.SyncRemote(Manager, DataIdx, RemoteData);
61 SuspensionProxy.SyncRemote(Manager, DataIdx, RemoteData);
62 SuspensionBody.SyncRemote(Manager, DataIdx, RemoteData);
63 }
64 };
65
66
67} // Chaos
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 PBDConstraintBaseData.h:36
Definition ParticleDirtyFlags.h:1129
Definition ParticleDirtyFlags.h:1039
Definition PBDSuspensionConstraintTypes.h:28
Definition PBDSuspensionConstraintData.h:34
TChaosProperty< FPhysicsObjectProperty, EChaosProperty::SuspensionPhysicsObject > SuspensionBody
Definition PBDSuspensionConstraintData.h:55
virtual ~FSuspensionConstraint() override
Definition PBDSuspensionConstraintData.h:37
TChaosProperty< FSuspensionLocation, EChaosProperty::SuspensionLocation > SuspensionLocation
Definition PBDSuspensionConstraintData.h:53
TChaosProperty< FPBDSuspensionSettings, EChaosProperty::SuspensionSettings > SuspensionSettings
Definition PBDSuspensionConstraintData.h:52
TChaosProperty< FProxyBaseProperty, EChaosProperty::SuspensionParticleProxy > SuspensionProxy
Definition PBDSuspensionConstraintData.h:54
CHAOS_API void SetParticleProxy(IPhysicsProxyBase *InParticleProxy)
Definition PBDSuspensionConstraintData.cpp:15
const FPBDSuspensionSettings & GetSuspensionSettings() const
Definition PBDSuspensionConstraintData.h:43
virtual void SyncRemoteDataImp(FDirtyPropertiesManager &Manager, int32 DataIdx, FDirtyChaosProperties &RemoteData) override
Definition PBDSuspensionConstraintData.h:57
CHAOS_API FSuspensionConstraint()
Definition PBDSuspensionConstraintData.cpp:9
CHAOS_API void SetPhysicsBody(FPhysicsObjectHandle &InBody)
Definition PBDSuspensionConstraintData.cpp:32
Definition Properties.h:14
Definition ParticleDirtyFlags.h:918
Definition PhysicsProxyBase.h:97
Definition SkeletalMeshComponent.h:307
ESuspensionConstraintFlags
Definition PBDSuspensionConstraintData.h:14
@ Enabled
Definition SimulationModuleBase.h:139
Definition PhysicsObjectInternal.h:16