29 template <
typename PhysicsProxy>
30 static bool BuildFieldSamplePoints(
67 if (FilterType != EFieldFilterType::Field_Filter_Max)
123 int32 HandleIndex = 0;
124 if (PositionType == EFieldPositionType::Field_Position_CenterOfMass)
288 const FRigidClustering& Clustering =
RigidSolver->GetEvolution()->GetRigidClustering();
388 if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_DynamicState)
418 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_ActivateDisabled)
436 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_CollisionGroup)
451 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_PositionStatic)
464 PositionTarget.
Replace(ConstraintIndex, ParticleHandles[
Index.Sample]->GetX());
476 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_DynamicConstraint)
502 if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_ExternalClusterStrain)
506 FRigidClustering& RigidClustering =
RigidSolver->GetEvolution()->GetRigidClustering();
522 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_Kill)
537 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_SleepingThreshold)
552 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_DisableThreshold)
568 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_InternalClusterStrain)
572 FRigidClustering& RigidClustering =
RigidSolver->GetEvolution()->GetRigidClustering();
603 if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_LinearVelocity)
618 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_LinearImpulse)
634 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_AngularVelociy)
650 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_PositionTarget)
675 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_PositionAnimated)
692 if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_LinearForce)
710 else if (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_AngularTorque)
735 return (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_DynamicState) ||
736 (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_ActivateDisabled) ||
737 (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_CollisionGroup);
742 return (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_ExternalClusterStrain) ||
743 (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_Kill) ||
744 (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_SleepingThreshold) ||
745 (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_DisableThreshold) ||
746 (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_InternalClusterStrain);
750 return (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_LinearVelocity) ||
751 (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_AngularVelociy) ||
752 (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_LinearImpulse);
761 return (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_LinearForce) ||
762 (
FieldCommand.PhysicsType == EFieldPhysicsType::Field_AngularTorque);
#define check(expr)
Definition AssertionMacros.h:314
#define SCOPE_CYCLE_COUNTER(Stat)
Definition Stats.h:650
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FORCEINLINE bool IsParameterFieldValid(const FFieldSystemCommand &FieldCommand)
Definition FieldSystemProxyHelper.h:731
FORCEINLINE bool IsForceFieldValid(const FFieldSystemCommand &FieldCommand)
Definition FieldSystemProxyHelper.h:757
EFieldObjectType
Definition FieldSystemTypes.h:103
EFieldResolutionType
Definition FieldSystemTypes.h:72
EFieldPositionType
Definition FieldSystemTypes.h:119
EFieldFilterType
Definition FieldSystemTypes.h:86
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
Constraint a single particle to a world-space position.
Definition PBDPositionConstraints.h:38
void Replace(const int32 ConstraintIndex, const FVec3 &Position)
Definition PBDPositionConstraints.h:168
FConstraintContainerHandle * AddConstraint(FPBDRigidParticleHandle *Particle, const FVec3 &Position)
Definition PBDPositionConstraints.h:83
int32 NumConstraints() const
Definition PBDPositionConstraints.h:75
Definition PBDRigidsSolver.h:84
static FVec3 GetCoMWorldPosition(T_PARTICLEHANDLE Particle)
Definition ParticleUtilities.h:140
Definition ParticleHandle.h:436
const TPBDRigidClusteredParticleHandleImp< T, d, bPersistent > * CastToClustered() const
Definition ParticleHandle.h:1703
Definition ParticleHandle.h:987
@ EField_Float
Definition FieldSystem.h:413
@ EField_FVector
Definition FieldSystem.h:414
@ EField_Int32
Definition FieldSystem.h:412
Definition FieldSystem.h:481
Definition FieldSystem.h:522
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
Definition FieldArrayView.h:18
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
Definition SkeletalMeshComponent.h:307
TRigidTransform< FReal, 3 > FRigidTransform3
Definition Core.h:22
FRealDouble FReal
Definition Real.h:22
TSerializablePtr< T > MakeSerializable(const TUniquePtr< T > &Unique)
Definition Serializable.h:60
EObjectStateType
Definition ObjectState.h:10
@ UpdateKinematicProperties
float FRealSingle
Definition Real.h:14
TVector< FReal, 3 > FVec3
Definition Core.h:17
TPBDRigidClusteredParticleHandle< FReal, 3 > FPBDRigidClusteredParticleHandle
Definition ParticleHandleFwd.h:75
FExpressionResult Evaluate(const CharType *InExpression, const TTokenDefinitions< CharType > &InTokenDefinitions, const FExpressionGrammar &InGrammar, const TIOperatorEvaluationEnvironment< CharType > &InEnvironment)
Definition ExpressionParser.cpp:728
U16 Index
Definition radfft.cpp:71
Definition FieldSystem.h:22
Definition FieldSystem.h:242
Definition FieldSystem.h:76
TArray< Chaos::FGeometryParticleHandle * > ParticleHandles[(uint8) EFieldCommandHandlesType::NumHandles]
Definition FieldSystem.h:84
TArray< FVector > SamplePositions
Definition FieldSystem.h:78
TArray< FFieldContextIndex > SampleIndices
Definition FieldSystem.h:81
Definition PhysSubstepTasks.h:18