gdvrpn/addons/vrpn/scripts/VRPN_Tracker.gd

34 lines
998 B
GDScript3
Raw Normal View History

class_name VRPN_Tracker
extends Node3D
@export var vrpn : VRPN = null
@export var tracker_name : String = "Tracker0"
@export var tracker_sensor : int = 0
@export var tracker_use_position : bool = true
@export var tracker_use_rotation : bool = true
@export var register_on_start : bool = true
func _ready() -> void:
if vrpn and register_on_start:
vrpn.tracker.append(self)
func _on_vrpn(vrpn_data : Dictionary):
match vrpn_data['type'] as VRPN.TrackingDataType:
VRPN.TrackingDataType.POS_QUAT:
if vrpn_data['tracker'] == tracker_name and vrpn_data['sensor'] == tracker_sensor:
if tracker_use_position:
self.global_position = vrpn_data['position']
if tracker_use_rotation:
var rotation := vrpn_data['rotation'] as Quaternion
self.global_basis = Basis(rotation)
VRPN.TrackingDataType.ACCELERATION:
pass
VRPN.TrackingDataType.VELOCITY:
pass
_:
push_warning("unknown tracker datatype")
func _on_vrpn_connected(s):
pass # Replace with function body.