13#ifndef CHAOS_CONSTRAINTHANDLE_DEBUG_ENABLED
14#define CHAOS_CONSTRAINTHANDLE_DEBUG_ENABLED 0
16#ifndef CHAOS_CONSTRAINTHANDLE_DEBUG_DETAILED_ENABLED
17#define CHAOS_CONSTRAINTHANDLE_DEBUG_DETAILED_ENABLED (CHAOS_CONSTRAINTHANDLE_DEBUG_ENABLED && 0)
21#if UE_BUILD_SHIPPING || UE_BUILD_TEST
28 class FPBDConstraintContainer;
29 class FPBDIndexedConstraintContainer;
36 class FPBDIslandConstraint;
70 if (TypeID.TypeName == TypeName)
74 if (BaseType !=
nullptr)
76 return BaseType->
IsA(TypeID);
164 virtual bool IsProbe()
const {
return false; }
185 template<
typename T> T*
As();
186 template<
typename T>
const T*
As()
const;
190 template<
typename T>
const T*
AsUnsafe()
const {
check(
As<T>() !=
nullptr);
return static_cast<const T*
>(
this); }
254 template<
typename T_CONSTRAINT>
288 template<
class T_CONTAINER>
312#if CHAOS_CONSTRAINTHANDLE_DEBUG_ENABLED
320#if CHAOS_CONSTRAINTHANDLE_DEBUG_ENABLED
331 return ::GetTypeHash(V.Handle);
337#if CHAOS_CONSTRAINTHANDLE_DEBUG_ENABLED
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define CHAOS_CONSTRAINTHANDLE_DEBUG_DETAILED_ENABLED
Definition ConstraintHandle.h:17
#define CHAOS_CONSTRAINTHANDLE_DEBUG_ENABLED
Definition ConstraintHandle.h:14
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
A debugging utility for tracking down dangling constraint issues This acts as a FConstraintHandle*,...
Definition ConstraintHandle.h:307
friend uint32 GetTypeHash(const FConstraintHandleHolder &V)
Definition ConstraintHandle.h:329
FConstraintHandle * operator->() const
Definition ConstraintHandle.h:325
FConstraintHandleHolder()
Definition ConstraintHandle.h:309
FConstraintHandleHolder(FConstraintHandle *InHandle)
Definition ConstraintHandle.h:317
FConstraintHandle * Get() const
Definition ConstraintHandle.h:327
A type id for constraint handles to support safe up/down casting (including intermediate classes in t...
Definition ConstraintHandle.h:49
FString ToString() const
Definition ConstraintHandle.h:81
bool IsA(const FConstraintHandleTypeID &TypeID) const
Whether this type can be cast to the specified type.
Definition ConstraintHandle.h:68
FConstraintHandleTypeID(const FName &InName, const FConstraintHandleTypeID *InBaseType=nullptr)
Definition ConstraintHandle.h:51
static const FConstraintHandleTypeID InvalidTypeID()
An invalid constraint handle type for initialization and invalidation.
Definition ConstraintHandle.h:60
Base class for constraint handles.
Definition ConstraintHandle.h:102
FConstraintHandle(FPBDConstraintContainer *InContainer)
Definition ConstraintHandle.h:112
T * AsUnsafe()
Definition ConstraintHandle.h:189
virtual ~FConstraintHandle()
Definition ConstraintHandle.h:118
const FPBDConstraintContainer * GetContainer() const
Definition ConstraintHandle.h:134
virtual bool IsValid() const
Definition ConstraintHandle.h:124
virtual bool IsEnabled() const =0
FPBDConstraintContainer * ConstraintContainer
Definition ConstraintHandle.h:213
const T * AsUnsafe() const
Definition ConstraintHandle.h:190
virtual bool IsProbe() const
Definition ConstraintHandle.h:164
virtual void SetEnabled(bool InEnabled)=0
virtual TVec2< FGeometryParticleHandle * > GetConstrainedParticles() const =0
FConstraintHandle()
Definition ConstraintHandle.h:106
Private::FPBDIslandConstraint * GraphEdge
Definition ConstraintHandle.h:215
virtual void SetIsSleeping(const bool bInIsSleeping)
Definition ConstraintHandle.h:173
bool IsInConstraintGraph() const
Definition ConstraintHandle.h:139
UE_DEPRECATED(5.3, "Use GetConstraintGraphEdge") int32 GetConstraintGraphIndex() const
Definition ConstraintHandle.h:207
int32 GetContainerId() const
Definition PBDConstraintContainer.h:117
const FConstraintHandleTypeID & GetType() const
Definition PBDConstraintContainer.h:126
void SetConstraintGraphEdge(Private::FPBDIslandConstraint *InEdge)
Definition ConstraintHandle.h:150
virtual bool SupportsPartialIslandSleeping() const
Definition ConstraintHandle.h:170
virtual FVec3f GetNetLinearImpulse() const
Definition ConstraintHandle.h:176
virtual bool SupportsSleeping() const
Definition ConstraintHandle.h:167
static const FConstraintHandleTypeID & StaticType()
Definition ConstraintHandle.h:194
Private::FPBDIslandConstraint * GetConstraintGraphEdge() const
Definition ConstraintHandle.h:144
virtual void SetWasAwakened(const bool bInWasAwakened)
Definition ConstraintHandle.h:179
T * As()
Definition PBDConstraintContainer.h:136
virtual bool IsSleeping() const
Definition ConstraintHandle.h:172
static const FConstraintHandleTypeID & InvalidType()
Definition ConstraintHandle.h:200
UE_DEPRECATED(5.3, "Not supported") void SetConstraintGraphIndex(const int32 InIndex) const
Definition ConstraintHandle.h:208
FPBDConstraintContainer * GetContainer()
Definition ConstraintHandle.h:129
virtual bool WasAwakened() const
Definition ConstraintHandle.h:178
Base class for constraints that are allocated at permanent memory addresses and inherit the handle.
Definition ConstraintHandle.h:227
FIntrusiveConstraintHandle()
Definition ConstraintHandle.h:229
static const FConstraintHandleTypeID & StaticType()
Definition ConstraintHandle.h:239
void SetContainer(FPBDConstraintContainer *InContainer)
Definition ConstraintHandle.h:234
Definition PBDConstraintContainer.h:19
Definition IslandManager.h:151
Definition ConstraintHandle.h:290
typename FConstraintContainer::FConstraintContainerHandle FConstraintContainerHandle
Definition ConstraintHandle.h:293
T_CONTAINER FConstraintContainer
Definition ConstraintHandle.h:292
FConstraintContainerHandle * AllocHandle(FConstraintContainer *ConstraintContainer, int32 ConstraintIndex)
Definition ConstraintHandle.h:295
void FreeHandle(FConstraintContainerHandle *Handle)
Definition ConstraintHandle.h:297
Definition ParticleHandle.h:436
Base class for constraints that are allocated at permanent memory addresses and inherit the handle.
Definition ConstraintHandle.h:256
void SetContainer(FPBDConstraintContainer *InContainer)
Definition ConstraintHandle.h:265
TIntrusiveConstraintHandle()
Definition ConstraintHandle.h:260
const FConstraint * GetConstraint() const
Definition ConstraintHandle.h:275
FConstraint * GetConstraint()
Definition ConstraintHandle.h:270
Definition NameTypes.h:617
CORE_API FString ToString() const
Definition UnrealNames.cpp:3537
Definition SkeletalMeshComponent.h:307
TVector< FRealSingle, 3 > FVec3f
Definition Core.h:27
TGeometryParticleHandle< FReal, 3 > FGeometryParticleHandle
Definition ParticleHandleFwd.h:24
Definition OverriddenPropertySet.cpp:45
Definition AnimNode_Constraint.h:27