// Copyright Epic Games, Inc. All Rights Reserved. #include "PhysicsAssetEditorAnimInstance.h" #include "PhysicsAssetEditorAnimInstanceProxy.h" ///////////////////////////////////////////////////// // UPhysicsAssetEditorAnimInstance ///////////////////////////////////////////////////// UPhysicsAssetEditorAnimInstance::UPhysicsAssetEditorAnimInstance(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { bUseMultiThreadedAnimationUpdate = true; } FAnimInstanceProxy* UPhysicsAssetEditorAnimInstance::CreateAnimInstanceProxy() { return new FPhysicsAssetEditorAnimInstanceProxy(this); } void UPhysicsAssetEditorAnimInstance::Grab(FName InBoneName, const FVector& Location, const FRotator& Rotation, bool bRotationConstrained) { FPhysicsAssetEditorAnimInstanceProxy& Proxy = GetProxyOnGameThread(); Proxy.Grab(InBoneName, Location, Rotation, bRotationConstrained); } void UPhysicsAssetEditorAnimInstance::Ungrab() { FPhysicsAssetEditorAnimInstanceProxy& Proxy = GetProxyOnGameThread(); Proxy.Ungrab(); } void UPhysicsAssetEditorAnimInstance::UpdateHandleTransform(const FTransform& NewTransform) { FPhysicsAssetEditorAnimInstanceProxy& Proxy = GetProxyOnGameThread(); Proxy.UpdateHandleTransform(NewTransform); } void UPhysicsAssetEditorAnimInstance::UpdateDriveSettings(bool bLinearSoft, float LinearStiffness, float LinearDamping) { FPhysicsAssetEditorAnimInstanceProxy& Proxy = GetProxyOnGameThread(); Proxy.UpdateDriveSettings(bLinearSoft, LinearStiffness, LinearDamping); } void UPhysicsAssetEditorAnimInstance::CreateSimulationFloor(FBodyInstance* FloorBodyInstance, const FTransform& Transform) { FPhysicsAssetEditorAnimInstanceProxy& Proxy = GetProxyOnGameThread(); Proxy.CreateSimulationFloor(FloorBodyInstance, Transform); }