166 if (!
TargetXf.GetTranslation().Equals(
BoneXf.GetTranslation(), 1.0e-8f) ||
276 Group->ClearHierarchy();
279 int32 NumTransforms = 0;
282 const int32 ParentBoneIndex =
Group->GetParentBoneIndex();
303 TEXT(
"USkeletalMeshPhysicsProxy::InitHierarchy() - this: %p - "
304 "Implicit groups: %d, num transforms: %d, num roots: %d"),
326 int32 TransformIndex = 0;
332 const int32 BoneIndex =
Group->GetBoneIndex();
426 for (
int32 TransformIndex = 0; TransformIndex <
AnimDirty.
Num(); TransformIndex++)
462 {
return AnimDirty[TransformIndex] & 0b0001; }
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DEFINE_LOG_CATEGORY_STATIC(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:380
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition AnalyticImplicitGroup.h:24
const FAnalyticImplicitGroup * GetParent() const
Definition AnalyticImplicitGroup.h:469
Definition BoneHierarchy.h:18
TArray< TUniquePtr< FAnalyticImplicitGroup > > ImplicitGroups
Definition BoneHierarchy.h:471
TArray< FTransform > LocalSpaceTransforms
Definition BoneHierarchy.h:486
void InitPostAdd()
Definition BoneHierarchy.h:95
void PrepareForUpdate()
Definition BoneHierarchy.h:145
void SetAnimLocalDirty(const int32 TransformIndex)
Definition BoneHierarchy.h:463
TArray< FTransform > WorldSpaceTransforms
Definition BoneHierarchy.h:488
void InitPreAdd(const int32 NumBones)
Definition BoneHierarchy.h:63
bool ActorLocalToWorldDirty
Definition BoneHierarchy.h:499
TArray< uint8 > AnimDirty
Definition BoneHierarchy.h:491
TArray< int32 > BoneIndices
Definition BoneHierarchy.h:472
bool HasBoneIndex(const uint32 BoneIndex) const
Definition BoneHierarchy.h:100
FBoneHierarchy()
Definition BoneHierarchy.h:20
FBoneHierarchy & operator=(const FBoneHierarchy &)=delete
FBoneHierarchy(FBoneHierarchy &&Other)
Definition BoneHierarchy.h:24
bool UpdateAnimWorldSpaceTransforms(const TArray< int32 > &TargetIndices)
Definition BoneHierarchy.h:374
int32 GetTransformIndex(const int32 BoneIndex) const
Definition BoneHierarchy.h:230
TArray< FTransform > PrevWorldSpaceTransforms
Definition BoneHierarchy.h:489
void SetActorWorldSpaceTransform(const FTransform &InActorLocalToWorld)
Definition BoneHierarchy.h:180
TArray< int32 > SocketIndices
Definition BoneHierarchy.h:473
FBoneHierarchy(const FBoneHierarchy &)=delete
TMap< int32, FAnalyticImplicitGroup * > BoneToShapeGroup
Definition BoneHierarchy.h:476
const TArray< TUniquePtr< FAnalyticImplicitGroup > > & GetAnalyticShapeGroups() const
Definition BoneHierarchy.h:120
bool PrepareAnimWorldSpaceTransforms()
Definition BoneHierarchy.h:199
int32 GetSocketIndexForBone(const uint32 BoneIndex) const
Definition BoneHierarchy.h:115
void SetAnimLocalClean(const int32 TransformIndex)
Definition BoneHierarchy.h:465
TArray< FAnalyticImplicitGroup * > Roots
Definition BoneHierarchy.h:478
void GetDirtyAnimIndices(TArray< int32 > &TargetIndices)
Definition BoneHierarchy.h:458
TMap< int32, int32 > BoneToTransformIndex
Definition BoneHierarchy.h:481
const TArray< int32 > & GetBoneIndices() const
Definition BoneHierarchy.h:105
TArray< int32 > ParentIndices
Definition BoneHierarchy.h:494
TArray< TUniquePtr< FAnalyticImplicitGroup > > & GetAnalyticShapeGroups()
Definition BoneHierarchy.h:125
const FTransform * GetAnimWorldSpaceTransformsForBone(const int32 BoneIndex) const
Definition BoneHierarchy.h:215
FTransform ActorLocalToWorld
Definition BoneHierarchy.h:498
void SetSocketIndexForBone(const uint32 BoneIndex, const int32 SocketIndex)
Definition BoneHierarchy.h:110
TArray< int32 > TempTargetIndices
Definition BoneHierarchy.h:502
const FAnalyticImplicitGroup * GetAnalyticShapeGroup(const int32 BoneIndex) const
Definition BoneHierarchy.h:135
void PropagateAnimDirtyFlags()
Definition BoneHierarchy.h:422
bool GetAnimLocalDirty(const int32 TransformIndex) const
Definition BoneHierarchy.h:461
void Add(TUniquePtr< FAnalyticImplicitGroup > &&AnalyticShapeGroupIn)
Definition BoneHierarchy.h:76
FBoneHierarchy & operator=(FBoneHierarchy &&Other)
Definition BoneHierarchy.h:27
TArray< TArray< int32 > > ChildIndices
Definition BoneHierarchy.h:495
TMap< int32, int32 > TransformToBoneIndex
Definition BoneHierarchy.h:482
void SetAnimLocalSpaceTransform(const int32 BoneIndex, const FTransform &BoneXf)
Definition BoneHierarchy.h:159
FAnalyticImplicitGroup * GetAnalyticShapeGroup(const int32 BoneIndex)
Definition BoneHierarchy.h:130
void InitHierarchy()
Definition BoneHierarchy.h:250
void GetDirtyIndices(TArray< int32 > &TargetIndices, const uint8 Mask) const
Definition BoneHierarchy.h:443
const FTransform * GetPrevAnimWorldSpaceTransformForBone(const int32 BoneIndex) const
Definition BoneHierarchy.h:224
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
SizeType AddDefaulted()
Definition Array.h:2795
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
void Init(const ElementType &Element, SizeType Number)
Definition Array.h:3043
UE_NODEBUG UE_FORCEINLINE_HINT bool Find(const ElementType &Item, SizeType &Index) const
Definition Array.h:1302
UE_NODEBUG void Sort()
Definition Array.h:3418
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
bool Equals(const TQuat< T > &Q, T Tolerance=UE_KINDA_SMALL_NUMBER) const
Definition Quat.h:985
UE_FORCEINLINE_HINT bool Equals(const TVector< T > &V, T Tolerance=UE_KINDA_SMALL_NUMBER) const
Definition Vector.h:1601