UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SuspensionBaseInterface.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7
8#define UE_API CHAOSVEHICLESCORE_API
9
10namespace Chaos
11{
12
15{
18
20 {
21 FVector Dir(End - Start);
22 return Dir.FVector::GetSafeNormal();
23 }
24
25 float Length()
26 {
27 FVector Dir(End - Start);
28 return Dir.Size();
29 }
30};
31
60
63 , public TSimulationModuleTypeable<FSuspensionBaseInterface>
64{
65public:
66
69
71
72 UE_API virtual bool IsBehaviourType(eSimModuleTypeFlags InType) const override;
73
74 virtual float GetMaxSpringLength() const = 0;
75
76 virtual float GetSpringLength() const = 0;
77 virtual void SetSpringLength(float InLength, float WheelRadius) = 0;
78
79 virtual void GetWorldRaycastLocation(const FTransform& BodyTransform, float WheelRadius, FSpringTrace& OutTrace) = 0;
80
82 const FSuspensionTargetPoint& GetTargetPoint() const { return TargetPoint; }
83 bool IsWheelInContact() const { return TargetPoint.bWheelInContact; }
84
87
89
90 void SetImpactNormal(const FVector& NewValue) { TargetPoint.ImpactNormal = NewValue; }
91 const FVector& GetImpactNormal() const { return TargetPoint.ImpactNormal; }
92
93 void SetHitDistance(const float NewValue) { TargetPoint.HitDistance = NewValue; }
94 float GetHitDistance() const { return TargetPoint.HitDistance; }
95
96 void SetTargetPosition(const FVector& NewValue) { TargetPoint.TargetPosition = NewValue; }
97 const FVector& GetTargetPosition() const { return TargetPoint.TargetPosition; }
98
99protected:
100
102
103private:
104
105 FSuspensionTargetPoint TargetPoint;
106};
107
108
109} // namespace Chaos
110
111#undef UE_API
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
Definition SuspensionBaseInterface.h:64
const FVector & GetImpactNormal() const
Definition SuspensionBaseInterface.h:91
int WheelSimTreeIndex
Definition SuspensionBaseInterface.h:101
TEnumAsByte< EPhysicalSurface > GetSurfaceType() const
Definition SuspensionBaseInterface.h:88
virtual float GetMaxSpringLength() const =0
void SetHitDistance(const float NewValue)
Definition SuspensionBaseInterface.h:93
virtual ~FSuspensionBaseInterface()
Definition SuspensionBaseInterface.h:70
const FVector & GetTargetPosition() const
Definition SuspensionBaseInterface.h:97
virtual float GetSpringLength() const =0
virtual UE_API bool IsBehaviourType(eSimModuleTypeFlags InType) const override
Definition SuspensionBaseInterface.cpp:8
void SetTargetPosition(const FVector &NewValue)
Definition SuspensionBaseInterface.h:96
virtual void GetWorldRaycastLocation(const FTransform &BodyTransform, float WheelRadius, FSpringTrace &OutTrace)=0
FSuspensionBaseInterface()
Definition SuspensionBaseInterface.h:68
virtual void SetSpringLength(float InLength, float WheelRadius)=0
UE_API void SetTargetPoint(const FSuspensionTargetPoint &InTargetPoint)
Definition SuspensionBaseInterface.cpp:13
void SetWheelSimTreeIndex(int WheelTreeIndexIn)
Definition SuspensionBaseInterface.h:85
float GetHitDistance() const
Definition SuspensionBaseInterface.h:94
bool IsWheelInContact() const
Definition SuspensionBaseInterface.h:83
DEFINE_CHAOSSIMTYPENAME(FSuspensionBaseInterface)
const FSuspensionTargetPoint & GetTargetPoint() const
Definition SuspensionBaseInterface.h:82
void SetImpactNormal(const FVector &NewValue)
Definition SuspensionBaseInterface.h:90
int GetWheelSimTreeIndex() const
Definition SuspensionBaseInterface.h:86
Definition SimulationModuleBase.h:299
static const int INVALID_IDX
Definition SimulationModuleBase.h:305
Definition ModuleFactoryRegister.h:42
Definition Archive.h:1208
Definition EnumAsByte.h:22
Definition SkeletalMeshComponent.h:307
eSimModuleTypeFlags
Definition SimulationModuleBase.h:143
Definition SuspensionBaseInterface.h:15
float Length()
Definition SuspensionBaseInterface.h:25
FVector End
Definition SuspensionBaseInterface.h:17
FVector TraceDir()
Definition SuspensionBaseInterface.h:19
FVector Start
Definition SuspensionBaseInterface.h:16
Definition SuspensionBaseInterface.h:34
bool bWheelInContact
Definition SuspensionBaseInterface.h:57
FSuspensionTargetPoint()
Definition SuspensionBaseInterface.h:35
FVector ImpactNormal
Definition SuspensionBaseInterface.h:55
TEnumAsByte< EPhysicalSurface > SurfaceType
Definition SuspensionBaseInterface.h:58
void Serialize(FArchive &Ar)
Definition SuspensionBaseInterface.h:45
FVector TargetPosition
Definition SuspensionBaseInterface.h:54
FSuspensionTargetPoint(const FVector &InTargetPosition, const FVector &InImpactNormal, const float InHitDistance, const bool bInWheelInContact, const TEnumAsByte< EPhysicalSurface > InSurfaceType)
Definition SuspensionBaseInterface.h:37
float HitDistance
Definition SuspensionBaseInterface.h:56
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79
T Size() const
Definition Vector.h:1716