make proper setup for VRPN with buttons and trackers
This commit is contained in:
parent
ea953e92a6
commit
3f823111d1
10 changed files with 115 additions and 39 deletions
33
addons/vrpn/scripts/VRPN_Tracker.gd
Normal file
33
addons/vrpn/scripts/VRPN_Tracker.gd
Normal file
|
@ -0,0 +1,33 @@
|
|||
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.
|
Loading…
Add table
Add a link
Reference in a new issue