23#include "ChaosVDRecording.generated.h"
25#define UE_API CHAOSVDDATA_API
29 class FChaosVDSerializableNameTable;
42 template <
typename DataStructType>
49 template <
typename DataStructType>
53 template <
typename DataStructType>
58 template <
typename DataStructType>
65template <
typename DataStructType>
75template <
typename DataStructType>
86template <
typename DataStructType>
97template <
typename DataStructType>
116 template<
typename DataType>
122 template<
typename DataType>
171UE_DEPRECATED(5.6,
"FChaosVDStepData is deprecated and will be removed. Please use FChaosVDFrameStageData instead.")
197UE_DEPRECATED(5.6,
"This FChaosVDStepsContainer is deprecated and it will be removed in the future. Use FChaosVDStagesContainer instead.")
227 Chaos::FRigidTransform3 SimulationTransform;
232 double StartTime = -1.0;
233 double EndTime = -1.0;
240 double GetFrameTime()
const
242 if (StartTime < 0 || EndTime < 0)
247 return EndTime - StartTime;
286 return FrameAttributes;
344 UE_DEPRECATED(5.6,
"RecordedNonSolverLocationsByID is deprecated and will be removed in a future release.")
382 bool bIsDirty =
false;
421 static constexpr int32 CommonTrackCount = 16;
426 return RecordedFramesDataPerSolver.Num();
431 UE_API int32 GetAvailableGameFramesNumber_AssumesLocked()
const;
442 return RecordedFramesDataPerSolver;
450 UE_API int32 GetAvailableSolverFramesNumber_AssumesLocked(
int32 SolverID)
const;
459 FString GetSolverName(
int32 SolverID)
470 UE_API bool IsServerSolver_AssumesLocked(
int32 SolverID);
473 UE_DEPRECATED(5.6,
"Please use the GetSolverFName_AssumedLocked instead")
474 FString GetSolverName_AssumedLocked(
int32 SolverID)
543 return GeometryDataLoaded;
583 template<
typename TAllocator>
585 template<
typename TAllocator>
587 template<
typename TAllocator>
589 template<
typename TAllocator>
598 return ImplicitObjects;
612 UE_DEPRECATED(5.4,
"Please use AddImplicitObject with FImplicitObjectPtr instead")
620 return RecordingDataLock;
657 return GetAttributes_AssumesLocked();
662 return RecordingAttributes;
671 return LastUpdatedTimeAsCycle;
676 return CollisionChannelsInfoContainer;
682 UE_API bool HasSolverID_AssumesLocked(
int32 SolverID);
685 UE_API void ReserveSolverID_AssumesLocked(
int32 SolverID);
688 UE_API void CommitSolverID_AssumesLocked(
int32 SolverID);
692 return AvailableTrackIDForRemapping++;
719 UE_API void AddKeyFrameNumberForSolver_AssumesLocked(
int32 SolverID,
int32 FrameNumber);
747 std::atomic<int32> AvailableTrackIDForRemapping = 1;
749 friend class FChaosVDTraceProvider;
750 friend class FChaosVDTraceImplicitObjectProcessor;
753template <
typename DataType>
764template <
typename DataType>
774 AddData(FChaosVDCustomUserDataHandle::MakeHandle<DataType>(CustomData.
ToSharedRef()));
782template <
typename TAllocator>
789template <
typename TAllocator>
800template <
typename TAllocator>
807template <
typename TAllocator>
#define check(expr)
Definition AssertionMacros.h:314
FString GetTypeName()
Definition Casts.h:66
EChaosVDRecordingAttributes
Definition ChaosVDRecording.h:402
EChaosVDNetworkSyncDataRequirements
Definition ChaosVDRecording.h:187
#define UE_API
Definition ChaosVDRecording.h:25
EChaosVDSolverStageFlags
Definition ChaosVDRecording.h:131
EChaosVDSolverFrameAttributes
Definition ChaosVDRecording.h:204
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
constexpr void EnumRemoveFlags(Enum &Flags, Enum FlagsToRemove)
Definition EnumClassFlags.h:98
constexpr void EnumAddFlags(Enum &Flags, Enum FlagsToAdd)
Definition EnumClassFlags.h:91
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define UE_API
Definition SColorGradingComponentViewer.h:12
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
Definition ImplicitObject.h:111
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition ScopeRWLock.h:93
Definition ScopeRWLock.h:114
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
Definition UnrealString.h.inl:34
Definition RefCounting.h:454
Definition SharedPointer.h:692
TSharedRef< ObjectType, Mode > ToSharedRef() const &
Definition SharedPointer.h:1028
Definition SharedPointer.h:153
ObjectType & Get() const
Definition SharedPointer.h:474
Definition ContainerAllocationPolicies.h:894
Definition ChaosVDDataWrapperUtils.cpp:19
Definition SkeletalMeshComponent.h:307
@ false
Definition radaudio_common.h:23
Definition ChaosVDAccelerationStructureDataWrappers.h:160
Definition ChaosVDCharacterGroundConstraintDataWrappers.h:119
Definition ChaosVDRecording.h:110
UE_API void AddData(const FChaosVDCustomUserDataHandle &InData)
Definition ChaosVDRecording.cpp:20
TSharedPtr< DataType > GetData() const
Definition ChaosVDRecording.h:754
TSharedPtr< DataType > GetOrAddDefaultData()
Definition ChaosVDRecording.h:765
Definition ChaosVDDebugShapeDataWrapper.h:51
Definition ChaosVDDebugShapeDataWrapper.h:105
Definition ChaosVDDebugShapeDataWrapper.h:84
Definition ChaosVDDebugShapeDataWrapper.h:66
Definition ChaosVDRecording.h:142
TSet< int32 > ParticlesDestroyedIDs
Definition ChaosVDRecording.h:150
TMap< int32, TArray< TSharedPtr< FChaosVDParticlePairMidPhase > > > RecordedMidPhasesByParticleID
Definition ChaosVDRecording.h:149
const FChaosVDCustomFrameData & GetCustomDataHandler() const
Definition ChaosVDRecording.h:162
TMap< int32, int32 > CurrentRecordedParticlesIndexes
Definition ChaosVDRecording.h:153
TArray< TSharedPtr< FChaosVDParticlePairMidPhase > > RecordedMidPhases
Definition ChaosVDRecording.h:145
TArray< TSharedPtr< FChaosVDJointConstraint > > RecordedJointConstraints
Definition ChaosVDRecording.h:146
FChaosVDCustomFrameData & GetCustomDataHandler()
Definition ChaosVDRecording.h:157
TArray< TSharedPtr< FChaosVDParticleDataWrapper > > RecordedParticlesData
Definition ChaosVDRecording.h:144
TArray< FChaosVDConstraint > RecordedConstraints
Definition ChaosVDRecording.h:147
FString StepName
Definition ChaosVDRecording.h:143
TMap< int32, TArray< FChaosVDConstraint > > RecordedConstraintsByParticleID
Definition ChaosVDRecording.h:148
Definition ChaosVDRecording.h:395
Definition ChaosVDRecording.h:387
Definition ChaosVDRecording.h:306
FChaosVDGameFrameData & operator=(const FChaosVDGameFrameData &Other)=default
double GetFrameTime() const
Definition ChaosVDRecording.h:324
PRAGMA_DISABLE_DEPRECATION_WARNINGS FChaosVDGameFrameData()=default
TMap< FName, FChaosVDTrackedTransform > RecordedNonSolverTransformsByID
Definition ChaosVDRecording.h:347
FChaosVDGameFrameData(FChaosVDGameFrameData &&Other) noexcept=default
TMap< int32, TArray< TSharedPtr< FChaosVDDebugDrawImplicitObjectDataWrapper > > > RecordedDebugDrawImplicitObjectsBySolverID
Definition ChaosVDRecording.h:368
void MarkDirty()
Definition ChaosVDRecording.h:339
bool IsDirty() const
Definition ChaosVDRecording.h:334
TMap< int32, TArray< TSharedPtr< FChaosVDDebugDrawBoxDataWrapper > > > RecordedDebugDrawBoxesBySolverID
Definition ChaosVDRecording.h:362
TMap< int32, TMap< int32, TSharedPtr< FChaosVDQueryDataWrapper > > > RecordedSceneQueriesBySolverID
Definition ChaosVDRecording.h:350
uint64 LastCycle
Definition ChaosVDRecording.h:317
const FChaosVDCustomFrameData & GetCustomDataHandler() const
Definition ChaosVDRecording.h:375
double StartTime
Definition ChaosVDRecording.h:318
FChaosVDCustomFrameData & GetCustomDataHandler()
Definition ChaosVDRecording.h:370
FChaosVDGameFrameData(const FChaosVDGameFrameData &Other)=default
PRAGMA_ENABLE_DEPRECATION_WARNINGS uint64 FirstCycle
Definition ChaosVDRecording.h:316
TMap< int32, TArray< TSharedPtr< FChaosVDAABBTreeDataWrapper > > > RecordedAABBTreesBySolverID
Definition ChaosVDRecording.h:359
TMap< int32, TArray< TSharedPtr< FChaosVDDebugDrawLineDataWrapper > > > RecordedDebugDrawLinesBySolverID
Definition ChaosVDRecording.h:364
TMap< int32, TArray< TSharedPtr< FChaosVDDebugDrawSphereDataWrapper > > > RecordedDebugDrawSpheresBySolverID
Definition ChaosVDRecording.h:366
TMap< int32, TSharedPtr< FChaosVDQueryDataWrapper > > RecordedSceneQueries
Definition ChaosVDRecording.h:353
TMap< FName, FChaosVDTrackedLocation > RecordedNonSolverLocationsByID
Definition ChaosVDRecording.h:345
TMap< int32, TSharedPtr< FChaosVDQueryDataWrapper > > RecordedSceneQueriesByQueryID
Definition ChaosVDRecording.h:356
double EndTime
Definition ChaosVDRecording.h:319
FChaosVDGameFrameData & operator=(FChaosVDGameFrameData &&Other) noexcept=default
Definition ChaosVDQueryDataWrappers.h:422
Definition ChaosVDRecording.h:416
FChaosVDGeometryDataLoaded GeometryDataLoaded
Definition ChaosVDRecording.h:727
const TMap< uint32, Chaos::FConstImplicitObjectPtr > & GetGeometryMap() const
Definition ChaosVDRecording.h:596
TMap< int32, TArray< int32 > > RecordedKeyFramesNumberPerSolver
Definition ChaosVDRecording.h:724
int32 GetAvailableSolversNumber_AssumesLocked() const
Definition ChaosVDRecording.h:424
const TMap< int32, TArray< FChaosVDSolverFrameData > > & GetAvailableSolvers_AssumesLocked() const
Definition ChaosVDRecording.h:440
FChaosVDGeometryDataLoaded & OnGeometryDataLoaded()
Definition ChaosVDRecording.h:541
std::atomic< uint64 > LastUpdatedTimeAsCycle
Definition ChaosVDRecording.h:737
bool IsLive() const
Definition ChaosVDRecording.h:624
EChaosVDRecordingAttributes GetAttributes_AssumesLocked() const
Definition ChaosVDRecording.h:660
const FChaosVDCustomFrameData & GetCustomDataHandler() const
Definition ChaosVDRecording.h:700
void GetAvailableSolverIDsAtGameFrameNumber(int32 FrameNumber, TArray< int32, TAllocator > &OutSolversID)
Definition ChaosVDRecording.h:783
FChaosVDCustomFrameData & GetCustomDataHandler()
Definition ChaosVDRecording.h:695
int32 GetAvailableTrackIDForRemapping()
Definition ChaosVDRecording.h:690
TMap< uint32, Chaos::FConstImplicitObjectPtr > ImplicitObjects
Definition ChaosVDRecording.h:730
void GetAvailableSolverIDsAtGameFrame_AssumesLocked(const FChaosVDGameFrameData &GameFrameData, TArray< int32, TAllocator > &OutSolversID)
Definition ChaosVDRecording.h:808
TSet< int32 > ReservedSolverIDs
Definition ChaosVDRecording.h:744
EChaosVDRecordingAttributes GetAttributes() const
Definition ChaosVDRecording.h:654
void GetAvailableSolverIDsAtGameFrame(const FChaosVDGameFrameData &GameFrameData, TArray< int32, TAllocator > &OutSolversID)
Definition ChaosVDRecording.h:801
TSet< int32 > SolverIDs
Definition ChaosVDRecording.h:745
void GetAvailableSolverIDsAtGameFrameNumber_AssumesLocked(int32 FrameNumber, TArray< int32, TAllocator > &OutSolversID)
Definition ChaosVDRecording.h:790
FRWLock RecordingDataLock
Definition ChaosVDRecording.h:732
void RemoveAttributes(EChaosVDRecordingAttributes Attributes)
Definition ChaosVDRecording.h:648
TMap< int32, TMap< int32, FChaosVDSolverFrameData > > GeneratedKeyFrameDataPerSolver
Definition ChaosVDRecording.h:723
TArray< FChaosVDGameFrameData > GameFrames
Definition ChaosVDRecording.h:725
TSharedPtr< FChaosVDCollisionChannelsInfoContainer > CollisionChannelsInfoContainer
Definition ChaosVDRecording.h:742
TSharedPtr< FChaosVDCollisionChannelsInfoContainer > GetCollisionChannelsInfoContainer()
Definition ChaosVDRecording.h:674
TMap< int32, TSharedPtr< FChaosVDParticleDataWrapper > > ParticlesOnCurrentGeneratedKeyframe
Definition ChaosVDRecording.h:740
TMap< int32, TArray< FChaosVDSolverFrameData > > RecordedFramesDataPerSolver
Definition ChaosVDRecording.h:722
uint64 GetLastUpdatedTimeAsCycle()
Definition ChaosVDRecording.h:669
const TArray< FChaosVDGameFrameData > & GetAvailableGameFrames_AssumesLocked() const
Definition ChaosVDRecording.h:434
void AddAttributes(EChaosVDRecordingAttributes Attributes)
Definition ChaosVDRecording.h:642
void SetIsLive(bool bNewIsLive)
Definition ChaosVDRecording.h:630
Definition ChaosVDRecording.h:211
PRAGMA_ENABLE_DEPRECATION_WARNINGS FName DebugFName
Definition ChaosVDRecording.h:220
EChaosVDSolverFrameAttributes GetAttributes() const
Definition ChaosVDRecording.h:284
FChaosVDSolverFrameData & operator=(FChaosVDSolverFrameData &&Other) noexcept=default
PRAGMA_DISABLE_DEPRECATION_WARNINGS FChaosVDSolverFrameData()=default
FChaosVDSolverFrameData(FChaosVDSolverFrameData &&Other) noexcept=default
FChaosVDCustomFrameData & GetCustomData()
Definition ChaosVDRecording.h:274
bool HasNetworkSyncData(EChaosVDNetworkSyncDataRequirements Requirements=EChaosVDNetworkSyncDataRequirements::All) const
Definition ChaosVDRecording.h:251
void RemoveAttributes(EChaosVDSolverFrameAttributes AttributesToRemove)
Definition ChaosVDRecording.h:294
FChaosVDSolverFrameData(const FChaosVDSolverFrameData &Other)=default
void AddAttributes(EChaosVDSolverFrameAttributes NewAttributes)
Definition ChaosVDRecording.h:289
int32 GetClampedNetworkTickOffset() const
Definition ChaosVDRecording.h:269
FChaosVDSolverFrameData & operator=(const FChaosVDSolverFrameData &Other)=default
const FChaosVDCustomFrameData & GetCustomData() const
Definition ChaosVDRecording.h:279
Definition ChaosVDRecording.h:175
FVector Location
Definition ChaosVDRecording.h:177
FString DebugName
Definition ChaosVDRecording.h:176