39 lines
1.3 KiB
C++
39 lines
1.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Modules/ModuleInterface.h"
|
|
#include "InputCoreTypes.h"
|
|
|
|
#include "EyeTrackerTypes.h"
|
|
|
|
class IEyeTracker
|
|
{
|
|
public:
|
|
|
|
/**
|
|
* Specifies player being eye-tracked. This is not necessary for all devices, but is necessary for some to determine viewport properties, etc..
|
|
* Implementing class should cache this locally as it doesn't need to be called every tick.
|
|
*/
|
|
virtual void SetEyeTrackedPlayer(APlayerController* PlayerController) = 0;
|
|
|
|
/**
|
|
* Returns gaze data for the given player controller.
|
|
* @return true if returning valid data, false if gaze data was unavailable
|
|
*/
|
|
virtual bool GetEyeTrackerGazeData(FEyeTrackerGazeData& OutGazeData) const = 0;
|
|
|
|
/**
|
|
* Returns stereo gaze data for the given player controller (contains data for each eye individually).
|
|
* @return true if returning valid data, false if stereo gaze data was unavailable
|
|
*/
|
|
virtual bool GetEyeTrackerStereoGazeData(FEyeTrackerStereoGazeData& OutGazeData) const = 0;
|
|
|
|
/** Returns information about the status of the current device. */
|
|
virtual EEyeTrackerStatus GetEyeTrackerStatus() const = 0;
|
|
|
|
/** Returns true if the current device can provide per-eye gaze data, false otherwise. */
|
|
virtual bool IsStereoGazeDataAvailable() const = 0;
|
|
};
|