Files
UnrealEngine/Engine/Source/Runtime/EyeTracker/Public/IEyeTracker.h
2025-05-18 13:04:45 +08:00

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;
};