UCLASS(Blueprintable, meta = (BlueprintSpawnableComponent), ClassGroup = (VRExpansionPlugin))  
 More...
#include <VRGestureComponent.h>
|  | 
|  | UVRGestureComponent (const FObjectInitializer &ObjectInitializer) | 
|  | 
| void | BeginDestroy () override | 
|  | 
| void | BeginRecording (bool bRunDetection, bool bFlattenGesture=true, bool bDrawGesture=true, bool bDrawAsSpline=false, int SamplingHTZ=30, int SampleBufferSize=60, float ClampingTolerance=0.01f) | 
|  | UFUNCTION(BlueprintCallable, Category = "VRGestures") 
 | 
|  | 
| void | CaptureGestureFrame () | 
|  | 
| void | ClearRecording () | 
|  | UFUNCTION(BlueprintCallable, Category = "VRGestures") 
 | 
|  | 
| void | DrawDebugGesture (UObject *WorldContextObject, UPARAM(ref) FTransform &StartTransform, FVRGesture GestureToDraw, FColor const &Color, bool bPersistentLines=false, uint8 DepthPriority=0, float LifeTime=-1.f, float Thickness=0.f) | 
|  | UFUNCTION(BlueprintCallable, Category = "VRGestures", meta = (WorldContext = "WorldContextObject")) 
 | 
|  | 
| float | dtw (FVRGesture seq1, FVRGesture seq2, bool bMirrorGesture=false, float Scaler=1.f) | 
|  | 
| FVRGesture | EndRecording () | 
|  | UFUNCTION(BlueprintCallable, Category = "VRGestures") 
 | 
|  | 
| float | GetGestureDistance (FVector Seq1, FVector Seq2, bool bMirrorGesture=false) | 
|  | 
| void | OnGestureDetected (uint8 GestureType, FString &DetectedGestureName, int &DetectedGestureIndex, UGesturesDatabase *GestureDatabase) | 
|  | UFUNCTION(BlueprintImplementableEvent, Category = "BaseVRCharacter") 
 | 
|  | 
| void | RecalculateGestureSize (UPARAM(ref) FVRGesture &InputGesture, UGesturesDatabase *GestureDB) | 
|  | UFUNCTION(BlueprintCallable, Category = "VRGestures") 
 | 
|  | 
| void | RecognizeGesture (FVRGesture inputGesture) | 
|  | 
| void | SaveRecording (UPARAM(ref) FVRGesture &Recording, FString RecordingName, bool bScaleRecordingToDatabase=true) | 
|  | UFUNCTION(BlueprintCallable, Category = "VRGestures") 
 | 
|  | 
| void | TickGesture () | 
|  | 
|  | 
| bool | bDrawRecordingGesture | 
|  | 
| bool | bDrawRecordingGestureAsSpline | 
|  | 
| bool | bDrawSplinesCurved | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| bool | bGestureChanged | 
|  | 
| bool | bGetGestureInWorldSpace | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| bool | bRecordingFlattenGesture | 
|  | 
| EVRGestureState | CurrentState | 
|  | UPROPERTY(BlueprintReadOnly, Category = "VRGestures") 
 | 
|  | 
| FVRGesture | GestureLog | 
|  | UPROPERTY(BlueprintReadOnly, Category = "VRGestures") 
 | 
|  | 
| UGesturesDatabase * | GesturesDB | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| int | maxSlope | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| EVRGestureMirrorMode | MirroringHand | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| FVRGestureDetectedSignature | OnGestureDetected_Bind | 
|  | UPROPERTY(BlueprintAssignable, Category = "VRGestures") 
 | 
|  | 
| FTransform | OriginatingTransform | 
|  | 
| int | RecordingBufferSize | 
|  | 
| float | RecordingClampingTolerance | 
|  | 
| float | RecordingDelta | 
|  | 
| FVRGestureSplineDraw | RecordingGestureDraw | 
|  | 
| float | SameSampleTolerance | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| UMaterialInterface * | SplineMaterial | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| UStaticMesh * | SplineMesh | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| FVector2D | SplineMeshScaler | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| FVector | StartVector | 
|  | 
| AVRBaseCharacter * | TargetCharacter | 
|  | UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
 | 
