diff options
Diffstat (limited to 'servers/xr_server.h')
-rw-r--r-- | servers/xr_server.h | 11 |
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(); |