You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Build fix - make some functions inline so they can be used elsewhere
#rb trivial #preflight 647a01e3e75a2263919b0dc5 [CL 25764895 by danny chapman in ue5-main branch]
This commit is contained in:
@@ -259,56 +259,6 @@ void FAnimNode_RigidBody::Initialize_AnyThread(const FAnimationInitializeContext
|
||||
#endif
|
||||
}
|
||||
|
||||
FTransform SpaceToWorldTransform(ESimulationSpace Space, const FTransform& ComponentToWorld, const FTransform& BaseBoneTM)
|
||||
{
|
||||
switch (Space)
|
||||
{
|
||||
case ESimulationSpace::ComponentSpace:
|
||||
return ComponentToWorld;
|
||||
case ESimulationSpace::WorldSpace:
|
||||
return FTransform::Identity;
|
||||
case ESimulationSpace::BaseBoneSpace:
|
||||
return BaseBoneTM * ComponentToWorld;
|
||||
default:
|
||||
return FTransform::Identity;
|
||||
}
|
||||
}
|
||||
|
||||
FVector WorldVectorToSpaceNoScale(ESimulationSpace Space, const FVector& WorldDir, const FTransform& ComponentToWorld, const FTransform& BaseBoneTM)
|
||||
{
|
||||
switch(Space)
|
||||
{
|
||||
case ESimulationSpace::ComponentSpace: return ComponentToWorld.InverseTransformVectorNoScale(WorldDir);
|
||||
case ESimulationSpace::WorldSpace: return WorldDir;
|
||||
case ESimulationSpace::BaseBoneSpace:
|
||||
return BaseBoneTM.InverseTransformVectorNoScale(ComponentToWorld.InverseTransformVectorNoScale(WorldDir));
|
||||
default: return FVector::ZeroVector;
|
||||
}
|
||||
}
|
||||
|
||||
FVector WorldPositionToSpace(ESimulationSpace Space, const FVector& WorldPoint, const FTransform& ComponentToWorld, const FTransform& BaseBoneTM)
|
||||
{
|
||||
switch (Space)
|
||||
{
|
||||
case ESimulationSpace::ComponentSpace: return ComponentToWorld.InverseTransformPosition(WorldPoint);
|
||||
case ESimulationSpace::WorldSpace: return WorldPoint;
|
||||
case ESimulationSpace::BaseBoneSpace:
|
||||
return BaseBoneTM.InverseTransformPosition(ComponentToWorld.InverseTransformPosition(WorldPoint));
|
||||
default: return FVector::ZeroVector;
|
||||
}
|
||||
}
|
||||
|
||||
FORCEINLINE_DEBUGGABLE FTransform ConvertCSTransformToSimSpace(ESimulationSpace SimulationSpace, const FTransform& InCSTransform, const FTransform& ComponentToWorld, const FTransform& BaseBoneTM)
|
||||
{
|
||||
switch (SimulationSpace)
|
||||
{
|
||||
case ESimulationSpace::ComponentSpace: return InCSTransform;
|
||||
case ESimulationSpace::WorldSpace: return InCSTransform * ComponentToWorld;
|
||||
case ESimulationSpace::BaseBoneSpace: return InCSTransform.GetRelativeTransform(BaseBoneTM); break;
|
||||
default: ensureMsgf(false, TEXT("Unsupported Simulation Space")); return InCSTransform;
|
||||
}
|
||||
}
|
||||
|
||||
void FAnimNode_RigidBody::UpdateComponentPose_AnyThread(const FAnimationUpdateContext& Context)
|
||||
{
|
||||
DECLARE_SCOPE_HIERARCHICAL_COUNTER_ANIMNODE(UpdateComponentPose_AnyThread)
|
||||
|
||||
@@ -525,3 +525,52 @@ struct TStructOpsTypeTraits<FAnimNode_RigidBody> : public TStructOpsTypeTraitsBa
|
||||
};
|
||||
#endif
|
||||
|
||||
FORCEINLINE_DEBUGGABLE FTransform SpaceToWorldTransform(
|
||||
ESimulationSpace Space, const FTransform& ComponentToWorld, const FTransform& BaseBoneTM)
|
||||
{
|
||||
switch (Space)
|
||||
{
|
||||
case ESimulationSpace::ComponentSpace: return ComponentToWorld;
|
||||
case ESimulationSpace::WorldSpace: return FTransform::Identity;
|
||||
case ESimulationSpace::BaseBoneSpace: return BaseBoneTM * ComponentToWorld;
|
||||
default: return FTransform::Identity;
|
||||
}
|
||||
}
|
||||
|
||||
FORCEINLINE_DEBUGGABLE FVector WorldVectorToSpaceNoScale(
|
||||
ESimulationSpace Space, const FVector& WorldDir, const FTransform& ComponentToWorld, const FTransform& BaseBoneTM)
|
||||
{
|
||||
switch (Space)
|
||||
{
|
||||
case ESimulationSpace::ComponentSpace: return ComponentToWorld.InverseTransformVectorNoScale(WorldDir);
|
||||
case ESimulationSpace::WorldSpace: return WorldDir;
|
||||
case ESimulationSpace::BaseBoneSpace:
|
||||
return BaseBoneTM.InverseTransformVectorNoScale(ComponentToWorld.InverseTransformVectorNoScale(WorldDir));
|
||||
default: return FVector::ZeroVector;
|
||||
}
|
||||
}
|
||||
|
||||
FORCEINLINE_DEBUGGABLE FVector WorldPositionToSpace(
|
||||
ESimulationSpace Space, const FVector& WorldPoint, const FTransform& ComponentToWorld, const FTransform& BaseBoneTM)
|
||||
{
|
||||
switch (Space)
|
||||
{
|
||||
case ESimulationSpace::ComponentSpace: return ComponentToWorld.InverseTransformPosition(WorldPoint);
|
||||
case ESimulationSpace::WorldSpace: return WorldPoint;
|
||||
case ESimulationSpace::BaseBoneSpace:
|
||||
return BaseBoneTM.InverseTransformPosition(ComponentToWorld.InverseTransformPosition(WorldPoint));
|
||||
default: return FVector::ZeroVector;
|
||||
}
|
||||
}
|
||||
|
||||
FORCEINLINE_DEBUGGABLE FTransform ConvertCSTransformToSimSpace(
|
||||
ESimulationSpace Space, const FTransform& InCSTransform, const FTransform& ComponentToWorld, const FTransform& BaseBoneTM)
|
||||
{
|
||||
switch (Space)
|
||||
{
|
||||
case ESimulationSpace::ComponentSpace: return InCSTransform;
|
||||
case ESimulationSpace::WorldSpace: return InCSTransform * ComponentToWorld;
|
||||
case ESimulationSpace::BaseBoneSpace: return InCSTransform.GetRelativeTransform(BaseBoneTM); break;
|
||||
default: ensureMsgf(false, TEXT("Unsupported Simulation Space")); return InCSTransform;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user