|  | 
| FTimerHandle | TickGestureTimer_Handle | 
|  | 
UCLASS(Blueprintable, meta = (BlueprintSpawnableComponent), ClassGroup = (VRExpansionPlugin)) 
A scene component that can sample its positions to record / track VR gestures Core code is from https://social.msdn.microsoft.com/Forums/en-US/4a428391-82df-445a-a867-557f284bd4b1/dynamic-time-warping-to-recognize-gestures?forum=kinectsdk I would also like to acknowledge RuneBerg as he appears to have used the same core codebase and I discovered that halfway through implementing this If this algorithm should not prove stable enough I will likely look into using a more complex and faster one in the future, I have several modifications to the base DTW algorithm noted from a few research papers. I only implemented this one first as it was a single header file and the quickest to implement. 
Definition at line 305 of file VRGestureComponent.h.
◆ UVRGestureComponent()
      
        
          | UVRGestureComponent::UVRGestureComponent | ( | const FObjectInitializer & | ObjectInitializer | ) |  | 
      
 
 
◆ BeginDestroy()
  
  | 
        
          | void UVRGestureComponent::BeginDestroy | ( |  | ) |  |  | override | 
 
 
◆ BeginRecording()
  
  | 
        
          | void UVRGestureComponent::BeginRecording | ( | bool | bRunDetection, |  
          |  |  | bool | bFlattenGesture = true, |  
          |  |  | bool | bDrawGesture = true, |  
          |  |  | bool | bDrawAsSpline = false, |  
          |  |  | int | SamplingHTZ = 30, |  
          |  |  | int | SampleBufferSize = 60, |  
          |  |  | float | ClampingTolerance = 0.01f ) |  | BlueprintCallable | 
 
 
◆ CaptureGestureFrame()
      
        
          | void UVRGestureComponent::CaptureGestureFrame | ( |  | ) |  | 
      
 
 
◆ ClearRecording()
  
  | 
        
          | void UVRGestureComponent::ClearRecording | ( |  | ) |  |  | BlueprintCallable | 
 
 
◆ DrawDebugGesture()
  
  | 
        
          | void UVRGestureComponent::DrawDebugGesture | ( | UObject * | WorldContextObject, |  
          |  |  | UPARAM(ref) FTransform & | StartTransform, |  
          |  |  | FVRGesture | GestureToDraw, |  
          |  |  | FColor const & | Color, |  
          |  |  | bool | bPersistentLines = false, |  
          |  |  | uint8 | DepthPriority = 0, |  
          |  |  | float | LifeTime = -1.f, |  
          |  |  | float | Thickness = 0.f ) |  | BlueprintCallable | 
 
UFUNCTION(BlueprintCallable, Category = "VRGestures", meta = (WorldContext = "WorldContextObject")) 
Definition at line 473 of file VRGestureComponent.cpp.
 
 
◆ dtw()
◆ EndRecording()
◆ GENERATED_BODY()
  
  | 
        
          | UVRGestureComponent::GENERATED_BODY | ( |  | ) |  |  | private | 
 
 
◆ GetGestureDistance()
  
  | 
        
          | float UVRGestureComponent::GetGestureDistance | ( | FVector | Seq1, |  
          |  |  | FVector | Seq2, |  
          |  |  | bool | bMirrorGesture = false ) |  | inline | 
 
 
◆ OnGestureDetected()
  
  | 
        
          | void UVRGestureComponent::OnGestureDetected | ( | uint8 | GestureType, |  
          |  |  | FString & | DetectedGestureName, |  
          |  |  | int & | DetectedGestureIndex, |  
          |  |  | UGesturesDatabase * | GestureDatabase ) |  | BlueprintImplementableEvent | 
 
