apply breaking Blueprint API fixes and some other minor fixes
This commit is contained in:
@@ -81,7 +81,7 @@ public:
|
||||
|
||||
public:
|
||||
/**
|
||||
* Deserialize a beta device from its basic constants string. Returns nullptr is unsuccessful.
|
||||
* Deserialize a beta device from its basic constants string. Returns nullptr if unsuccessful.
|
||||
*/
|
||||
static USGBetaDevice* Parse(UObject* Outer, const FString& String);
|
||||
|
||||
|
||||
@@ -262,12 +262,12 @@ public:
|
||||
virtual ESGHapticGloveCalibrationState GetCalibrationState() const;
|
||||
|
||||
/**
|
||||
* Resets internal calibration of the Haptic Glove.
|
||||
* Force-End any form of calibration manually, if any is still running.
|
||||
*/
|
||||
virtual void EndCalibration();
|
||||
|
||||
/**
|
||||
* Force-End any form of calibration manually, if any is still running.
|
||||
* Resets internal calibration of the Haptic Glove.
|
||||
*/
|
||||
virtual void ResetCalibration();
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
class FSGSenseGloveSensorNormalizerImpl;
|
||||
|
||||
/**
|
||||
* Internal class to hold 'Threshold Commands' for specific fingers. Can be sent to a Device, or used internally.
|
||||
* Acts as a sort of 'in between' handProfile. This class converts SG Dk1 Angles into 'normalized data' - between 0 .. 1.
|
||||
*/
|
||||
UCLASS(BlueprintType)
|
||||
class SENSEGLOVECORE_API USGSenseGloveSensorNormalizer final : public UObject
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ float USGHandInterpolatorKismetLibrary::CalculateAngle_M_ESGFingerMovement_V_bAL
|
||||
|
||||
TArray<FSGVectorArray> USGHandInterpolatorKismetLibrary::InterpolateHandAngles(
|
||||
const USGHandInterpolator* HandInterpolator,
|
||||
const TArray<FSGFloatArray>& Flexions, const TArray<float>& Abductions, const float CmcTwist) const
|
||||
const TArray<FSGFloatArray>& Flexions, const TArray<float>& Abductions, const float CmcTwist)
|
||||
{
|
||||
TArray<TArray<float>> FlexionsNestedArray{
|
||||
FSGArrayUtils::FromNestedBPArray<
|
||||
|
||||
@@ -91,7 +91,7 @@ bool USGHandLayerKismetLibrary::GetHandPose(UObject* WorldContextObject,
|
||||
return FSGHandLayer::GetHandPose(WorldContextObject, bRightHanded, OutHandPose);
|
||||
}
|
||||
|
||||
void USGHandLayerKismetLibrary::GetWristLocation_bRH_FQuat_RR_TH_OutWP_OutWR(
|
||||
void USGHandLayerKismetLibrary::GetWristLocation_bRH_RP_FQuat_RR_TH_OutWP_OutWR(
|
||||
const bool bRightHanded,
|
||||
const FVector& ReferencePosition, const FQuat& ReferenceRotation,
|
||||
ESGPositionalTrackingHardware TrackingHardware,
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
#include "SGCoreKismet/SGJointKinematicsKismetLibrary.h"
|
||||
|
||||
#include "SGCore/SGBasicHandModel.h"
|
||||
#include "SGCore/SGJointKinematics.h"
|
||||
|
||||
bool USGJointKinematicsKismetLibrary::ForwardKinematics_SP_FQuat_SR_JL_JA_OutNP_TArrayFQuat_OutNR(
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
#include "SGCore/SGHandInterpolator.h"
|
||||
#include "SGCore/SGHandPose.h"
|
||||
#include "SGCore/SGSenseGlove.h"
|
||||
#include "SGCore/SGSenseGlovePose.h"
|
||||
#include "SGCore/SGSenseGloveSensorData.h"
|
||||
#include "SGCore/SGSenseGloveSensorNormalizer.h"
|
||||
#include "SGUtils/SGArrayUtils.h"
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ public:
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, DisplayName="Set Start Joint Position",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Set Start Joint Position",
|
||||
Category="SenseGlove | Core | Kinematics | Basic Hand Model")
|
||||
static void SetStartJointPosition_uint8_F_P(UPARAM(ref) USGBasicHandModel* BasicHandModel, uint8 Finger,
|
||||
const FVector& Position);
|
||||
|
||||
@@ -55,7 +55,7 @@ class SENSEGLOVECOREKISMET_API USGBetaDeviceKismetLibrary final : public USGBlue
|
||||
|
||||
public:
|
||||
/**
|
||||
* Deserialize a beta device from its basic constants string. Returns nullptr is unsuccessful.
|
||||
* Deserialize a beta device from its basic constants string. Returns nullptr if unsuccessful.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Beta Device", meta=(WorldContext="WorldContextObject"))
|
||||
static USGBetaDevice* Parse(UObject* WorldContextObject, const FString& String);
|
||||
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
* Get the Type of waveform pattern that is used.
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Core | CV | Custom Waveform")
|
||||
ESGWaveformType GetWaveType(const USGCustomWaveform* CustomWaveform);
|
||||
static ESGWaveformType GetWaveType(const USGCustomWaveform* CustomWaveform);
|
||||
|
||||
/**
|
||||
* Set the Type of waveform pattern that is used.
|
||||
|
||||
@@ -132,8 +132,8 @@ public:
|
||||
* @param bInclusive
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, DisplayName="Firmware Newer Than", Category="SenseGlove | Core | SGDevice")
|
||||
bool FirmwareNewerThan_FM_FS_bI(const USGDevice* SGDevice,
|
||||
int32 FirmwareMain, int32 FirmwareSub, bool bInclusive);
|
||||
static bool FirmwareNewerThan_FM_FS_bI(const USGDevice* SGDevice,
|
||||
int32 FirmwareMain, int32 FirmwareSub, bool bInclusive);
|
||||
|
||||
/**
|
||||
* Returns true if this glove's firmware is older than certain version.
|
||||
@@ -221,14 +221,14 @@ public:
|
||||
/**
|
||||
* The number of haptic channels this device can support.
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Haptic Channel Index", Category="SenseGlove | Core | SGDevice")
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Haptic Channel Count", Category="SenseGlove | Core | SGDevice")
|
||||
static int32 GetHapticChannelCount(const USGDevice* SGDevice);
|
||||
|
||||
/**
|
||||
* How many channels of a specific type this SGDevice possesses.
|
||||
* @param ChannelType
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Haptic Channel Index", Category="SenseGlove | Core | SGDevice")
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Haptic Channel Count", Category="SenseGlove | Core | SGDevice")
|
||||
static int32 GetHapticChannelCount_CT(const USGDevice* SGDevice, ESGHapticChannelType ChannelType);
|
||||
|
||||
/**
|
||||
|
||||
@@ -99,9 +99,10 @@ public:
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Kinematics | Hand Interpolator",
|
||||
meta=(WorldContext="WorldContextObject"))
|
||||
TArray<FSGVectorArray> InterpolateHandAngles(const USGHandInterpolator* HandInterpolator,
|
||||
const TArray<FSGFloatArray>& Flexions, const TArray<float>& Abductions,
|
||||
float CmcTwist) const;
|
||||
static TArray<FSGVectorArray> InterpolateHandAngles(const USGHandInterpolator* HandInterpolator,
|
||||
const TArray<FSGFloatArray>& Flexions,
|
||||
const TArray<float>& Abductions,
|
||||
float CmcTwist);
|
||||
|
||||
/**
|
||||
* Check if this handInterpolator matches another.
|
||||
|
||||
@@ -123,7 +123,7 @@ public:
|
||||
* Calculate the Wrist Location of the chosen hand, based on a reference location and tracking hardware.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Wrist Location", Category="SenseGlove | Core | Hand Layer")
|
||||
static void GetWristLocation_bRH_FQuat_RR_TH_OutWP_OutWR(
|
||||
static void GetWristLocation_bRH_RP_FQuat_RR_TH_OutWP_OutWR(
|
||||
bool bRightHanded,
|
||||
const FVector& ReferencePosition, const FQuat& ReferenceRotation,
|
||||
ESGPositionalTrackingHardware TrackingHardware,
|
||||
|
||||
@@ -161,7 +161,7 @@ public:
|
||||
* Returns the Hand Angles calculated by this Nova 2 Glove. Used for input for HandPoses, but can be used in and of
|
||||
* itself.
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Imu Rotation", Category="SenseGlove | Core | Haptic Glove")
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Hand Angles", Category="SenseGlove | Core | Haptic Glove")
|
||||
static bool GetHandAngles(const USGHapticGlove* HapticGlove, TArray<FSGVectorArray>& OutHandAngles);
|
||||
|
||||
/**
|
||||
@@ -173,31 +173,31 @@ public:
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Imu Rotation", Category="SenseGlove | Core | Haptic Glove")
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Set Hand Geometry", Category="SenseGlove | Core | Haptic Glove")
|
||||
static void SetHandGeometry(UPARAM(ref) USGHapticGlove* HapticGlove, const USGBasicHandModel* HandGeometry);
|
||||
|
||||
/**
|
||||
* Returns the HapticGlove's state of calibration for its on-board sensors.
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Imu Rotation", Category="SenseGlove | Core | Haptic Glove")
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Calibration State", Category="SenseGlove | Core | Haptic Glove")
|
||||
static ESGHapticGloveCalibrationState GetCalibrationState(const USGHapticGlove* HapticGlove);
|
||||
|
||||
/**
|
||||
* Resets internal calibration of the Haptic Glove.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Imu Rotation", Category="SenseGlove | Core | Haptic Glove")
|
||||
static void EndCalibration(UPARAM(ref) USGHapticGlove* HapticGlove);
|
||||
|
||||
/**
|
||||
* Force-End any form of calibration manually, if any is still running.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Imu Rotation", Category="SenseGlove | Core | Haptic Glove")
|
||||
UFUNCTION(BlueprintCallable, DisplayName="End Calibration", Category="SenseGlove | Core | Haptic Glove")
|
||||
static void EndCalibration(UPARAM(ref) USGHapticGlove* HapticGlove);
|
||||
|
||||
/**
|
||||
* Resets internal calibration of the Haptic Glove.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Reset Calibration", Category="SenseGlove | Core | Haptic Glove")
|
||||
static void ResetCalibration(UPARAM(ref) USGHapticGlove* HapticGlove);
|
||||
|
||||
/**
|
||||
* Retrieve the current calibration instruction.
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Imu Rotation", Category="SenseGlove | Core | Haptic Glove")
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Calibration Instruction", Category="SenseGlove | Core | Haptic Glove")
|
||||
static FString GetCalibrationInstruction(const USGHapticGlove* HapticGlove);
|
||||
|
||||
/**
|
||||
|
||||
@@ -97,7 +97,7 @@ public:
|
||||
* Second value of input range.
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Kinematics | Interpolation Set")
|
||||
float GetX1(const USGInterpolationSet* InterpolationSet);
|
||||
static float GetX1(const USGInterpolationSet* InterpolationSet);
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -39,12 +39,13 @@
|
||||
#include "Math/Quat.h"
|
||||
#include "Math/Vector.h"
|
||||
|
||||
#include "SGCore/SGBasicHandModel.h"
|
||||
#include "SGKismet/SGBlueprintFunctionLibrary.h"
|
||||
#include "SGTypes/SGCoreTypes.h"
|
||||
|
||||
#include "SGJointKinematicsKismetLibrary.generated.h"
|
||||
|
||||
class USGBasicHandModel;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -261,7 +261,7 @@ public:
|
||||
*
|
||||
* @param OutHandAngles
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Hand Pose", Category="SenseGlove | Core | Nova | Nova 2 Glove",
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Hand Angles", Category="SenseGlove | Core | Nova | Nova 2 Glove",
|
||||
meta=(WorldContext="WorldContextObject"))
|
||||
static bool GetHandAngles(const USGNova2Glove* Nova2Glove, TArray<FSGVectorArray>& OutHandAngles);
|
||||
|
||||
@@ -299,7 +299,7 @@ public:
|
||||
/**
|
||||
* Flush all streaming haptic effects on the different fingers to the Nova 2.0 Glove.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | SG | Nova 2 Glove")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove")
|
||||
static bool SendHaptics(UPARAM(ref) USGNova2Glove* Nova2Glove);
|
||||
|
||||
/**
|
||||
|
||||
@@ -281,7 +281,7 @@ public:
|
||||
*
|
||||
* @param OutHandAngles
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Hand Pose", Category="SenseGlove | Core | Nova | Nova Glove",
|
||||
UFUNCTION(BlueprintPure, DisplayName="Get Hand Angles", Category="SenseGlove | Core | Nova | Nova Glove",
|
||||
meta=(WorldContext="WorldContextObject"))
|
||||
static bool GetHandAngles(const USGNovaGlove* NovaGlove, TArray<FSGVectorArray>& OutHandAngles);
|
||||
|
||||
@@ -324,7 +324,7 @@ public:
|
||||
*
|
||||
* @remarks Generic function across any Haptic Interface in SGCore.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | SG | Nova Glove")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova Glove")
|
||||
static bool SendHaptics(UPARAM(ref) USGNovaGlove* NovaGlove);
|
||||
|
||||
/**
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
#include "HAL/Platform.h"
|
||||
|
||||
#include "SGKismet/SGBlueprintFunctionLibrary.h"
|
||||
#include "SGTypes/SGVectorArray.h"
|
||||
|
||||
#include "SGSenseComKismetLibrary.generated.h"
|
||||
|
||||
|
||||
@@ -36,10 +36,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "SGCore/SGHandPose.h"
|
||||
#include "SGCore/SGSenseGlove.h"
|
||||
#include "SGCore/SGSenseGlovePose.h"
|
||||
#include "SGCore/SGSenseGloveSensorData.h"
|
||||
#include "SGKismet/SGBlueprintFunctionLibrary.h"
|
||||
#include "SGTypes/SGVectorArray.h"
|
||||
|
||||
@@ -49,6 +45,8 @@ class USGDevice;
|
||||
class USGHandInterpolator;
|
||||
class USGHandPose;
|
||||
class USGSenseGlove;
|
||||
class USGSenseGlovePose;
|
||||
class USGSenseGloveSensorData;
|
||||
class USGSenseGloveSensorNormalizer;
|
||||
|
||||
/**
|
||||
@@ -192,7 +190,7 @@ public:
|
||||
*
|
||||
* @remarks Use this when you already have a GlovePose.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Calculate Glove Pose", Category="SenseGlove | Core | SG | Sense Glove",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Calculate Hand Pose", Category="SenseGlove | Core | SG | Sense Glove",
|
||||
meta=(WorldContext="WorldContextObject"))
|
||||
static void CalculateHandPose(
|
||||
UObject* WorldContextObject,
|
||||
|
||||
+1
-2
@@ -43,8 +43,7 @@
|
||||
class USGSenseGloveSensorNormalizer;
|
||||
|
||||
/**
|
||||
* Interface for Nova 2.0 Gloves. A soft glove with detachable force-feedback and sensor module, and active contact
|
||||
* feedback in the front strap.
|
||||
* Acts as a sort of 'in between' handProfile. This class converts SG Dk1 Angles into 'normalized data' - between 0 .. 1.
|
||||
*/
|
||||
UCLASS(meta=(ScriptName = "SenseGloveSenseGloveSensorNormalizerKismetLibrary"))
|
||||
class SENSEGLOVECOREKISMET_API USGSenseGloveSensorNormalizerKismetLibrary final : public USGBlueprintFunctionLibrary
|
||||
|
||||
@@ -126,7 +126,7 @@ public:
|
||||
/**
|
||||
* Generate a custom glove info.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="GenerateGloveModel", Category="SenseGlove | Core | SG | Sense Glove Vars",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Generate Glove Model", Category="SenseGlove | Core | SG | Sense Glove Vars",
|
||||
meta=(WorldContext="WorldContextObject"))
|
||||
static USGSenseGloveInfo* GenerateGloveModel_HV_FV_SFV_bRH(
|
||||
UObject* WorldContextObject,
|
||||
@@ -135,7 +135,7 @@ public:
|
||||
/**
|
||||
* Generate a custom glove info.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="GenerateGloveModel", Category="SenseGlove | Core | SG | Sense Glove Vars",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Generate Glove Model", Category="SenseGlove | Core | SG | Sense Glove Vars",
|
||||
meta=(WorldContext="WorldContextObject"))
|
||||
static USGSenseGloveInfo* GenerateGloveModel_HV_FV_SFV_bRH_CI(
|
||||
UObject* WorldContextObject,
|
||||
|
||||
@@ -72,8 +72,7 @@ public:
|
||||
/**
|
||||
* Retrieve the threshold of a particular finger.
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Haptics | Threshold Command",
|
||||
meta=(WorldContext="WorldContextObject"))
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Haptics | Threshold Command")
|
||||
static float GetThreshold(const USGThresholdCommand* ThresholdCommand, int32 Finger);
|
||||
|
||||
/**
|
||||
@@ -96,11 +95,10 @@ public:
|
||||
/**
|
||||
* If true, the threshold on a finger should be active.
|
||||
*/
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Haptics | Threshold Command",
|
||||
meta=(WorldContext="WorldContextObject"))
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Haptics | Threshold Command")
|
||||
static bool GetFingerActive(const USGThresholdCommand* ThresholdCommand, int32 Finger);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Haptics | Threshold Command")
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Haptics | Threshold Command")
|
||||
static TArray<bool> GetActiveFingers(const USGThresholdCommand* ThresholdCommand);
|
||||
|
||||
/**
|
||||
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
* Get the offset to get from the TrackedHardware to a SenseGlove mounting location. Combined with Glove-Mount
|
||||
* offset to get the glove location.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get SenseGlove Tracker Mouunt Offset",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get SenseGlove Tracker Mount Offset",
|
||||
Category="SenseGlove | Core | Tracking")
|
||||
static void GetSenseGloveTrackerMountOffset_H_bRH_OutPO_FQuat_OutRO(
|
||||
ESGPositionalTrackingHardware Hardware, bool bRightHanded,
|
||||
@@ -142,7 +142,7 @@ public:
|
||||
* Get the offset to get from the TrackedHardware to a SenseGlove mounting location. Combined with Glove-Mount
|
||||
* offset to get the glove location.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get SenseGlove Tracker Mouunt Offset",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get SenseGlove Tracker Mount Offset",
|
||||
Category="SenseGlove | Core | Tracking")
|
||||
static void GetSenseGloveTrackerMountOffset_H_bRH_OutPO_FRotator_OutRO(
|
||||
ESGPositionalTrackingHardware Hardware, bool bRightHanded,
|
||||
@@ -197,14 +197,14 @@ public:
|
||||
/**
|
||||
* Rotational offset between Nova Glove Origin and Wrist.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Nove To Wrist Rotation Offset",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Nova To Wrist Rotation Offset",
|
||||
Category="SenseGlove | Core | Tracking")
|
||||
static FQuat GetNovaToWristRotationOffset_FQuat();
|
||||
|
||||
/**
|
||||
* Rotational offset between Nova Glove Origin and Wrist.
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Nove To Wrist Rotation Offset",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Nova To Wrist Rotation Offset",
|
||||
Category="SenseGlove | Core | Tracking")
|
||||
static FRotator GetNovaToWristRotationOffset_FRotator();
|
||||
|
||||
@@ -331,7 +331,7 @@ public:
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Right Nova Quest Pro To To Attach Rotation",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Right Nova Quest Pro To Attach Rotation",
|
||||
Category="SenseGlove | Core | Tracking")
|
||||
static FQuat GetRightNovaQuestProToAttachRotation_FQuat();
|
||||
|
||||
@@ -378,7 +378,7 @@ public:
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Right Nova Vive Focus 3 To Attach Rotattion",
|
||||
UFUNCTION(BlueprintCallable, DisplayName="Get Right Nova Vive Focus 3 To Attach Rotation",
|
||||
Category="SenseGlove | Core | Tracking")
|
||||
static FRotator GetRightNovaViveFocus3ToAttachRotation_FRotator();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user