8#include "Containers/Array.h"
75 if (Lambda > 0.f && Lambda <= 1.f)
114 const FVector& AngularVelocityRad,
206 static bool ErrCheck(
const bool bCondition,
const FString& Message, FString*
ErrMsg);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
const FSimpleSuspensionRaycast SimpleSuspensionRaycastGroundPlane
Definition SimpleSuspension.h:65
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
Definition ContainerAllocationPolicies.h:1276
Definition AndroidPlatformMisc.h:14
Definition SimpleSuspension.h:119
static void IntegrateSpring(const float DeltaTime, const float SpringDisplacement, const float SpringVelocity, const FSimpleSuspensionSpringParams &SpringParams, const float SprungMass, float &OutNewSpringDisplacement, float &OutNewSpringVelocity)
Definition SimpleSuspension.cpp:529
static float ComputeSpringForce(const float SpringStiffness, const float SpringDamping, const float SpringDisplacement, const float SpringVelocity)
Definition SimpleSuspension.cpp:487
static void ComputeSpringParams(const TArray< FVector > &LocalSuspensionOrigins, const FVector &LocalCenterOfMass, const float TotalMass, const FVector &LocalSuspensionNormal, const float LocalGroundDistance, const float NaturalFrequency, const float DampingRatio, const float Gravity, TArray< FSimpleSuspensionSpringParams > &OutSpringParams)
Definition SimpleSuspension.cpp:403
static void ComputeWorldSuspensionCoordinates(const FVector &LocalCenterOfMass, const FVector &LocalSuspensionNormal, const TArray< FVector > &LocalSuspensionOrigins, const FTransform &LocalToWorld, FVector &OutWorldCenterOfMass, FVector &OutWorldSuspensionNormal, TArray< FVector > &OutWorldSuspensionOrigins)
Definition SimpleSuspension.cpp:438
static void ComputeSuspensionDisplacements(const TArray< FVector > WorldSuspensionOrigins, const TArray< FSimpleSuspensionSpringParams > &SpringParams, const FVector &WorldSuspensionNormal, const FSimpleSuspensionRaycast &RaycastFunction, TArray< float > &OutSpringDisplacements)
Definition SimpleSuspension.cpp:455
static void ComputeSpringNaturalFrequencyAndDampingRatio(const float SprungMass, const float SpringStiffness, const float SpringDamping, float &OutNaturalFrequency, float &OutDampingRatio)
Definition SimpleSuspension.cpp:361
static float ComputeSpringRestLength(const float SpringStiffness, const float SprungMass, const float SuspendedLength, const float Gravity)
Definition SimpleSuspension.cpp:384
static void ComputeSuspensionForces(const FVector &LinearVelocity, const FVector &AngularVelocityRad, const FVector &WorldCenterOfMass, const FVector &WorldSuspensionNormal, const TArray< FVector > WorldSuspensionOrigins, const TArray< FSimpleSuspensionSpringParams > &SpringParams, const TArray< float > &SpringDisplacements, FVector &OutTotalForce, FVector &OutTotalTorque, TArray< float > &OutSpringForces)
Definition SimpleSuspension.cpp:494
static void IntegrateSprings(const float DeltaTime, const TArray< float > &SpringDisplacements, const TArray< float > &SpringVelocities, const TArray< FSimpleSuspensionSpringParams > &SuspensionParams, const TArray< float > &SprungMasses, TArray< float > &OutNewSpringDisplacements, TArray< float > &OutNewSpringVelocities)
Definition SimpleSuspension.cpp:556
static ENGINE_API bool ComputeSprungMasses(const TArray< FVector > &MassSpringPositions, const float TotalMass, TArray< float > &OutSprungMasses, FString *ErrMsg=nullptr)
Definition SimpleSuspension.cpp:76
static float ComputeSpringDamping(const float SprungMass, const float NaturalFrequency, const float DampingRatio)
Definition SimpleSuspension.cpp:374
static float ComputeSpringStiffness(const float SprungMass, const float NaturalFrequency)
Definition SimpleSuspension.cpp:369
static bool ComputeSingleAxisLambda(const FVector::FReal AxisDot, const FVector::FReal SumAxis, const uint32 Count, TArray< FVector::FReal, TFixedAllocator< 2 > > &Lambdas, FString *ErrMsg=nullptr)
Definition SimpleSuspension.cpp:47
static float ComputeSpringCriticalDamping(const float SprungMass, const float NaturalFrequency)
Definition SimpleSuspension.cpp:379
Definition SimpleSuspension.h:26
float LocalGroundDistance
Definition SimpleSuspension.h:39
float NaturalFrequency
Definition SimpleSuspension.h:40
TArray< FSimpleSuspensionSpringParams > SpringParams
Definition SimpleSuspension.h:35
float DampingRatio
Definition SimpleSuspension.h:41
FVector LocalCenterOfMass
Definition SimpleSuspension.h:37
FVector LocalSuspensionNormal
Definition SimpleSuspension.h:38
FSimpleSuspensionParams()
Definition SimpleSuspension.h:27
TArray< FVector > LocalSpringOrigins
Definition SimpleSuspension.h:36
Definition SimpleSuspension.h:11
float Length
Definition SimpleSuspension.h:21
FSimpleSuspensionSpringParams()
Definition SimpleSuspension.h:12
float Stiffness
Definition SimpleSuspension.h:19
float Damping
Definition SimpleSuspension.h:20
float Mass
Definition SimpleSuspension.h:22
Definition SimpleSuspension.h:45
FVector TotalForce
Definition SimpleSuspension.h:57
TArray< float > SpringForces
Definition SimpleSuspension.h:54
FVector TotalTorqueRad
Definition SimpleSuspension.h:58
TArray< FVector > WorldSpringOrigins
Definition SimpleSuspension.h:56
FSimpleSuspensionState()
Definition SimpleSuspension.h:46
TArray< bool > SpringContacts
Definition SimpleSuspension.h:55
TArray< float > SpringDisplacements
Definition SimpleSuspension.h:53
FVector WorldSuspensionNormal
Definition SimpleSuspension.h:60
FVector WorldCenterOfMass
Definition SimpleSuspension.h:59
Definition SimpleSuspension.h:86
FSimpleSuspensionParams SuspensionParams
Definition SimpleSuspension.h:95
void ComputeSpringParams(const float TotalMass, const float Gravity)
Definition SimpleSuspension.cpp:30
void Setup(const FSimpleSuspensionParams &InSuspensionParams)
Definition SimpleSuspension.cpp:13
FSimpleSuspension()
Definition SimpleSuspension.h:87
FSimpleSuspension(const FSimpleSuspensionParams &SuspensionParams)
Definition SimpleSuspension.h:90
FSimpleSuspensionState SuspensionState
Definition SimpleSuspension.h:96
static UE_FORCEINLINE_HINT double DotProduct(const TVector< double > &A, const TVector< double > &B)
Definition Vector.h:1559
static CORE_API const TVector< double > UpVector
Definition Vector.h:85
double FReal
Definition Vector.h:55