UFUNCTION(BlueprintImplementableEvent, Category = "BaseVRCharacter") 
 
 
◆ RecalculateGestureSize()
◆ RecognizeGesture()
      
        
          | void UVRGestureComponent::RecognizeGesture | ( | FVRGesture | inputGesture | ) |  | 
      
 
 
◆ SaveRecording()
  
  | 
        
          | void UVRGestureComponent::SaveRecording | ( | UPARAM(ref) FVRGesture & | Recording, |  
          |  |  | FString | RecordingName, |  
          |  |  | bool | bScaleRecordingToDatabase = true ) |  | BlueprintCallable | 
 
 
◆ TickGesture()
      
        
          | void UVRGestureComponent::TickGesture | ( |  | ) |  | 
      
 
 
◆ bDrawRecordingGesture
      
        
          | bool UVRGestureComponent::bDrawRecordingGesture | 
      
 
 
◆ bDrawRecordingGestureAsSpline
      
        
          | bool UVRGestureComponent::bDrawRecordingGestureAsSpline | 
      
 
 
◆ bDrawSplinesCurved
  
  | 
        
          | bool UVRGestureComponent::bDrawSplinesCurved |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 371 of file VRGestureComponent.h.
 
 
◆ bGestureChanged
      
        
          | bool UVRGestureComponent::bGestureChanged | 
      
 
 
◆ bGetGestureInWorldSpace
  
  | 
        
          | bool UVRGestureComponent::bGetGestureInWorldSpace |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 379 of file VRGestureComponent.h.
 
 
◆ bRecordingFlattenGesture
      
        
          | bool UVRGestureComponent::bRecordingFlattenGesture | 
      
 
 
◆ CurrentState
◆ GestureLog
◆ GesturesDB
  
  |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 337 of file VRGestureComponent.h.
 
 
◆ maxSlope
  
  | 
        
          | int UVRGestureComponent::maxSlope |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 426 of file VRGestureComponent.h.
 
 
◆ MirroringHand
  
  |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 353 of file VRGestureComponent.h.
 
 
◆ OnGestureDetected_Bind
  
  | 
        
          | FVRGestureDetectedSignature UVRGestureComponent::OnGestureDetected_Bind |  | BlueprintAssignable | 
 
 
◆ OriginatingTransform
      
        
          | FTransform UVRGestureComponent::OriginatingTransform | 
      
 
 
◆ RecordingBufferSize
      
        
          | int UVRGestureComponent::RecordingBufferSize | 
      
 
 
◆ RecordingClampingTolerance
      
        
          | float UVRGestureComponent::RecordingClampingTolerance | 
      
 
 
◆ RecordingDelta
      
        
          | float UVRGestureComponent::RecordingDelta | 
      
 
 
◆ RecordingGestureDraw
◆ SameSampleTolerance
  
  | 
        
          | float UVRGestureComponent::SameSampleTolerance |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 345 of file VRGestureComponent.h.
 
 
◆ SplineMaterial
  
  | 
        
          | UMaterialInterface* UVRGestureComponent::SplineMaterial |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 403 of file VRGestureComponent.h.
 
 
◆ SplineMesh
  
  | 
        
          | UStaticMesh* UVRGestureComponent::SplineMesh |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 387 of file VRGestureComponent.h.
 
 
◆ SplineMeshScaler
  
  | 
        
          | FVector2D UVRGestureComponent::SplineMeshScaler |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 395 of file VRGestureComponent.h.
 
 
◆ StartVector
      
        
          | FVector UVRGestureComponent::StartVector | 
      
 
 
◆ TargetCharacter
  
  |  | EditAnywhereBlueprintReadWrite | 
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures") 
Definition at line 361 of file VRGestureComponent.h.
 
 
◆ TickGestureTimer_Handle
      
        
          | FTimerHandle UVRGestureComponent::TickGestureTimer_Handle | 
      
 
 
The documentation for this class was generated from the following files:
- SDKDemo/Plugins/UnrealEngineSDK/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/VRGestureComponent.h
- SDKDemo/Plugins/UnrealEngineSDK/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRGestureComponent.cpp