|
| static ENGINE_API bool | ComputeSprungMasses (const TArray< FVector > &MassSpringPositions, const float TotalMass, TArray< float > &OutSprungMasses, FString *ErrMsg=nullptr) |
| |
| static ENGINE_API bool | ComputeSprungMasses (const TArray< FVector > &LocalSpringPositions, const FVector &LocalCenterOfMass, const float TotalMass, TArray< float > &OutSprungMasses, FString *ErrMsg=nullptr) |
| |
| static bool | ComputeSingleAxisLambda (const FVector::FReal AxisDot, const FVector::FReal SumAxis, const uint32 Count, TArray< FVector::FReal, TFixedAllocator< 2 > > &Lambdas, FString *ErrMsg=nullptr) |
| |
| static void | ComputeSpringNaturalFrequencyAndDampingRatio (const float SprungMass, const float SpringStiffness, const float SpringDamping, float &OutNaturalFrequency, float &OutDampingRatio) |
| |
| static float | ComputeSpringStiffness (const float SprungMass, const float NaturalFrequency) |
| |
| static float | ComputeSpringDamping (const float SprungMass, const float NaturalFrequency, const float DampingRatio) |
| |
| static float | ComputeSpringCriticalDamping (const float SprungMass, const float NaturalFrequency) |
| |
| static float | ComputeSpringRestLength (const float SpringStiffness, const float SprungMass, const float SuspendedLength, const float Gravity) |
| |
| 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) |
| |
| static void | ComputeSpringParams (const FSimpleSuspensionParams &SuspensionParams, const float TotalMass, const float Gravity, TArray< FSimpleSuspensionSpringParams > &OutSpringParams) |
| |
| static void | ComputeWorldSuspensionCoordinates (const FVector &LocalCenterOfMass, const FVector &LocalSuspensionNormal, const TArray< FVector > &LocalSuspensionOrigins, const FTransform &LocalToWorld, FVector &OutWorldCenterOfMass, FVector &OutWorldSuspensionNormal, TArray< FVector > &OutWorldSuspensionOrigins) |
| |
| static void | ComputeWorldSuspensionCoordinates (const FSimpleSuspensionParams &SuspensionParams, const FTransform &LocalToWorld, FSimpleSuspensionState &OutSuspensionState) |
| |
| static void | ComputeSuspensionDisplacements (const TArray< FVector > WorldSuspensionOrigins, const TArray< FSimpleSuspensionSpringParams > &SpringParams, const FVector &WorldSuspensionNormal, const FSimpleSuspensionRaycast &RaycastFunction, TArray< float > &OutSpringDisplacements) |
| |
| static void | ComputeSuspensionDisplacements (const FSimpleSuspensionParams &SuspensionParams, const FSimpleSuspensionRaycast &RaycastFunction, FSimpleSuspensionState InOutSuspensionState) |
| |
| static float | ComputeSpringForce (const float SpringStiffness, const float SpringDamping, const float SpringDisplacement, const float SpringVelocity) |
| |
| 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) |
| |
| static void | ComputeSuspensionForces (const FVector &LinearVelocity, const FVector &AngularVelocityRad, const FSimpleSuspensionState &SuspensionState, const TArray< FSimpleSuspensionSpringParams > &SpringParams, FSimpleSuspensionState &OutSuspensionState) |
| |
| static void | IntegrateSpring (const float DeltaTime, const float SpringDisplacement, const float SpringVelocity, const FSimpleSuspensionSpringParams &SpringParams, const float SprungMass, float &OutNewSpringDisplacement, float &OutNewSpringVelocity) |
| |
| 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) |
| |
| bool FSimpleSuspensionHelpers::ComputeSprungMasses |
( |
const TArray< FVector > & |
MassSpringPositions, |
|
|
const float |
TotalMass, |
|
|
TArray< float > & |
OutSprungMasses, |
|
|
FString * |
ErrMsg = nullptr |
|
) |
| |
|
static |
Compute the distribution of the mass of a body among springs. This method assumes that spring positions are given relative to the center of mass of the body, and that gravity occurs in the local -Z direction.
Returns true if it was able to find a valid mass configuration. If only one or two springs are included, then a valid configuration may not result in a stable suspension system - a bicycle or pogostick, for example, which is not perfectly centered may have a valid sprung mass configuration without being stable.