A Demo Project for the UnrealEngineSDK
Loading...
Searching...
No Matches
GS_Physics.cpp
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
4#include "VRGripInterface.h"
6
29
30void UGS_Physics::UpdateDualHandInfo(UGripMotionControllerComponent* GrippingController, bool bReCreate)
31{
32 TArray<FBPGripPair> HoldingControllers;
33 bool bIsHeld;
34 IVRGripInterface::Execute_IsHeld(GetParent(), HoldingControllers, bIsHeld);
35
36 int NumControllers = HoldingControllers.Num();
37
38 for (FBPGripPair& Grip : HoldingControllers)
39 {
40 if (NumControllers > 1)
41 {
42 FBPActorPhysicsHandleInformation* HandleInfo = Grip.HoldingController->GetPhysicsGrip(Grip.GripID);
43 if (HandleInfo)
44 {
46
47 if(bReCreate && Grip.HoldingController != GrippingController)
48 Grip.HoldingController->UpdatePhysicsHandle(Grip.GripID, true);
49 }
50 }
51 else
52 {
53 FBPActorPhysicsHandleInformation* HandleInfo = Grip.HoldingController->GetPhysicsGrip(Grip.GripID);
54 if (HandleInfo)
55 {
57
58 if(bReCreate)
59 Grip.HoldingController->UpdatePhysicsHandle(Grip.GripID, true);
60 }
61 }
62 }
63}
64
65
67{
68 if (!bIsActive)
69 return;
70
71 UpdateDualHandInfo(GrippingController, true);
72}
73
74void UGS_Physics::OnGripRelease_Implementation(UGripMotionControllerComponent* ReleasingController, const FBPActorGripInformation& GripInformation, bool bWasSocketed)
75{
76
77 if (!bIsActive)
78 return;
79
80 UpdateDualHandInfo(nullptr, true);
81}
82
83// Should I be orienting it to the controller for these types of grips?
84/*void UGS_Physics::HandlePrePhysicsHandle(UGripMotionControllerComponent* GrippingController, const FBPActorGripInformation &GripInfo, FBPActorPhysicsHandleInformation * HandleInfo, FTransform & KinPose)
85{
86 if (!bIsActive)
87 return;
88
89 if (WeaponRootOrientationComponent != NAME_None)
90 {
91 // Alter to rotate to x+ if we have an orientation component
92 FQuat DeltaQuat = OrientationComponentRelativeFacing.GetRotation();
93
94 // This moves the kinematic actor to face its X+ in the direction designated
95 KinPose.SetRotation(KinPose.GetRotation() * (HandleInfo->RootBoneRotation.GetRotation().Inverse() * DeltaQuat));
96 HandleInfo->COMPosition.SetRotation(HandleInfo->COMPosition.GetRotation() * (HandleInfo->RootBoneRotation.GetRotation().Inverse() * DeltaQuat));
97 }
98}*/
99
101{
102 if (!bIsActive)
103 return;
104
105 UpdateDualHandInfo(GrippingController, false);
106}
virtual void OnGripRelease_Implementation(UGripMotionControllerComponent *ReleasingController, const FBPActorGripInformation &GripInformation, bool bWasSocketed=false) override
FBPAdvancedPhysicsHandleSettings MultiHandPhysicsSettings
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Physics Settings")
Definition GS_Physics.h:44
void UpdateDualHandInfo(UGripMotionControllerComponent *GrippingController=nullptr, bool bRecreate=true)
virtual void OnGrip_Implementation(UGripMotionControllerComponent *GrippingController, const FBPActorGripInformation &GripInformation) override
FBPAdvancedPhysicsHandleSettings SingleHandPhysicsSettings
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Physics Settings")
Definition GS_Physics.h:35
UGS_Physics(const FObjectInitializer &ObjectInitializer)
Definition GS_Physics.cpp:7
virtual void HandlePostPhysicsHandle(UGripMotionControllerComponent *GrippingController, FBPActorPhysicsHandleInformation *HandleInfo) override
UCLASS(Blueprintable, meta = (BlueprintSpawnableComponent), ClassGroup = MotionController)
bool bInjectPostPhysicsHandle
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "GSSettings")
bool bInjectPrePhysicsHandle
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "GSSettings")
bool bDenyLateUpdates
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "GSSettings")
EGSTransformOverrideType WorldTransformOverrideType
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "GSSettings")
bool bIsActive
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "GSSettings")
bool bCanEverTick
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "TickSettings")
UObject * GetParent()
UFUNCTION(BlueprintPure, Category = "VRGripScript")
USTRUCT(BlueprintType, Category = "VRExpansionLibrary")
USTRUCT(BlueprintType, Category = "VRExpansionLibrary")
float MaxForceCoefficient
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PhysicsSettings", meta = (ClampMin = "0....
FBPAdvancedPhysicsHandleAxisSettings TwistSettings
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Angular Constraint Settings")
FBPAdvancedPhysicsHandleAxisSettings SlerpSettings
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Angular Constraint Settings")
bool FillTo(FBPActorPhysicsHandleInformation *HandleInfo) const
FBPAdvancedPhysicsHandleAxisSettings YAxisSettings
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Linear Constraint Settings")
FBPAdvancedPhysicsHandleAxisSettings ZAxisSettings
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Linear Constraint Settings")
FBPAdvancedPhysicsHandleAxisSettings XAxisSettings
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Linear Constraint Settings")
FBPAdvancedPhysicsHandleAxisSettings SwingSettings
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Angular Constraint Settings")
USTRUCT(BlueprintType, Category = "VRExpansionLibrary")