10#include "ChaosVDParticleDataWrapper.generated.h"
80 virtual bool HasValidData()
const {
return bHasValidData; }
113 : bGravityEnabled(
false),
115 bOneWayInteractionEnabled(
false),
116 bInertiaConditioningEnabled(
false),
117 GravityGroupIndex(0),
119 bPartialIslandSleepAllowed(
true),
120 bGyroscopicTorqueEnabled(
false)
126 template <
typename TOther>
129 bGravityEnabled =
Other.GetGravityEnabled();
130 bCCDEnabled =
Other.GetCCDEnabled();
131 bOneWayInteractionEnabled =
Other.GetOneWayInteractionEnabled();
132 bInertiaConditioningEnabled =
Other.GetInertiaConditioningEnabled();
133 GravityGroupIndex =
Other.GetGravityGroupIndex();
134 bMACDEnabled =
Other.GetMACDEnabled();
135 bPartialIslandSleepAllowed =
Other.GetPartialIslandSleepAllowed();
136 bGyroscopicTorqueEnabled =
Other.GetGyroscopicTorqueEnabled();
138 bHasValidData =
true;
141 template <
typename TOther>
144 Other.SetGravityEnabled(bGravityEnabled);
145 Other.SetCCDEnabled(bCCDEnabled);
146 Other.SetOneWayInteractionEnabled(bOneWayInteractionEnabled);
147 Other.SetInertiaConditioningEnabled(bInertiaConditioningEnabled);
148 Other.SetGravityGroupIndex(GravityGroupIndex);
149 Other.SetMACDEnabled(bMACDEnabled);
150 Other.SetPartialIslandSleepAllowed(bPartialIslandSleepAllowed);
151 Other.SetGyroscopicTorqueEnabled(bGyroscopicTorqueEnabled);
155 UPROPERTY(VisibleAnywhere, Category=
"Particle Control Flags")
160 bool bOneWayInteractionEnabled;
162 bool bInertiaConditioningEnabled;
168 bool bPartialIslandSleepAllowed;
170 bool bGyroscopicTorqueEnabled;
180 WithSerializer =
true,
202 template <
typename OtherType, EAccessorType AccessorType>
217 bHasValidData =
true;
220 template <
typename OtherType, EAccessorType AccessorType>
237 UPROPERTY(VisibleAnywhere, Category=
"Particle Velocities")
240 UPROPERTY(VisibleAnywhere, Category= "Particle Velocities")
260 template <
typename TOther>
265 bHasValidData =
true;
268 template <
typename TOther>
275 UPROPERTY(VisibleAnywhere, Category=
"Particle Velocities")
278 UPROPERTY(VisibleAnywhere, Category= "Particle Velocities")
295 template <
typename TOther>
298 MMin =
Other.WorldSpaceInflatedBounds().Min();
299 MMax =
Other.WorldSpaceInflatedBounds().Max();
300 bHasValidData =
true;
303 template <
typename TOther>
309 UPROPERTY(VisibleAnywhere, Category =
"Particle Bounds Min")
312 UPROPERTY(VisibleAnywhere, Category = "Particle Bounds
Max")
332 template <
typename TOther>
335 MAcceleration =
Other.Acceleration();
336 MAngularAcceleration =
Other.AngularAcceleration();
337 MLinearImpulseVelocity =
Other.LinearImpulseVelocity();
338 MAngularImpulseVelocity =
Other.AngularImpulseVelocity();
340 bHasValidData =
true;
343 template <
typename TOther>
346 Other.SetAcceleration(MAcceleration);
347 Other.SetAngularAcceleration(MAngularAcceleration);
348 Other.SetLinearImpulseVelocity(MLinearImpulseVelocity);
349 Other.SetAngularImpulseVelocity(MAngularImpulseVelocity);
352 UPROPERTY(VisibleAnywhere, Category=
"Particle Dynamics")
355 UPROPERTY(VisibleAnywhere, Category= "Particle Dynamics")
358 UPROPERTY(VisibleAnywhere, Category= "Particle Dynamics")
361 UPROPERTY(VisibleAnywhere, Category= "Particle Dynamics")
381 template <
typename TOther>
384 MCenterOfMass =
Other.CenterOfMass();
385 MRotationOfMass =
Other.RotationOfMass();
389 MInvM =
Other.InvM();
391 bHasValidData =
true;
394 template <
typename TOther>
397 Other.SetCenterOfMass(MCenterOfMass);
398 Other.SetRotationOfMass(MRotationOfMass);
400 Other.SetInvI(MInvI);
402 Other.SetInvM(MInvM);
405 UPROPERTY(VisibleAnywhere, Category=
"Particle Mass Props")
434 FChaosVDParticleDynamicMisc(): MLinearEtherDrag(0), MAngularEtherDrag(0), MMaxLinearSpeedSq(0), MMaxAngularSpeedSq(0), MInitialOverlapDepenetrationVelocity(0), MSleepThresholdMultiplier(1),
435 MCollisionGroup(0), MObjectState(), MSleepType(), bDisabled(
false), PositionSolverIterationCount(
INDEX_NONE), VelocitySolverIterationCount(
INDEX_NONE), ProjectionSolverIterationCount(
INDEX_NONE)
441 template <
typename TOther>
444 MLinearEtherDrag =
Other.LinearEtherDrag();
445 MAngularEtherDrag =
Other.AngularEtherDrag();
446 MMaxLinearSpeedSq =
Other.MaxLinearSpeedSq();
447 MMaxAngularSpeedSq =
Other.MaxAngularSpeedSq();
448 MInitialOverlapDepenetrationVelocity =
Other.InitialOverlapDepenetrationVelocity();
449 MSleepThresholdMultiplier =
Other.SleepThresholdMultiplier();
451 MCollisionGroup =
Other.CollisionGroup();
453 MCollisionConstraintFlag =
Other.CollisionConstraintFlags();
455 MControlFlags.CopyFrom(
Other.ControlFlags());
457 bDisabled =
Other.Disabled();
459 bHasValidData =
true;
461 PositionSolverIterationCount =
static_cast<int8>(
Other.IterationSettings().GetNumPositionIterations());
462 VelocitySolverIterationCount =
static_cast<int8>(
Other.IterationSettings().GetNumVelocityIterations());
463 ProjectionSolverIterationCount =
static_cast<int8>(
Other.IterationSettings().GetNumProjectionIterations());
466 template <
typename OtherType,
typename ControlFlagsType,
typename SleepStateType>
469 Other.SetLinearEtherDrag(MLinearEtherDrag);
470 Other.SetAngularEtherDrag(MAngularEtherDrag);
471 Other.SetMaxLinearSpeedSq(MMaxLinearSpeedSq);
472 Other.SetMaxAngularSpeedSq(MMaxAngularSpeedSq);
473 Other.SetInitialOverlapDepenetrationVelocity(MInitialOverlapDepenetrationVelocity);
474 Other.SetSleepThresholdMultiplier(MSleepThresholdMultiplier);
475 Other.SetCollisionGroup(MCollisionGroup);
477 Other.SetCollisionConstraintFlags(MCollisionConstraintFlag);
480 MControlFlags.CopyTo(ControlFlags);
482 Other.SetControlFlags(ControlFlags);
484 Other.SetDisabled(bDisabled);
486 Other.SetPositionSolverIterations((
uint32)PositionSolverIterationCount);
487 Other.SetVelocitySolverIterations((
uint32)VelocitySolverIterationCount);
488 Other.SetProjectionSolverIterations((
uint32)ProjectionSolverIterationCount);
491 UPROPERTY(VisibleAnywhere, Category=
"Particle Dynamic Misc")
495 double MAngularEtherDrag;
498 double MMaxLinearSpeedSq;
501 double MMaxAngularSpeedSq;
504 float MInitialOverlapDepenetrationVelocity;
507 float MSleepThresholdMultiplier;
528 int8 PositionSolverIterationCount;
531 int8 VelocitySolverIterationCount;
534 int8 ProjectionSolverIterationCount;
553 Ar << SiblingParticleID;
576 template <
typename TOther>
581 NumChildren =
Other.ClusterIds().NumChildren;
583 ChildToParent =
Other.ChildToParent();
584 ClusterGroupIndex =
Other.ClusterGroupIndex();
585 bInternalCluster =
Other.InternalCluster();
586 CollisionImpulse =
Other.CollisionImpulses();
587 ExternalStrains =
Other.GetExternalStrain();
588 InternalStrains =
Other.GetInternalStrains();
589 Strain =
Other.Strain();
592 ConnectivityEdges.Reserve(
Other.ConnectivityEdges().Num());
593 for (
auto&
Edge :
Other.ConnectivityEdges())
599 bIsAnchored =
Other.IsAnchored();
600 bUnbreakable =
Other.Unbreakable();
601 bIsChildToParentLocked =
Other.IsChildToParentLocked();
603 bHasValidData =
true;
606 template <
typename TOther>
612 UPROPERTY(VisibleAnywhere, Category=
"Particle Cluster")
628 float CollisionImpulse = 0.0f;
631 float ExternalStrains = 0.0f;
634 float InternalStrains = 0.0f;
649 bool bIsChildToParentLocked =
false;
678 template <
typename OtherType>
689 bHasValidData =
true;
692 template <
typename OtherType,
class ModeType>
696 Other.SetMode(
static_cast<ModeType
>(Mode));
699 UPROPERTY(VisibleAnywhere, Category=
"Kinematic Target")
718 template <
typename OtherType>
721 MV =
Other.VSmooth();
722 MW =
Other.WSmooth();
724 bHasValidData =
true;
727 template <
typename OtherType>
730 Other.SetVSmooth(MV);
731 Other.SetWSmooth(MW);
734 UPROPERTY(VisibleAnywhere, Category=
"VSmooth")
736 UPROPERTY(VisibleAnywhere, Category= "VSmooth")
745USTRUCT(DisplayName="Particle Data")
774#if WITH_EDITORONLY_DATA
775 UE_DEPRECATED(5.7,
"Please Use the GetDebugName accessor. This property is no longer in use")
804 UPROPERTY(VisibleAnywhere, Category= "Particle Velocities")
816 UPROPERTY(VisibleAnywhere, Category= "Particle Dynamics")
819 UPROPERTY(VisibleAnywhere, Category= "Particle Dynamics Misc")
838 return bHasValidData;
#define CVD_IMPLEMENT_SERIALIZER(Type)
Definition ChaosVDDataSerializationMacros.h:30
EChaosVDParticleType
Definition ChaosVDParticleDataWrapper.h:14
EChaosVDParticlePairIndex
Definition ChaosVDParticleDataWrapper.h:90
EChaosVDSleepType
Definition ChaosVDParticleDataWrapper.h:27
EChaosVDObjectStateType
Definition ChaosVDParticleDataWrapper.h:34
EChaosVDParticleContext
Definition ChaosVDParticleDataWrapper.h:656
EChaosVDKinematicTargetMode
Definition ChaosVDParticleDataWrapper.h:664
@ INDEX_NONE
Definition CoreMiscDefines.h:150
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
#define FVector
Definition IOSSystemIncludes.h:8
UE::Math::TQuat< double > FQuat
Definition MathFwd.h:50
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition Archive.h:1208
Definition NameTypes.h:617
Definition SharedPointer.h:692
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition ChaosVDParticleDataWrapper.h:542
Definition ChaosVDParticleDataWrapper.h:98
virtual int32 GetConstraintIndex() const
Definition ChaosVDParticleDataWrapper.h:104
virtual int32 GetParticleIDAtSlot(EChaosVDParticlePairIndex IndexSlot) const
Definition ChaosVDParticleDataWrapper.h:103
Definition ChaosVDParticleDataWrapper.h:109
void CopyTo(TOther &Other) const
Definition ChaosVDParticleDataWrapper.h:142
void CopyFrom(const TOther &Other)
Definition ChaosVDParticleDataWrapper.h:127
Definition ChaosVDParticleDataWrapper.h:673
void CopyFrom(const OtherType &Other)
Definition ChaosVDParticleDataWrapper.h:679
void CopyTo(OtherType &Other) const
Definition ChaosVDParticleDataWrapper.h:693
Definition ChaosVDParticleDataWrapper.h:286
void CopyTo(TOther &Other) const
Definition ChaosVDParticleDataWrapper.h:304
void CopyFrom(const TOther &Other)
Definition ChaosVDParticleDataWrapper.h:296
Definition ChaosVDParticleDataWrapper.h:567
void CopyTo(TOther &Other) const
Definition ChaosVDParticleDataWrapper.h:607
void CopyFrom(const TOther &Other)
Definition ChaosVDParticleDataWrapper.h:577
Definition ChaosVDParticleDataWrapper.h:747
PRAGMA_ENABLE_DEPRECATION_WARNINGS static CHAOSVDRUNTIME_API FStringView WrapperTypeName
Definition ChaosVDParticleDataWrapper.h:761
FChaosVDParticleDataWrapper(FChaosVDParticleDataWrapper &&Other) noexcept=default
FChaosVDParticleDataWrapper & operator=(FChaosVDParticleDataWrapper &&Other) noexcept=default
virtual ~FChaosVDParticleDataWrapper() override=default
PRAGMA_DISABLE_DEPRECATION_WARNINGS FChaosVDParticleDataWrapper(const FChaosVDParticleDataWrapper &Other)=default
FChaosVDParticleDataWrapper()
Definition ChaosVDParticleDataWrapper.h:755
FChaosVDParticleDataWrapper & operator=(const FChaosVDParticleDataWrapper &Other)=default
Definition ChaosVDParticleDataWrapper.h:431
void CopyWithoutStateTo(OtherType &Other) const
Definition ChaosVDParticleDataWrapper.h:467
void CopyFrom(const TOther &Other)
Definition ChaosVDParticleDataWrapper.h:442
Definition ChaosVDParticleDataWrapper.h:323
void CopyFrom(TOther &Other)
Definition ChaosVDParticleDataWrapper.h:333
void CopyTo(TOther &Other) const
Definition ChaosVDParticleDataWrapper.h:344
Definition ChaosVDParticleDataWrapper.h:372
void CopyFrom(const TOther &Other)
Definition ChaosVDParticleDataWrapper.h:382
void CopyTo(TOther &Other) const
Definition ChaosVDParticleDataWrapper.h:395
Definition ChaosVDParticleDataWrapper.h:46
Definition ChaosVDParticleDataWrapper.h:189
void CopyTo(OtherType &Other) const
Definition ChaosVDParticleDataWrapper.h:221
EAccessorType
Definition ChaosVDParticleDataWrapper.h:197
void CopyFrom(const OtherType &Other)
Definition ChaosVDParticleDataWrapper.h:203
Definition ChaosVDParticleDataWrapper.h:251
void CopyFrom(const TOther &Other)
Definition ChaosVDParticleDataWrapper.h:261
void CopyTo(TOther &Other) const
Definition ChaosVDParticleDataWrapper.h:269
Definition ChaosVDCollisionDataWrappers.h:434
Definition ChaosVDParticleDataWrapper.h:713
void CopyTo(OtherType &Other) const
Definition ChaosVDParticleDataWrapper.h:728
void CopyFrom(const OtherType &Other)
Definition ChaosVDParticleDataWrapper.h:719
Definition ChaosVDParticleDataWrapper.h:76
void MarkAsValid()
Definition ChaosVDParticleDataWrapper.h:82
Definition TopLevelAssetPath.h:38
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46