Files
UnrealEngineUWP/Engine/Source/Editor/PhysicsAssetEditor/Private/PhysicsAssetEditorPhysicsHandleComponent.cpp
chris caulfield 5e6b30ad7f Chaos
- remove Cholesky solver calling code
- rename Chaos collision and joint stats
- add drag handles to RBAN editing in PhAt

#rb none


#ROBOMERGE-SOURCE: CL 10995456 via CL 10995464 via CL 10995468 via CL 10995475
#ROBOMERGE-BOT: (v633-10983880)

[CL 10995481 by chris caulfield in Main branch]
2020-01-15 13:57:18 -05:00

74 lines
2.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "PhysicsAssetEditorPhysicsHandleComponent.h"
#include "PhysicsAssetEditorSkeletalMeshComponent.h"
UPhysicsAssetEditorPhysicsHandleComponent::UPhysicsAssetEditorPhysicsHandleComponent(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
, bAnimInstanceMode(false)
{
}
void UPhysicsAssetEditorPhysicsHandleComponent::UpdateHandleTransform(const FTransform& NewTransform)
{
Super::UpdateHandleTransform(NewTransform);
if (bAnimInstanceMode)
{
UPhysicsAssetEditorSkeletalMeshComponent* PhatComponent = Cast<UPhysicsAssetEditorSkeletalMeshComponent>(GrabbedComponent);
if (PhatComponent != nullptr)
{
PhatComponent->UpdateHandleTransform(NewTransform);
}
}
}
void UPhysicsAssetEditorPhysicsHandleComponent::UpdateDriveSettings()
{
Super::UpdateDriveSettings();
if (bAnimInstanceMode)
{
UPhysicsAssetEditorSkeletalMeshComponent* PhatComponent = Cast<UPhysicsAssetEditorSkeletalMeshComponent>(GrabbedComponent);
if (PhatComponent != nullptr)
{
PhatComponent->UpdateDriveSettings(bSoftLinearConstraint, LinearStiffness, LinearDamping);
}
}
}
void UPhysicsAssetEditorPhysicsHandleComponent::SetAnimInstanceMode(bool bInAnimInstanceMode)
{
bAnimInstanceMode = bInAnimInstanceMode;
}
void UPhysicsAssetEditorPhysicsHandleComponent::GrabComponentImp(class UPrimitiveComponent* Component, FName InBoneName, const FVector& Location, const FRotator& Rotation, bool InbRotationConstrained)
{
Super::GrabComponentImp(Component, InBoneName, Location, Rotation, bRotationConstrained);
if (bAnimInstanceMode)
{
TargetTransform = CurrentTransform = FTransform(Rotation, Location);
UPhysicsAssetEditorSkeletalMeshComponent* PhatComponent = Cast<UPhysicsAssetEditorSkeletalMeshComponent>(Component);
if (PhatComponent != nullptr)
{
PhatComponent->Grab(InBoneName, Location, Rotation, InbRotationConstrained);
}
}
}
void UPhysicsAssetEditorPhysicsHandleComponent::ReleaseComponent()
{
if (bAnimInstanceMode)
{
UPhysicsAssetEditorSkeletalMeshComponent* PhatComponent = Cast<UPhysicsAssetEditorSkeletalMeshComponent>(GrabbedComponent);
if (PhatComponent != nullptr)
{
PhatComponent->Ungrab();
}
}
Super::ReleaseComponent();
}