summaryrefslogtreecommitdiffstats
path: root/servers/xr_server.h
diff options
context:
space:
mode:
authorMalcolm Nixon <Malcolm.nixon@gmail.com>2024-02-11 20:23:52 -0500
committerMalcolm Nixon <Malcolm.nixon@gmail.com>2024-02-17 20:12:47 -0500
commit7d1a1abe7680f75b83034cbd6438690b75c83718 (patch)
tree01f4774c0cefce197aad26a0e121233e1064f9a5 /servers/xr_server.h
parent4e990cd7e51d17cf24f854cc33b2715eaa27200f (diff)
downloadredot-engine-7d1a1abe7680f75b83034cbd6438690b75c83718.tar.gz
Initial XRFaceTrackingProvider and XRFaceTracker work.
Updated to XRFaceModifier3D.
Diffstat (limited to 'servers/xr_server.h')
-rw-r--r--servers/xr_server.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/servers/xr_server.h b/servers/xr_server.h
index fe59fc22cb..0a4e020a1f 100644
--- a/servers/xr_server.h
+++ b/servers/xr_server.h
@@ -39,6 +39,7 @@
class XRInterface;
class XRPositionalTracker;
+class XRFaceTracker;
/**
The XR server is a singleton object that gives access to the various
@@ -86,6 +87,8 @@ private:
Vector<Ref<XRInterface>> interfaces;
Dictionary trackers;
+ Dictionary face_trackers;
+
Ref<XRInterface> primary_interface; /* we'll identify one interface as primary, this will be used by our viewports */
double world_scale; /* scale by which we multiply our tracker positions */
@@ -183,6 +186,14 @@ public:
PackedStringArray get_suggested_pose_names(const StringName &p_tracker_name) const;
// Q: Should we add get_suggested_input_names and get_suggested_haptic_names even though we don't use them for the IDE?
+ /*
+ Face trackers are objects that expose the tracked blend shapes of a face.
+ */
+ void add_face_tracker(const StringName &p_tracker_name, Ref<XRFaceTracker> p_face_tracker);
+ void remove_face_tracker(const StringName &p_tracker_name);
+ Dictionary get_face_trackers() const;
+ Ref<XRFaceTracker> get_face_tracker(const StringName &p_tracker_name) const;
+
// Process is called before we handle our physics process and game process. This is where our interfaces will update controller data and such.
void _process();